annotate src/sort.cc @ 1387:f78531791439

[project @ 1995-09-14 06:57:58 by jwe]
author jwe
date Thu, 14 Sep 1995 06:57:58 +0000
parents 588cad732153
children 89c587478067
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
1 // f-sort.cc -*- C++ -*-
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
2 /*
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
3
1009
dfe01093f657 [project @ 1995-01-04 04:05:12 by jwe]
jwe
parents: 777
diff changeset
4 Copyright (C) 1994, 1995 John W. Eaton
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
5
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
7
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
11 later version.
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
12
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
16 for more details.
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
17
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
19 along with Octave; see the file COPYING. If not, write to the Free
1315
611d403c7f3d [project @ 1995-06-25 19:56:32 by jwe]
jwe
parents: 1192
diff changeset
20 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
21
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
22 */
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
23
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
24 #ifdef HAVE_CONFIG_H
1192
b6360f2d4fa6 [project @ 1995-03-30 21:38:35 by jwe]
jwe
parents: 1009
diff changeset
25 #include <config.h>
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
26 #endif
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
27
1352
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1315
diff changeset
28 #include "defun-dld.h"
777
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 712
diff changeset
29 #include "error.h"
a2f9d3fd720c [project @ 1994-10-07 14:01:53 by jwe]
jwe
parents: 712
diff changeset
30 #include "gripes.h"
544
20fbad23ae51 [project @ 1994-07-22 05:04:44 by jwe]
jwe
parents: 519
diff changeset
31 #include "help.h"
1352
19c10b8657d5 [project @ 1995-09-05 08:11:57 by jwe]
jwe
parents: 1315
diff changeset
32 #include "tree-const.h"
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
33
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
34 // This is algorithm 5.2.4L from Knuth, Volume 3.
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
35
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
36 // XXX FIXME XXX -- there is way too much duplicated code here given
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
37 // that the sort algorithms are all the same, and only the type of the
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
38 // data and the comparison changes...
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
39 //
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
40 // Maybe some cpp abuse will make it better.
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
41
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
42 static Array<int>
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
43 create_index_array (int n)
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
44 {
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
45 Array<int> l (n+1);
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
46
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
47 l.elem (0) = 1;
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
48
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
49 for (int i = 1; i < n - 1; i++)
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
50 l.elem (i) = -(i+2);
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
51
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
52 l.elem (n-1) = 0;
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
53 l.elem (n) = 0;
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
54 l.elem (n+1) = 2;
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
55
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
56 return l;
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
57 }
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
58
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
59 #define SORT_INIT_PHASE(n) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
60 int s = 0; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
61 int t = n + 1; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
62 int p = l.elem (s); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
63 int q = l.elem (t); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
64 if (q == 0) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
65 break
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
66
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
67 #define SORT_COMMON_CODE \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
68 p = -p; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
69 q = -q; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
70 if (q == 0) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
71 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
72 l.elem (s) = (l.elem (s) < 0) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
73 ? ((p < 0) ? p : -p) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
74 : ((p >= 0) ? p : -p); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
75 l.elem (t) = 0; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
76 break; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
77 } \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
78
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
79 #define SORT_REORDER_PHASE_ONE \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
80 l.elem (s) = (l.elem (s) < 0) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
81 ? ((q < 0) ? q : -q) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
82 : ((q >= 0) ? q : -q); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
83 s = q; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
84 q = l.elem (q); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
85 if (q <= 0) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
86 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
87 l.elem (s) = p; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
88 s = t; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
89 do \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
90 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
91 t = p; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
92 p = l.elem (p); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
93 } \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
94 while (p > 0); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
95 SORT_COMMON_CODE; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
96 } \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
97
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
98 #define SORT_REORDER_PHASE_TWO \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
99 l.elem (s) = (l.elem (s) < 0) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
100 ? ((p < 0) ? p : -p) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
101 : ((p >= 0) ? p : -p); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
102 s = p; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
103 p = l.elem (p); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
104 if (p <= 0) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
105 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
106 l.elem (s) = q; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
107 s = t; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
108 do \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
109 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
110 t = q; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
111 q = l.elem (q); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
112 } \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
113 while (q > 0); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
114 SORT_COMMON_CODE; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
115 }
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
116
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
117 #define DO_SORT(n, condition) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
118 while (1) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
119 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
120 SORT_INIT_PHASE(n); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
121 while (1) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
122 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
123 if (condition) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
124 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
125 SORT_REORDER_PHASE_ONE; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
126 } \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
127 else \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
128 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
129 SORT_REORDER_PHASE_TWO; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
130 } \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
131 } \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
132 }
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
133
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
134 #define VECTOR_CREATE_RETURN_VALUES(vs, v) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
135 int k = l.elem (0); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
136 idx.elem (0) = k; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
137 vs.elem (0) = v.elem (k-1); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
138 for (int i = 1; i < n; i++) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
139 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
140 k = l.elem ((int) idx.elem (i-1)); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
141 idx.elem (i) = k; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
142 vs.elem (i) = v.elem (k-1); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
143 }
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
144
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
145 #define MATRIX_CREATE_RETURN_VALUES(ms, m) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
146 int k = l.elem (0); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
147 idx.elem (0, j) = k; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
148 ms.elem (0, j) = m.elem (k-1, j); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
149 for (int i = 1; i < nr; i++) \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
150 { \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
151 k = l.elem ((int) idx.elem (i-1, j)); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
152 idx.elem (i, j) = k; \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
153 ms.elem (i, j) = m.elem (k-1, j); \
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
154 }
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
155
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
156 static Octave_object
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
157 mx_sort (const Matrix& m)
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
158 {
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
159 Octave_object retval;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
160
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
161 int nr = m.rows ();
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
162 int nc = m.columns ();
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
163
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
164 Matrix ms (nr, nc);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
165 Matrix idx (nr, nc);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
166
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
167 if (nr > 0 && nc > 0)
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
168 {
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
169 for (int j = 0; j < nc; j++)
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
170 {
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
171 Array<int> l = create_index_array (nr);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
172
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
173 DO_SORT (nr, (m.elem (p-1, j) > m.elem (q-1, j)));
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
174
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
175 MATRIX_CREATE_RETURN_VALUES (ms, m);
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
176 }
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
177 }
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
178
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
179 retval (1) = idx;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
180 retval (0) = ms;
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
181
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
182 return retval;
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
183 }
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
184
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
185 static Octave_object
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
186 mx_sort (const RowVector& v)
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
187 {
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
188 Octave_object retval;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
189
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
190 int n = v.capacity ();
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
191
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
192 RowVector vs (n);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
193 RowVector idx (n);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
194
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
195 if (n > 0)
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
196 {
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
197 Array<int> l = create_index_array (n);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
198
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
199 DO_SORT (n, (v.elem (p-1) > v.elem (q-1)));
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
200
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
201 VECTOR_CREATE_RETURN_VALUES (vs, v);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
202 }
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
203
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
204 retval (1) = tree_constant (idx, 0);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
205 retval (0) = tree_constant (vs, 0);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
206
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
207 return retval;
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
208 }
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
209
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
210 static Octave_object
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
211 mx_sort (const ComplexMatrix& cm)
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
212 {
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
213 Octave_object retval;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
214
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
215 int nr = cm.rows ();
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
216 int nc = cm.columns ();
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
217
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
218 ComplexMatrix cms (nr, nc);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
219 Matrix idx (nr, nc);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
220
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
221 if (nr > 0 && nc > 0)
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
222 {
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
223 for (int j = 0; j < nc; j++)
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
224 {
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
225 Array<int> l = create_index_array (nr);
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
226
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
227 int all_elts_real = 1;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
228 for (int i = 0; i < nr; i++)
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
229 if (imag (cm.elem (i, j)) != 0.0)
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
230 {
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
231 all_elts_real = 0;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
232 break;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
233 }
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
234
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
235 DO_SORT (nr, ((all_elts_real
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
236 && real (cm.elem (p-1, j)) > real (cm.elem (q-1, j)))
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
237 || abs (cm.elem (p-1, j)) > abs (cm.elem (q-1, j))));
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
238
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
239 MATRIX_CREATE_RETURN_VALUES (cms, cm);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
240 }
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
241 }
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
242
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
243 retval (1) = idx;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
244 retval (0) = cms;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
245
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
246 return retval;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
247 }
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
248
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
249 static Octave_object
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
250 mx_sort (ComplexRowVector& cv)
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
251 {
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
252 Octave_object retval;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
253
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
254 int n = cv.capacity ();
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
255
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
256 ComplexRowVector cvs (n);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
257 RowVector idx (n);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
258
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
259 if (n > 0)
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
260 {
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
261 Array<int> l = create_index_array (n);
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
262
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
263 int all_elts_real = 1;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
264 for (int i = 0; i < n; i++)
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
265 if (imag (cv.elem (i)) != 0.0)
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
266 {
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
267 all_elts_real = 0;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
268 break;
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
269 }
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
270
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
271 DO_SORT (n, ((all_elts_real
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
272 && real (cv.elem (p-1)) > real (cv.elem (q-1)))
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
273 || abs (cv.elem (p-1)) > abs (cv.elem (q-1))));
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
274
1387
f78531791439 [project @ 1995-09-14 06:57:58 by jwe]
jwe
parents: 1386
diff changeset
275 VECTOR_CREATE_RETURN_VALUES (cvs, cv);
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
276 }
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
277
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
278 retval (1) = tree_constant (idx, 0);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
279 retval (0) = tree_constant (cvs, 0);
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
280
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
281 return retval;
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
282 }
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
283
701
0a81458ef677 [project @ 1994-09-15 02:23:24 by jwe]
jwe
parents: 636
diff changeset
284 DEFUN_DLD_BUILTIN ("sort", Fsort, Ssort, 2, 2,
519
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
285 "[S, I] = sort (X)\n\
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
286 \n\
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
287 sort the columns of X, optionally return sort index")
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
288 {
519
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
289 Octave_object retval;
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
290
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
291 int nargin = args.length ();
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
292
712
36ba0576bd1b [project @ 1994-09-19 14:18:15 by jwe]
jwe
parents: 701
diff changeset
293 if (nargin != 1)
519
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
294 {
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
295 print_usage ("sort");
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
296 return retval;
b9284136189a [project @ 1994-07-19 14:40:20 by jwe]
jwe
parents: 515
diff changeset
297 }
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
298
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
299 int return_idx = nargout > 1;
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
300 if (return_idx)
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
301 retval.resize (2);
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
302 else
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
303 retval.resize (1);
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
304
712
36ba0576bd1b [project @ 1994-09-19 14:18:15 by jwe]
jwe
parents: 701
diff changeset
305 tree_constant arg = args(0);
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
306
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
307 if (arg.is_real_type ())
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
308 {
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
309 Matrix m = arg.matrix_value ();
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
310
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
311 if (! error_state)
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
312 {
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
313 if (m.rows () == 1)
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
314 {
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
315 int nc = m.columns ();
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
316 RowVector v (nc);
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
317 for (int i = 0; i < nc; i++)
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
318 v.elem (i) = m.elem (0, i);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
319
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
320 retval = mx_sort (v);
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
321 }
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
322 else
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
323 retval = mx_sort (m);
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
324 }
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
325 }
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
326 else if (arg.is_complex_type ())
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
327 {
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
328 ComplexMatrix cm = arg.complex_matrix_value ();
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
329
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
330 if (! error_state)
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
331 {
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
332 if (cm.rows () == 1)
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
333 {
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
334 int nc = cm.columns ();
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
335 ComplexRowVector cv (nc);
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
336 for (int i = 0; i < nc; i++)
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
337 cv.elem (i) = cm.elem (0, i);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
338
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
339 retval = mx_sort (cv);
636
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
340 }
fae2bd91c027 [project @ 1994-08-23 18:39:50 by jwe]
jwe
parents: 628
diff changeset
341 else
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
342 retval = mx_sort (cm);
620
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
343 }
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
344 }
8e4e7e5f307e [project @ 1994-08-16 04:36:32 by jwe]
jwe
parents: 544
diff changeset
345 else
1386
588cad732153 [project @ 1995-09-14 05:54:05 by jwe]
jwe
parents: 1357
diff changeset
346 gripe_wrong_type_arg ("sort", arg);
515
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
347
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
348 return retval;
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
349 }
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
350
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
351 /*
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
352 ;;; Local Variables: ***
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
353 ;;; mode: C++ ***
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
354 ;;; page-delimiter: "^/\\*" ***
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
355 ;;; End: ***
e078f05f4aac [project @ 1994-07-13 02:31:31 by jwe]
jwe
parents:
diff changeset
356 */