1
2(SDEFUN |CFACET;cubicalFacet;IL$;1|
3        ((|mul1| |Integer|) (|fac1| |List| (|Segment| (|Integer|))) ($ $))
4        (SPROG
5         ((|mul2| (|Integer|)) (|fac2| (|List| (|Segment| (|Integer|))))
6          (|invert| (|Boolean|)) (|interv| (|Segment| (|Integer|)))
7          (|hi| (|Integer|)) (|lo| (|Integer|)) (#1=#:G429 NIL) (|x| NIL))
8         (SEQ (LETT |mul2| |mul1|) (LETT |fac2| NIL) (LETT |invert| NIL)
9              (SEQ (LETT |x| NIL) (LETT #1# |fac1|) G190
10                   (COND
11                    ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#)) NIL))
12                     (GO G191)))
13                   (SEQ (LETT |interv| |x|)
14                        (LETT |lo| (SPADCALL |x| (QREFELT $ 9)))
15                        (LETT |hi| (SPADCALL |x| (QREFELT $ 10)))
16                        (COND
17                         ((> |lo| |hi|)
18                          (SEQ
19                           (LETT |interv| (SPADCALL |hi| |lo| (QREFELT $ 11)))
20                           (EXIT (LETT |invert| (NULL |invert|))))))
21                        (EXIT
22                         (LETT |fac2|
23                               (SPADCALL |fac2| |interv| (QREFELT $ 13)))))
24                   (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL))
25              (COND (|invert| (LETT |mul2| (- |mul2|))))
26              (EXIT (CONS |mul2| |fac2|)))))
27
28(SDEFUN |CFACET;cubicalFacet;IL$;2|
29        ((|mul1| |Integer|) (|fac1| |List| (|List| (|Integer|))) ($ $))
30        (SPROG
31         ((|fac2| (|List| (|Segment| (|Integer|))))
32          (|interv| (|Segment| (|Integer|))) (#1=#:G436 NIL) (|x| NIL))
33         (SEQ (LETT |fac2| NIL)
34              (SEQ (LETT |x| NIL) (LETT #1# |fac1|) G190
35                   (COND
36                    ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#)) NIL))
37                     (GO G191)))
38                   (SEQ
39                    (COND
40                     ((SPADCALL (LENGTH |x|) 2 (QREFELT $ 16))
41                      (|error| "inner list should contain low, high")))
42                    (LETT |interv|
43                          (SPADCALL (|SPADfirst| |x|)
44                                    (SPADCALL |x| (QREFELT $ 18))
45                                    (QREFELT $ 11)))
46                    (EXIT
47                     (LETT |fac2| (SPADCALL |fac2| |interv| (QREFELT $ 13)))))
48                   (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL))
49              (EXIT (CONS |mul1| |fac2|)))))
50
51(SDEFUN |CFACET;cubicalFacet;I2$;3|
52        ((|mul1| |Integer|) (|fac1| |CubicalFacet|) ($ $))
53        (SPROG ((|fac2| (|List| (|Segment| (|Integer|)))))
54               (SEQ (LETT |fac2| (SPADCALL |fac1| (QREFELT $ 22)))
55                    (EXIT (CONS |mul1| |fac2|)))))
56
57(PUT '|CFACET;getIntervals;$L;4| '|SPADreplace| 'QCDR)
58
59(SDEFUN |CFACET;getIntervals;$L;4|
60        ((|orf| $) ($ |List| (|Segment| (|Integer|)))) (QCDR |orf|))
61
62(SDEFUN |CFACET;order;$Nni;5| ((|f| $) ($ |NonNegativeInteger|))
63        (SPROG
64         ((|value| (|NonNegativeInteger|)) (#1=#:G440 NIL) (|hi| (|Integer|))
65          (|lo| (|Integer|)) (#2=#:G445 NIL) (|seg| NIL)
66          (|facet| (|List| (|Segment| (|Integer|)))))
67         (SEQ (LETT |value| 0) (LETT |facet| (QCDR |f|))
68              (SEQ (LETT |seg| NIL) (LETT #2# |facet|) G190
69                   (COND
70                    ((OR (ATOM #2#) (PROGN (LETT |seg| (CAR #2#)) NIL))
71                     (GO G191)))
72                   (SEQ (LETT |lo| (SPADCALL |seg| (QREFELT $ 9)))
73                        (LETT |hi| (SPADCALL |seg| (QREFELT $ 10)))
74                        (EXIT
75                         (LETT |value|
76                               (+ |value|
77                                  (PROG1 (LETT #1# (ABS (- |hi| |lo|)))
78                                    (|check_subtype2| (>= #1# 0)
79                                                      '(|NonNegativeInteger|)
80                                                      '(|Integer|) #1#))))))
81                   (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL))
82              (EXIT |value|))))
83
84(PUT '|CFACET;getMult;$I;6| '|SPADreplace| 'QCAR)
85
86(SDEFUN |CFACET;getMult;$I;6| ((|orf| $) ($ |Integer|)) (QCAR |orf|))
87
88(SDEFUN |CFACET;setMult;$I$;7| ((|orf| $) (|m| |Integer|) ($ $))
89        (SPROG ((|fac2| (|List| (|Segment| (|Integer|)))))
90               (SEQ (LETT |fac2| (SPADCALL |orf| (QREFELT $ 24)))
91                    (EXIT (SPADCALL |m| |fac2| (QREFELT $ 14))))))
92
93(SDEFUN |CFACET;position;$LI;8| ((|e| $) (|lst| |List| $) ($ |Integer|))
94        (SPROG ((#1=#:G457 NIL) (|res| (|Integer|)) (#2=#:G458 NIL) (|x| NIL))
95               (SEQ
96                (EXIT
97                 (SEQ (LETT |res| 1)
98                      (SEQ (LETT |x| NIL) (LETT #2# |lst|) G190
99                           (COND
100                            ((OR (ATOM #2#) (PROGN (LETT |x| (CAR #2#)) NIL))
101                             (GO G191)))
102                           (SEQ
103                            (COND
104                             ((SPADCALL (QCDR |e|) (QCDR |x|) (QREFELT $ 29))
105                              (SEQ
106                               (COND
107                                ((EQL (QCAR |e|) (QCAR |x|))
108                                 (PROGN (LETT #1# |res|) (GO #3=#:G456))))
109                               (EXIT (PROGN (LETT #1# (- |res|)) (GO #3#))))))
110                            (EXIT (LETT |res| (+ |res| 1))))
111                           (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL))
112                      (EXIT (PROGN (LETT #1# 0) (GO #3#)))))
113                #3# (EXIT #1#))))
114
115(SDEFUN |CFACET;product;3$;9| ((|a| $) (|b| $) ($ $))
116        (SPROG ((|bint| #1=(|List| (|Segment| (|Integer|)))) (|aint| #1#))
117               (SEQ (LETT |aint| (SPADCALL |a| (QREFELT $ 24)))
118                    (LETT |bint| (SPADCALL |b| (QREFELT $ 24)))
119                    (EXIT
120                     (SPADCALL 1 (SPADCALL |aint| |bint| (QREFELT $ 32))
121                               (QREFELT $ 14))))))
122
123(SDEFUN |CFACET;boundaryOneDimension|
124        ((|orf| $) (|dim| |NonNegativeInteger|) (|invert| |Boolean|)
125         ($ |List| $))
126        (SPROG
127         ((|res| (|List| $)) (|r2| ($)) (|r1| ($)) (|mult| (|Integer|))
128          (|subFacet2| (|List| (|Segment| (|Integer|))))
129          (|subFacet1| (|List| (|Segment| (|Integer|)))) (|hi| (|Integer|))
130          (|lo| (|Integer|)) (#1=#:G467 NIL) (|seg| NIL) (#2=#:G468 NIL)
131          (|segn| NIL) (|facet| (|List| (|Segment| (|Integer|)))))
132         (SEQ (LETT |facet| (QCDR |orf|)) (LETT |mult| (QCAR |orf|))
133              (LETT |subFacet1| NIL) (LETT |subFacet2| NIL)
134              (SEQ (LETT |segn| 1) (LETT #2# (LENGTH |facet|)) (LETT |seg| NIL)
135                   (LETT #1# |facet|) G190
136                   (COND
137                    ((OR (ATOM #1#) (PROGN (LETT |seg| (CAR #1#)) NIL)
138                         (|greater_SI| |segn| #2#))
139                     (GO G191)))
140                   (SEQ (LETT |lo| (SPADCALL |seg| (QREFELT $ 9)))
141                        (LETT |hi| (SPADCALL |seg| (QREFELT $ 10)))
142                        (EXIT
143                         (COND
144                          ((EQL |segn| |dim|)
145                           (SEQ
146                            (LETT |subFacet1|
147                                  (SPADCALL |subFacet1|
148                                            (SPADCALL |lo| |lo| (QREFELT $ 11))
149                                            (QREFELT $ 13)))
150                            (EXIT
151                             (LETT |subFacet2|
152                                   (SPADCALL |subFacet2|
153                                             (SPADCALL |hi| |hi|
154                                                       (QREFELT $ 11))
155                                             (QREFELT $ 13))))))
156                          ('T
157                           (SEQ
158                            (LETT |subFacet1|
159                                  (SPADCALL |subFacet1| |seg| (QREFELT $ 13)))
160                            (EXIT
161                             (LETT |subFacet2|
162                                   (SPADCALL |subFacet2| |seg|
163                                             (QREFELT $ 13)))))))))
164                   (LETT #1# (PROG1 (CDR #1#) (LETT |segn| (|inc_SI| |segn|))))
165                   (GO G190) G191 (EXIT NIL))
166              (COND (|invert| (LETT |mult| (- |mult|)))) (LETT |res| NIL)
167              (LETT |r1| (SPADCALL (- |mult|) |subFacet1| (QREFELT $ 14)))
168              (LETT |res| (SPADCALL |res| |r1| (QREFELT $ 35)))
169              (LETT |r2| (SPADCALL |mult| |subFacet2| (QREFELT $ 14)))
170              (LETT |res| (SPADCALL |res| |r2| (QREFELT $ 35))) (EXIT |res|))))
171
172(SDEFUN |CFACET;boundary;$L;11| ((|orf| $) ($ |List| $))
173        (SPROG
174         ((|invert| (|Boolean|)) (|res| (|List| $)) (#1=#:G478 NIL) (|dim| NIL)
175          (|dims| (|List| (|NonNegativeInteger|))) (|hi| (|Integer|))
176          (|lo| (|Integer|)) (#2=#:G476 NIL) (|seg| NIL) (#3=#:G477 NIL)
177          (|segn| NIL) (|mult| (|Integer|))
178          (|facet| (|List| (|Segment| (|Integer|)))))
179         (SEQ (LETT |facet| (QCDR |orf|)) (LETT |mult| (QCAR |orf|))
180              (LETT |dims| NIL)
181              (SEQ (LETT |segn| 1) (LETT #3# (LENGTH |facet|)) (LETT |seg| NIL)
182                   (LETT #2# |facet|) G190
183                   (COND
184                    ((OR (ATOM #2#) (PROGN (LETT |seg| (CAR #2#)) NIL)
185                         (|greater_SI| |segn| #3#))
186                     (GO G191)))
187                   (SEQ (LETT |lo| (SPADCALL |seg| (QREFELT $ 9)))
188                        (LETT |hi| (SPADCALL |seg| (QREFELT $ 10)))
189                        (EXIT
190                         (COND
191                          ((SPADCALL |lo| |hi| (QREFELT $ 16))
192                           (LETT |dims|
193                                 (SPADCALL |dims| |segn| (QREFELT $ 37)))))))
194                   (LETT #2# (PROG1 (CDR #2#) (LETT |segn| (|inc_SI| |segn|))))
195                   (GO G190) G191 (EXIT NIL))
196              (LETT |res| NIL) (LETT |invert| NIL)
197              (SEQ (LETT |dim| NIL) (LETT #1# |dims|) G190
198                   (COND
199                    ((OR (ATOM #1#) (PROGN (LETT |dim| (CAR #1#)) NIL))
200                     (GO G191)))
201                   (SEQ
202                    (LETT |res|
203                          (SPADCALL |res|
204                                    (|CFACET;boundaryOneDimension| |orf| |dim|
205                                     |invert| $)
206                                    (QREFELT $ 38)))
207                    (EXIT (LETT |invert| (NULL |invert|))))
208                   (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL))
209              (EXIT |res|))))
210
211(SDEFUN |CFACET;addIfNew| ((|lst| |List| $) (|orf| $) ($ |List| $))
212        (SPROG ((#1=#:G483 NIL))
213               (SEQ
214                (EXIT
215                 (SEQ
216                  (COND
217                   ((NULL (SPADCALL |orf| (QREFELT $ 40)))
218                    (COND
219                     ((SPADCALL |orf| |lst| (QREFELT $ 41))
220                      (PROGN (LETT #1# |lst|) (GO #2=#:G482))))))
221                  (EXIT (SPADCALL |lst| |orf| (QREFELT $ 35)))))
222                #2# (EXIT #1#))))
223
224(SDEFUN |CFACET;addIfNew2| ((|lst| |List| $) (|orfs| |List| $) ($ |List| $))
225        (SPROG ((|res| (|List| $)) (#1=#:G491 NIL) (|orf| NIL) (#2=#:G490 NIL))
226               (SEQ
227                (EXIT
228                 (SEQ
229                  (COND
230                   ((SPADCALL |orfs| (QREFELT $ 42))
231                    (PROGN (LETT #2# |lst|) (GO #3=#:G489))))
232                  (LETT |res| (SPADCALL |lst| (QREFELT $ 43)))
233                  (SEQ (LETT |orf| NIL) (LETT #1# |orfs|) G190
234                       (COND
235                        ((OR (ATOM #1#) (PROGN (LETT |orf| (CAR #1#)) NIL))
236                         (GO G191)))
237                       (SEQ
238                        (EXIT
239                         (COND
240                          ((NULL (SPADCALL |orf| (QREFELT $ 40)))
241                           (COND
242                            ((NULL (SPADCALL |orf| |res| (QREFELT $ 41)))
243                             (LETT |res|
244                                   (SPADCALL |res| |orf| (QREFELT $ 35)))))))))
245                       (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL))
246                  (EXIT |res|)))
247                #3# (EXIT #2#))))
248
249(SDEFUN |CFACET;allSubsets;$NniL;14|
250        ((|orf| $) (|minDim| |NonNegativeInteger|) ($ |List| $))
251        (SPROG
252         ((|res| (|List| $)) (|sub| (|List| $)) (|rHi1| ($))
253          (|rHi| #1=(|List| (|Segment| (|Integer|)))) (|rLo1| ($)) (|rLo| #1#)
254          (|segHi| #2=(|Segment| (|Integer|))) (|segLo| #2#) (|hi| (|Integer|))
255          (|lo| (|Integer|)) (#3=#:G503 NIL) (|x| NIL) (#4=#:G504 NIL)
256          (|xn| NIL) (#5=#:G502 NIL) (|mult| (|Integer|))
257          (|facet| (|List| (|Segment| (|Integer|)))))
258         (SEQ
259          (EXIT
260           (SEQ (LETT |facet| (QCDR |orf|)) (LETT |mult| (QCAR |orf|))
261                (LETT |res| NIL)
262                (COND
263                 ((<= (SPADCALL |orf| (QREFELT $ 26)) |minDim|)
264                  (PROGN (LETT #5# |res|) (GO #6=#:G501))))
265                (SEQ (LETT |xn| 1) (LETT #4# (LENGTH |facet|)) (LETT |x| NIL)
266                     (LETT #3# |facet|) G190
267                     (COND
268                      ((OR (ATOM #3#) (PROGN (LETT |x| (CAR #3#)) NIL)
269                           (|greater_SI| |xn| #4#))
270                       (GO G191)))
271                     (SEQ (LETT |lo| (SPADCALL |x| (QREFELT $ 9)))
272                          (LETT |hi| (SPADCALL |x| (QREFELT $ 10)))
273                          (EXIT
274                           (COND
275                            ((SPADCALL |lo| |hi| (QREFELT $ 16))
276                             (SEQ
277                              (LETT |segLo|
278                                    (SPADCALL |lo| |lo| (QREFELT $ 11)))
279                              (LETT |segHi|
280                                    (SPADCALL |hi| |hi| (QREFELT $ 11)))
281                              (LETT |rLo| (SPADCALL |facet| (QREFELT $ 44)))
282                              (SPADCALL |rLo| |xn| |segLo| (QREFELT $ 45))
283                              (LETT |rLo1| (SPADCALL 1 |rLo| (QREFELT $ 14)))
284                              (LETT |res| (|CFACET;addIfNew| |res| |rLo1| $))
285                              (LETT |rHi| (SPADCALL |facet| (QREFELT $ 44)))
286                              (SPADCALL |rHi| |xn| |segHi| (QREFELT $ 45))
287                              (LETT |rHi1| (SPADCALL 1 |rHi| (QREFELT $ 14)))
288                              (LETT |res| (|CFACET;addIfNew| |res| |rHi1| $))
289                              (COND
290                               ((> (SPADCALL |rLo1| (QREFELT $ 26)) |minDim|)
291                                (SEQ
292                                 (LETT |sub|
293                                       (SPADCALL |rLo1| |minDim|
294                                                 (QREFELT $ 46)))
295                                 (EXIT
296                                  (COND
297                                   ((NULL (SPADCALL |sub| (QREFELT $ 42)))
298                                    (LETT |res|
299                                          (|CFACET;addIfNew2| |res| |sub|
300                                           $))))))))
301                              (EXIT
302                               (COND
303                                ((> (SPADCALL |rHi1| (QREFELT $ 26)) |minDim|)
304                                 (SEQ
305                                  (LETT |sub|
306                                        (SPADCALL |rHi1| |minDim|
307                                                  (QREFELT $ 46)))
308                                  (EXIT
309                                   (COND
310                                    ((NULL (SPADCALL |sub| (QREFELT $ 42)))
311                                     (LETT |res|
312                                           (|CFACET;addIfNew2| |res| |sub|
313                                            $))))))))))))))
314                     (LETT #3# (PROG1 (CDR #3#) (LETT |xn| (|inc_SI| |xn|))))
315                     (GO G190) G191 (EXIT NIL))
316                (EXIT |res|)))
317          #6# (EXIT #5#))))
318
319(SDEFUN |CFACET;allSubsets;$2NniL;15|
320        ((|orf| $) (|minDim| |NonNegativeInteger|)
321         (|maxDim| |NonNegativeInteger|) ($ |List| $))
322        (SPROG
323         ((|res2| (|List| $)) (#1=#:G510 NIL) (|y| NIL) (|res| (|List| $)))
324         (SEQ (LETT |res| (SPADCALL |orf| |minDim| (QREFELT $ 46)))
325              (LETT |res2| NIL)
326              (SEQ (LETT |y| NIL) (LETT #1# |res|) G190
327                   (COND
328                    ((OR (ATOM #1#) (PROGN (LETT |y| (CAR #1#)) NIL))
329                     (GO G191)))
330                   (SEQ
331                    (EXIT
332                     (COND
333                      ((<= (SPADCALL |y| (QREFELT $ 26)) |maxDim|)
334                       (LETT |res2| (SPADCALL |res2| |y| (QREFELT $ 35)))))))
335                   (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL))
336              (EXIT |res2|))))
337
338(SDEFUN |CFACET;sameFace?;2$B;16| ((|a| $) (|b| $) ($ |Boolean|))
339        (SPROG ((|vertsb| #1=(|List| (|Segment| (|Integer|)))) (|vertsa| #1#))
340               (SEQ (LETT |vertsa| (QCDR |a|)) (LETT |vertsb| (QCDR |b|))
341                    (EXIT (NULL (SPADCALL |vertsa| |vertsb| (QREFELT $ 48)))))))
342
343(SDEFUN |CFACET;ltLocal|
344        ((|a| |List| (|Segment| (|Integer|)))
345         (|b| |List| (|Segment| (|Integer|))) ($ |Boolean|))
346        (SPROG
347         ((#1=#:G520 NIL) (|hib| #2=(|Integer|)) (|lob| #3=(|Integer|))
348          (|hia| #2#) (|loa| #3#) (#4=#:G521 NIL) (|a1| NIL) (#5=#:G522 NIL)
349          (|b1| NIL))
350         (SEQ
351          (EXIT
352           (SEQ
353            (COND
354             ((SPADCALL |a| |b| (QREFELT $ 29))
355              (PROGN (LETT #1# NIL) (GO #6=#:G519))))
356            (COND ((< (LENGTH |a|) 1) (PROGN (LETT #1# 'T) (GO #6#))))
357            (COND ((< (LENGTH |b|) 1) (PROGN (LETT #1# NIL) (GO #6#))))
358            (SEQ (LETT |b1| NIL) (LETT #5# |b|) (LETT |a1| NIL) (LETT #4# |a|)
359                 G190
360                 (COND
361                  ((OR (ATOM #4#) (PROGN (LETT |a1| (CAR #4#)) NIL) (ATOM #5#)
362                       (PROGN (LETT |b1| (CAR #5#)) NIL))
363                   (GO G191)))
364                 (SEQ (LETT |loa| (SPADCALL |a1| (QREFELT $ 9)))
365                      (LETT |hia| (SPADCALL |a1| (QREFELT $ 10)))
366                      (LETT |lob| (SPADCALL |b1| (QREFELT $ 9)))
367                      (LETT |hib| (SPADCALL |b1| (QREFELT $ 10)))
368                      (COND ((< |loa| |lob|) (PROGN (LETT #1# 'T) (GO #6#))))
369                      (COND ((> |loa| |lob|) (PROGN (LETT #1# NIL) (GO #6#))))
370                      (COND ((< |hia| |hib|) (PROGN (LETT #1# 'T) (GO #6#))))
371                      (EXIT
372                       (COND
373                        ((> |hia| |hib|) (PROGN (LETT #1# NIL) (GO #6#))))))
374                 (LETT #4# (PROG1 (CDR #4#) (LETT #5# (CDR #5#)))) (GO G190)
375                 G191 (EXIT NIL))
376            (EXIT NIL)))
377          #6# (EXIT #1#))))
378
379(SDEFUN |CFACET;<;2$B;18| ((|ain| $) (|bin| $) ($ |Boolean|))
380        (SPROG ((|b| #1=(|List| (|Segment| (|Integer|)))) (|a| #1#))
381               (SEQ (LETT |a| (QCDR |ain|)) (LETT |b| (QCDR |bin|))
382                    (EXIT (|CFACET;ltLocal| |a| |b| $)))))
383
384(SDEFUN |CFACET;<=;2$B;19| ((|ain| $) (|bin| $) ($ |Boolean|))
385        (SPROG
386         ((#1=#:G527 NIL) (|b| #2=(|List| (|Segment| (|Integer|)))) (|a| #2#))
387         (SEQ
388          (EXIT
389           (SEQ (LETT |a| (QCDR |ain|)) (LETT |b| (QCDR |bin|))
390                (COND
391                 ((SPADCALL |a| |b| (QREFELT $ 29))
392                  (PROGN (LETT #1# 'T) (GO #3=#:G526))))
393                (EXIT (|CFACET;ltLocal| |a| |b| $))))
394          #3# (EXIT #1#))))
395
396(SDEFUN |CFACET;=;2$B;20| ((|a| $) (|b| $) ($ |Boolean|))
397        (SPROG ((#1=#:G532 NIL))
398               (SEQ
399                (EXIT
400                 (SEQ
401                  (COND
402                   ((SPADCALL (QCAR |a|) (QCAR |b|) (QREFELT $ 16))
403                    (PROGN (LETT #1# NIL) (GO #2=#:G531))))
404                  (EXIT (SPADCALL (QCDR |a|) (QCDR |b|) (QREFELT $ 29)))))
405                #2# (EXIT #1#))))
406
407(SDEFUN |CFACET;coerce;$Of;21| ((|s| $) ($ |OutputForm|))
408        (SPROG
409         ((|body| (|OutputForm|)) (|elements| (|List| (|OutputForm|)))
410          (#1=#:G540 NIL) (|x| NIL) (#2=#:G539 NIL) (|prefix| (|OutputForm|))
411          (|m| (|Integer|)))
412         (SEQ (LETT |prefix| (SPADCALL "" (QREFELT $ 55)))
413              (LETT |m| (QCAR |s|))
414              (COND
415               ((SPADCALL (ABS |m|) 1 (QREFELT $ 16))
416                (LETT |prefix|
417                      (SPADCALL (SPADCALL |m| (QREFELT $ 56))
418                                (SPADCALL "*" (QREFELT $ 55))
419                                (QREFELT $ 57)))))
420              (COND
421               ((EQL |m| -1) (LETT |prefix| (SPADCALL "-" (QREFELT $ 55)))))
422              (LETT |elements|
423                    (PROGN
424                     (LETT #2# NIL)
425                     (SEQ (LETT |x| NIL) (LETT #1# (QCDR |s|)) G190
426                          (COND
427                           ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#)) NIL))
428                            (GO G191)))
429                          (SEQ
430                           (EXIT
431                            (LETT #2#
432                                  (CONS (SPADCALL |x| (QREFELT $ 58)) #2#))))
433                          (LETT #1# (CDR #1#)) (GO G190) G191
434                          (EXIT (NREVERSE #2#)))))
435              (LETT |body| (SPADCALL |elements| (QREFELT $ 59)))
436              (EXIT (SPADCALL |prefix| |body| (QREFELT $ 57))))))
437
438(DECLAIM (NOTINLINE |CubicalFacet;|))
439
440(DEFUN |CubicalFacet| ()
441  (SPROG NIL
442         (PROG (#1=#:G542)
443           (RETURN
444            (COND
445             ((LETT #1# (HGET |$ConstructorCache| '|CubicalFacet|))
446              (|CDRwithIncrement| (CDAR #1#)))
447             ('T
448              (UNWIND-PROTECT
449                  (PROG1
450                      (CDDAR
451                       (HPUT |$ConstructorCache| '|CubicalFacet|
452                             (LIST (CONS NIL (CONS 1 (|CubicalFacet;|))))))
453                    (LETT #1# T))
454                (COND
455                 ((NOT #1#) (HREM |$ConstructorCache| '|CubicalFacet|))))))))))
456
457(DEFUN |CubicalFacet;| ()
458  (SPROG ((|dv$| NIL) ($ NIL) (|pv$| NIL))
459         (PROGN
460          (LETT |dv$| '(|CubicalFacet|))
461          (LETT $ (GETREFV 63))
462          (QSETREFV $ 0 |dv$|)
463          (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL)))
464          (|haddProp| |$ConstructorCache| '|CubicalFacet| NIL (CONS 1 $))
465          (|stuffDomainSlots| $)
466          (SETF |pv$| (QREFELT $ 3))
467          (QSETREFV $ 6
468                    (|Record| (|:| |mul| (|Integer|))
469                              (|:| |fac| (|List| (|Segment| (|Integer|))))))
470          $)))
471
472(MAKEPROP '|CubicalFacet| '|infovec|
473          (LIST
474           '#(NIL NIL NIL NIL NIL NIL '|Rep| (|Integer|) (|Segment| 7)
475              (0 . |low|) (5 . |high|) (10 . |segment|) (|List| 8)
476              (16 . |concat|) |CFACET;cubicalFacet;IL$;1| (|Boolean|) (22 . ~=)
477              (|List| 7) (28 . |second|) (|List| 17)
478              |CFACET;cubicalFacet;IL$;2| (|CubicalFacet|)
479              (33 . |getIntervals|) |CFACET;cubicalFacet;I2$;3|
480              |CFACET;getIntervals;$L;4| (|NonNegativeInteger|)
481              |CFACET;order;$Nni;5| |CFACET;getMult;$I;6|
482              |CFACET;setMult;$I$;7| (38 . =) (|List| $)
483              |CFACET;position;$LI;8| (44 . |concat|) |CFACET;product;3$;9|
484              (|List| $$) (50 . |concat|) (|List| 25) (56 . |concat|)
485              (62 . |concat|) |CFACET;boundary;$L;11| (68 . |empty?|)
486              (73 . |member?|) (79 . |empty?|) (84 . |copy|) (89 . |copy|)
487              (94 . |setelt!|) |CFACET;allSubsets;$NniL;14|
488              |CFACET;allSubsets;$2NniL;15| (101 . ~=)
489              |CFACET;sameFace?;2$B;16| |CFACET;<;2$B;18| |CFACET;<=;2$B;19|
490              |CFACET;=;2$B;20| (|String|) (|OutputForm|) (107 . |message|)
491              (112 . |coerce|) (117 . |hconcat|) (123 . |coerce|)
492              (128 . |paren|) |CFACET;coerce;$Of;21| (|HashState|)
493              (|SingleInteger|))
494           '#(~= 133 |smaller?| 139 |setMult| 145 |sameFace?| 151 |product| 157
495              |position| 163 |order| 169 |min| 174 |max| 180 |latex| 186
496              |hashUpdate!| 191 |hash| 197 |getMult| 202 |getIntervals| 207
497              |empty?| 212 |cubicalFacet| 217 |coerce| 235 |boundary| 240
498              |allSubsets| 245 >= 258 > 264 = 270 <= 276 < 282)
499           'NIL
500           (CONS (|makeByteWordVec2| 1 '(0 0 0 0 0 0 0))
501                 (CONS
502                  '#(|FacetCategory&| |OrderedSet&| NIL |SetCategory&|
503                     |PartialOrder&| |BasicType&| NIL)
504                  (CONS
505                   '#((|FacetCategory|) (|OrderedSet|) (|Comparable|)
506                      (|SetCategory|) (|PartialOrder|) (|BasicType|)
507                      (|CoercibleTo| 54))
508                   (|makeByteWordVec2| 62
509                                       '(1 8 7 0 9 1 8 7 0 10 2 8 0 7 7 11 2 12
510                                         0 0 8 13 2 7 15 0 0 16 1 17 7 0 18 1
511                                         21 12 0 22 2 12 15 0 0 29 2 12 0 0 0
512                                         32 2 34 0 0 2 35 2 36 0 0 25 37 2 34 0
513                                         0 0 38 1 0 15 0 40 2 34 15 2 0 41 1 34
514                                         15 0 42 1 34 0 0 43 1 12 0 0 44 3 12 8
515                                         0 7 8 45 2 12 15 0 0 48 1 54 0 53 55 1
516                                         7 54 0 56 2 54 0 0 0 57 1 8 54 0 58 1
517                                         54 0 30 59 2 0 15 0 0 1 2 0 15 0 0 1 2
518                                         0 0 0 7 28 2 0 15 0 0 49 2 0 0 0 0 33
519                                         2 0 7 0 30 31 1 0 25 0 26 2 0 0 0 0 1
520                                         2 0 0 0 0 1 1 0 53 0 1 2 0 61 61 0 1 1
521                                         0 62 0 1 1 0 7 0 27 1 0 12 0 24 1 0 15
522                                         0 40 2 0 0 7 21 23 2 0 0 7 12 14 2 0 0
523                                         7 19 20 1 0 54 0 60 1 0 30 0 39 3 0 30
524                                         0 25 25 47 2 0 30 0 25 46 2 0 15 0 0 1
525                                         2 0 15 0 0 1 2 0 15 0 0 52 2 0 15 0 0
526                                         51 2 0 15 0 0 50)))))
527           '|lookupComplete|))
528
529(MAKEPROP '|CubicalFacet| 'NILADIC T)
530