1
2(PUT '|IIARRAY2;empty;$;1| '|SPADreplace| '(XLAM NIL (MAKE_MATRIX 0 0)))
3
4(SDEFUN |IIARRAY2;empty;$;1| (($ $)) (MAKE_MATRIX 0 0))
5
6(PUT '|IIARRAY2;qnew;2Nni$;2| '|SPADreplace| 'MAKE_MATRIX)
7
8(SDEFUN |IIARRAY2;qnew;2Nni$;2|
9        ((|rows| . #1=(|NonNegativeInteger|)) (|cols| . #1#) ($ $))
10        (MAKE_MATRIX |rows| |cols|))
11
12(PUT '|IIARRAY2;new;2NniR$;3| '|SPADreplace| 'MAKE_MATRIX1)
13
14(SDEFUN |IIARRAY2;new;2NniR$;3|
15        ((|rows| . #1=(|NonNegativeInteger|)) (|cols| . #1#) (|a| R) ($ $))
16        (MAKE_MATRIX1 |rows| |cols| |a|))
17
18(SDEFUN |IIARRAY2;minRowIndex;$I;4| ((|m| $) ($ |Integer|)) (QREFELT $ 7))
19
20(SDEFUN |IIARRAY2;minColIndex;$I;5| ((|m| $) ($ |Integer|)) (QREFELT $ 8))
21
22(SDEFUN |IIARRAY2;maxRowIndex;$I;6| ((|m| $) ($ |Integer|))
23        (- (+ (SPADCALL |m| (QREFELT $ 18)) (QREFELT $ 7)) 1))
24
25(SDEFUN |IIARRAY2;maxColIndex;$I;7| ((|m| $) ($ |Integer|))
26        (- (+ (SPADCALL |m| (QREFELT $ 20)) (QREFELT $ 8)) 1))
27
28(PUT '|IIARRAY2;nrows;$Nni;8| '|SPADreplace| 'ANROWS)
29
30(SDEFUN |IIARRAY2;nrows;$Nni;8| ((|m| $) ($ |NonNegativeInteger|)) (ANROWS |m|))
31
32(PUT '|IIARRAY2;ncols;$Nni;9| '|SPADreplace| 'ANCOLS)
33
34(SDEFUN |IIARRAY2;ncols;$Nni;9| ((|m| $) ($ |NonNegativeInteger|)) (ANCOLS |m|))
35
36(SDEFUN |IIARRAY2;qelt;$2IR;10|
37        ((|m| $) (|i| . #1=(|Integer|)) (|j| . #1#) ($ R))
38        (QAREF2O |m| |i| |j| (QREFELT $ 7) (QREFELT $ 8)))
39
40(SDEFUN |IIARRAY2;elt;$2IR;11|
41        ((|m| $) (|i| . #1=(|Integer|)) (|j| . #1#) ($ R))
42        (COND
43         ((OR (< |i| (SPADCALL |m| (QREFELT $ 16)))
44              (> |i| (SPADCALL |m| (QREFELT $ 19))))
45          (|error| "elt: index out of range"))
46         ((OR (< |j| (SPADCALL |m| (QREFELT $ 17)))
47              (> |j| (SPADCALL |m| (QREFELT $ 21))))
48          (|error| "elt: index out of range"))
49         ('T (SPADCALL |m| |i| |j| (QREFELT $ 22)))))
50
51(SDEFUN |IIARRAY2;qsetelt!;$2I2R;12|
52        ((|m| $) (|i| . #1=(|Integer|)) (|j| . #1#) (|r| R) ($ R))
53        (QSETAREF2O |m| |i| |j| |r| (QREFELT $ 7) (QREFELT $ 8)))
54
55(SDEFUN |IIARRAY2;setelt!;$2I2R;13|
56        ((|m| $) (|i| . #1=(|Integer|)) (|j| . #1#) (|r| R) ($ R))
57        (COND
58         ((OR (< |i| (SPADCALL |m| (QREFELT $ 16)))
59              (> |i| (SPADCALL |m| (QREFELT $ 19))))
60          (|error| "setelt!: index out of range"))
61         ((OR (< |j| (SPADCALL |m| (QREFELT $ 17)))
62              (> |j| (SPADCALL |m| (QREFELT $ 21))))
63          (|error| "setelt!: index out of range"))
64         ('T (SPADCALL |m| |i| |j| |r| (QREFELT $ 24)))))
65
66(SDEFUN |IIARRAY2;latex;$S;14| ((|m| $) ($ |String|))
67        (SPROG
68         ((|s| (|String|)) (#1=#:G2610 NIL) (|j| NIL) (#2=#:G2609 NIL)
69          (|i| NIL) (#3=#:G2608 NIL))
70         (SEQ (LETT |s| "\\left[ \\begin{array}{")
71              (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 17)))
72                   (LETT #3# (SPADCALL |m| (QREFELT $ 21))) G190
73                   (COND ((> |j| #3#) (GO G191)))
74                   (SEQ (EXIT (LETT |s| (STRCONC |s| "c"))))
75                   (LETT |j| (+ |j| 1)) (GO G190) G191 (EXIT NIL))
76              (LETT |s| (STRCONC |s| "} "))
77              (SEQ (LETT |i| (SPADCALL |m| (QREFELT $ 16)))
78                   (LETT #2# (SPADCALL |m| (QREFELT $ 19))) G190
79                   (COND ((> |i| #2#) (GO G191)))
80                   (SEQ
81                    (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 17)))
82                         (LETT #1# (SPADCALL |m| (QREFELT $ 21))) G190
83                         (COND ((> |j| #1#) (GO G191)))
84                         (SEQ
85                          (LETT |s|
86                                (STRCONC |s|
87                                         (SPADCALL
88                                          (SPADCALL |m| |i| |j| (QREFELT $ 22))
89                                          (QREFELT $ 27))))
90                          (EXIT
91                           (COND
92                            ((< |j| (SPADCALL |m| (QREFELT $ 21)))
93                             (LETT |s| (STRCONC |s| " & "))))))
94                         (LETT |j| (+ |j| 1)) (GO G190) G191 (EXIT NIL))
95                    (EXIT
96                     (COND
97                      ((< |i| (SPADCALL |m| (QREFELT $ 19)))
98                       (LETT |s| (STRCONC |s| " \\\\ "))))))
99                   (LETT |i| (+ |i| 1)) (GO G190) G191 (EXIT NIL))
100              (EXIT (STRCONC |s| "\\end{array} \\right]")))))
101
102(SDEFUN |IIARRAY2;hashUpdate!;Hs$Hs;15|
103        ((|s| |HashState|) (|m| $) ($ |HashState|))
104        (SPROG ((#1=#:G2616 NIL) (|j| NIL) (#2=#:G2615 NIL) (|i| NIL))
105               (SEQ
106                (SEQ (LETT |i| (SPADCALL |m| (QREFELT $ 16)))
107                     (LETT #2# (SPADCALL |m| (QREFELT $ 19))) G190
108                     (COND ((> |i| #2#) (GO G191)))
109                     (SEQ
110                      (EXIT
111                       (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 17)))
112                            (LETT #1# (SPADCALL |m| (QREFELT $ 21))) G190
113                            (COND ((> |j| #1#) (GO G191)))
114                            (SEQ
115                             (EXIT
116                              (LETT |s|
117                                    (SPADCALL |s|
118                                              (SPADCALL |m| |i| |j|
119                                                        (QREFELT $ 22))
120                                              (QREFELT $ 30)))))
121                            (LETT |j| (+ |j| 1)) (GO G190) G191 (EXIT NIL))))
122                     (LETT |i| (+ |i| 1)) (GO G190) G191 (EXIT NIL))
123                (EXIT |s|))))
124
125(DECLAIM (NOTINLINE |InnerIndexedTwoDimensionalArray;|))
126
127(DEFUN |InnerIndexedTwoDimensionalArray| (&REST #1=#:G2624)
128  (SPROG NIL
129         (PROG (#2=#:G2625)
130           (RETURN
131            (COND
132             ((LETT #2#
133                    (|lassocShiftWithFunction|
134                     (|devaluate_sig| #1# '(T NIL NIL T T))
135                     (HGET |$ConstructorCache|
136                           '|InnerIndexedTwoDimensionalArray|)
137                     '|domainEqualList|))
138              (|CDRwithIncrement| #2#))
139             ('T
140              (UNWIND-PROTECT
141                  (PROG1
142                      (APPLY (|function| |InnerIndexedTwoDimensionalArray;|)
143                             #1#)
144                    (LETT #2# T))
145                (COND
146                 ((NOT #2#)
147                  (HREM |$ConstructorCache|
148                        '|InnerIndexedTwoDimensionalArray|))))))))))
149
150(DEFUN |InnerIndexedTwoDimensionalArray;| (|#1| |#2| |#3| |#4| |#5|)
151  (SPROG
152   ((|pv$| NIL) (#1=#:G2621 NIL) (#2=#:G2622 NIL) ($ NIL) (|dv$| NIL)
153    (DV$5 NIL) (DV$4 NIL) (DV$3 NIL) (DV$2 NIL) (DV$1 NIL))
154   (PROGN
155    (LETT DV$1 (|devaluate| |#1|))
156    (LETT DV$2 |#2|)
157    (LETT DV$3 |#3|)
158    (LETT DV$4 (|devaluate| |#4|))
159    (LETT DV$5 (|devaluate| |#5|))
160    (LETT |dv$|
161          (LIST '|InnerIndexedTwoDimensionalArray| DV$1 DV$2 DV$3 DV$4 DV$5))
162    (LETT $ (GETREFV 50))
163    (QSETREFV $ 0 |dv$|)
164    (QSETREFV $ 3
165              (LETT |pv$|
166                    (|buildPredVector| 0 0
167                                       (LIST
168                                        (|HasCategory| |#1| '(|Comparable|))
169                                        (|HasCategory| |#1| '(|OrderedSet|))
170                                        (|HasCategory| |#1| '(|BasicType|))
171                                        (LETT #2#
172                                              (|HasCategory| |#1|
173                                                             '(|SetCategory|)))
174                                        (OR (|HasCategory| |#1| '(|BasicType|))
175                                            (|HasCategory| |#1|
176                                                           '(|Comparable|))
177                                            #2#)
178                                        (OR
179                                         (|HasCategory| |#1| '(|Comparable|))
180                                         #2#)
181                                        (AND
182                                         (|HasCategory| |#1|
183                                                        (LIST '|Evalable|
184                                                              (|devaluate|
185                                                               |#1|)))
186                                         #2#)
187                                        (OR
188                                         (AND
189                                          (|HasCategory| |#1|
190                                                         (LIST '|Evalable|
191                                                               (|devaluate|
192                                                                |#1|)))
193                                          (|HasCategory| |#1| '(|Comparable|)))
194                                         (AND
195                                          (|HasCategory| |#1|
196                                                         (LIST '|Evalable|
197                                                               (|devaluate|
198                                                                |#1|)))
199                                          #2#))
200                                        (LETT #1#
201                                              (|HasCategory| |#1|
202                                                             '(|CoercibleTo|
203                                                               (|OutputForm|))))
204                                        (OR #1#
205                                            (AND
206                                             (|HasCategory| |#1|
207                                                            (LIST '|Evalable|
208                                                                  (|devaluate|
209                                                                   |#1|)))
210                                             #2#))))))
211    (|haddProp| |$ConstructorCache| '|InnerIndexedTwoDimensionalArray|
212                (LIST DV$1 DV$2 DV$3 DV$4 DV$5) (CONS 1 $))
213    (|stuffDomainSlots| $)
214    (QSETREFV $ 6 |#1|)
215    (QSETREFV $ 7 |#2|)
216    (QSETREFV $ 8 |#3|)
217    (QSETREFV $ 9 |#4|)
218    (QSETREFV $ 10 |#5|)
219    (AND (|HasCategory| $ '(|finiteAggregate|)) (|augmentPredVector| $ 1024))
220    (AND (|HasCategory| |#1| '(|OrderedSet|))
221         (|HasCategory| $ '(|finiteAggregate|)) (|augmentPredVector| $ 2048))
222    (AND (|HasCategory| |#1| '(|BasicType|))
223         (|HasCategory| $ '(|finiteAggregate|)) (|augmentPredVector| $ 4096))
224    (AND
225     (OR
226      (AND (|HasCategory| |#1| '(|BasicType|))
227           (|HasCategory| $ '(|finiteAggregate|)))
228      #2#)
229     (|augmentPredVector| $ 8192))
230    (SETF |pv$| (QREFELT $ 3))
231    (COND
232     ((|testBitVector| |pv$| 4)
233      (PROGN
234       (QSETREFV $ 28 (CONS (|dispatchFunction| |IIARRAY2;latex;$S;14|) $))
235       (QSETREFV $ 31
236                 (CONS (|dispatchFunction| |IIARRAY2;hashUpdate!;Hs$Hs;15|)
237                       $)))))
238    $)))
239
240(MAKEPROP '|InnerIndexedTwoDimensionalArray| '|infovec|
241          (LIST
242           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
243              (|local| |#3|) (|local| |#4|) (|local| |#5|) |IIARRAY2;empty;$;1|
244              (|NonNegativeInteger|) |IIARRAY2;qnew;2Nni$;2|
245              |IIARRAY2;new;2NniR$;3| (|Integer|) |IIARRAY2;minRowIndex;$I;4|
246              |IIARRAY2;minColIndex;$I;5| |IIARRAY2;nrows;$Nni;8|
247              |IIARRAY2;maxRowIndex;$I;6| |IIARRAY2;ncols;$Nni;9|
248              |IIARRAY2;maxColIndex;$I;7| |IIARRAY2;qelt;$2IR;10|
249              |IIARRAY2;elt;$2IR;11| |IIARRAY2;qsetelt!;$2I2R;12|
250              |IIARRAY2;setelt!;$2I2R;13| (|String|) (0 . |latex|)
251              (5 . |latex|) (|HashState|) (10 . |hashUpdate!|)
252              (16 . |hashUpdate!|) (|Boolean|) (|List| 6) (|Equation| 6)
253              (|List| 34) (|Mapping| 32 6 6) (|Mapping| 32 6) (|OutputForm|)
254              (|SingleInteger|) (|Mapping| 6 6 6) (|List| 45) (|List| 12)
255              (|Mapping| 6 6) (|PositiveInteger|) (|List| $) (|List| 47)
256              (|Segment| 15) (|List| 15) (|List| 33))
257           '#(~= 22 |vertSplit| 28 |vertConcat| 40 |transpose| 51 |swapRows!|
258              56 |swapColumns!| 63 |subMatrix| 70 |squareTop| 79 |smaller?| 84
259              |size?| 90 |setsubMatrix!| 96 |setelt!| 104 |setRow!| 200
260              |setColumn!| 207 |sample| 214 |rowSlice| 218 |row| 223 |qsetelt!|
261              229 |qnew| 237 |qelt| 243 |parts| 250 |nrows| 255 |new| 260
262              |ncols| 267 |more?| 272 |minRowIndex| 278 |minColIndex| 283 |min|
263              288 |members| 293 |member?| 298 |maxRowIndex| 304 |maxColIndex|
264              309 |max| 314 |map!| 325 |map| 331 |listOfLists| 352 |less?| 357
265              |latex| 363 |horizSplit| 368 |horizConcat| 380 |hashUpdate!| 391
266              |hash| 397 |fill!| 402 |every?| 408 |eval| 414 |eq?| 440 |empty?|
267              446 |empty| 451 |elt| 455 |count| 547 |copy| 559 |column| 564
268              |colSlice| 570 |coerce| 575 |blockSplit| 580 |blockConcat| 594
269              |any?| 599 = 605 |#| 611)
270           'NIL
271           (CONS (|makeByteWordVec2| 10 '(0 0 1 0 8 6 0 0 0 8 5 10))
272                 (CONS
273                  '#(|TwoDimensionalArrayCategory&| |HomogeneousAggregate&| NIL
274                     |Aggregate&| |Evalable&| |SetCategory&| NIL NIL NIL
275                     |InnerEvalable&| |BasicType&| NIL)
276                  (CONS
277                   '#((|TwoDimensionalArrayCategory| 6 9 10)
278                      (|HomogeneousAggregate| 6) (|Comparable|) (|Aggregate|)
279                      (|Evalable| 6) (|SetCategory|) (|Type|)
280                      (|finiteAggregate|) (|shallowlyMutable|)
281                      (|InnerEvalable| 6 6) (|BasicType|) (|CoercibleTo| 38))
282                   (|makeByteWordVec2| 49
283                                       '(1 6 26 0 27 1 0 26 0 28 2 6 29 29 0 30
284                                         2 0 29 29 0 31 2 14 32 0 0 1 2 0 45 0
285                                         42 1 2 0 45 0 44 1 1 0 0 45 1 2 0 0 0
286                                         0 1 1 0 0 0 1 3 0 0 0 15 15 1 3 0 0 0
287                                         15 15 1 5 0 0 0 15 15 15 15 1 1 0 0 0
288                                         1 2 1 32 0 0 1 2 0 32 0 12 1 4 0 0 0
289                                         15 15 0 1 4 0 0 0 46 46 0 1 4 0 0 0 47
290                                         46 0 1 4 0 0 0 46 47 0 1 4 0 0 0 47 48
291                                         0 1 4 0 0 0 47 47 0 1 4 0 0 0 48 47 0
292                                         1 4 0 0 0 48 48 0 1 4 0 0 0 15 48 0 1
293                                         4 0 0 0 48 15 0 1 4 0 6 0 15 15 6 25 4
294                                         0 0 0 46 15 0 1 4 0 0 0 15 46 0 1 3 0
295                                         0 0 15 9 1 3 0 0 0 15 10 1 0 0 0 1 1 0
296                                         47 0 1 2 0 9 0 15 1 4 0 6 0 15 15 6 24
297                                         2 0 0 12 12 13 3 0 6 0 15 15 22 1 0 33
298                                         0 1 1 0 12 0 18 3 0 0 12 12 6 14 1 0
299                                         12 0 20 2 0 32 0 12 1 1 0 15 0 16 1 0
300                                         15 0 17 1 12 6 0 1 1 11 33 0 1 2 13 32
301                                         6 0 1 1 0 15 0 19 1 0 15 0 21 1 12 6 0
302                                         1 2 11 6 36 0 1 2 0 0 43 0 1 4 0 0 40
303                                         0 0 6 1 3 0 0 40 0 0 1 2 0 0 43 0 1 1
304                                         0 49 0 1 2 0 32 0 12 1 1 4 26 0 28 2 0
305                                         45 0 44 1 2 0 45 0 42 1 1 0 0 45 1 2 0
306                                         0 0 0 1 2 4 29 29 0 31 1 4 39 0 1 2 0
307                                         0 0 6 1 2 11 32 37 0 1 3 7 0 0 6 6 1 3
308                                         7 0 0 33 33 1 2 7 0 0 34 1 2 7 0 0 35
309                                         1 2 0 32 0 0 1 1 0 32 0 1 0 0 0 11 3 0
310                                         0 0 46 46 1 3 0 0 0 47 46 1 3 0 0 0 46
311                                         47 1 3 0 0 0 46 15 1 3 0 0 0 47 48 1 3
312                                         0 0 0 15 46 1 3 0 0 0 48 47 1 3 0 0 0
313                                         48 48 1 3 0 0 0 47 47 1 3 0 0 0 48 15
314                                         1 3 0 0 0 15 48 1 4 0 6 0 15 15 6 1 3
315                                         0 6 0 15 15 23 2 13 12 6 0 1 2 11 12
316                                         37 0 1 1 0 0 0 1 2 0 10 0 15 1 1 0 47
317                                         0 1 1 9 38 0 1 3 0 41 0 42 42 1 3 0 41
318                                         0 44 44 1 1 0 0 41 1 2 11 32 37 0 1 2
319                                         14 32 0 0 1 1 11 12 0 1)))))
320           '|lookupComplete|))
321