aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/strap/LNAGG-.lsp
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra/strap/LNAGG-.lsp')
-rw-r--r--src/algebra/strap/LNAGG-.lsp80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/algebra/strap/LNAGG-.lsp b/src/algebra/strap/LNAGG-.lsp
new file mode 100644
index 00000000..5ba1d59c
--- /dev/null
+++ b/src/algebra/strap/LNAGG-.lsp
@@ -0,0 +1,80 @@
+
+(/VERSIONCHECK 2)
+
+(DEFUN |LNAGG-;indices;AL;1| (|a| $)
+ (PROG (#0=#:G1404 |i| #1=#:G1405)
+ (RETURN
+ (SEQ (PROGN
+ (LETT #0# NIL |LNAGG-;indices;AL;1|)
+ (SEQ (LETT |i| (SPADCALL |a| (QREFELT $ 9))
+ |LNAGG-;indices;AL;1|)
+ (LETT #1# (SPADCALL |a| (QREFELT $ 10))
+ |LNAGG-;indices;AL;1|)
+ G190 (COND ((> |i| #1#) (GO G191)))
+ (SEQ (EXIT (LETT #0# (CONS |i| #0#)
+ |LNAGG-;indices;AL;1|)))
+ (LETT |i| (+ |i| 1) |LNAGG-;indices;AL;1|) (GO G190)
+ G191 (EXIT (NREVERSE0 #0#))))))))
+
+(DEFUN |LNAGG-;index?;IAB;2| (|i| |a| $)
+ (COND
+ ((< |i| (SPADCALL |a| (QREFELT $ 9))) 'NIL)
+ ('T
+ (SPADCALL (< (SPADCALL |a| (QREFELT $ 10)) |i|) (QREFELT $ 14)))))
+
+(DEFUN |LNAGG-;concat;ASA;3| (|a| |x| $)
+ (SPADCALL |a| (SPADCALL 1 |x| (QREFELT $ 17)) (QREFELT $ 18)))
+
+(DEFUN |LNAGG-;concat;S2A;4| (|x| |y| $)
+ (SPADCALL (SPADCALL 1 |x| (QREFELT $ 17)) |y| (QREFELT $ 18)))
+
+(DEFUN |LNAGG-;insert;SAIA;5| (|x| |a| |i| $)
+ (SPADCALL (SPADCALL 1 |x| (QREFELT $ 17)) |a| |i| (QREFELT $ 21)))
+
+(DEFUN |LNAGG-;maxIndex;AI;6| (|l| $)
+ (+ (- (SPADCALL |l| (QREFELT $ 23)) 1) (SPADCALL |l| (QREFELT $ 9))))
+
+(DEFUN |LinearAggregate&| (|#1| |#2|)
+ (PROG (|dv$1| |dv$2| |dv$| $ |pv$|)
+ (RETURN
+ (PROGN
+ (LETT |dv$1| (|devaluate| |#1|) . #0=(|LinearAggregate&|))
+ (LETT |dv$2| (|devaluate| |#2|) . #0#)
+ (LETT |dv$| (LIST '|LinearAggregate&| |dv$1| |dv$2|) . #0#)
+ (LETT $ (GETREFV 26) . #0#)
+ (QSETREFV $ 0 |dv$|)
+ (QSETREFV $ 3
+ (LETT |pv$|
+ (|buildPredVector| 0 0
+ (LIST (|HasAttribute| |#1| '|shallowlyMutable|))) . #0#))
+ (|stuffDomainSlots| $)
+ (QSETREFV $ 6 |#1|)
+ (QSETREFV $ 7 |#2|)
+ (COND
+ ((|HasAttribute| |#1| '|finiteAggregate|)
+ (QSETREFV $ 24
+ (CONS (|dispatchFunction| |LNAGG-;maxIndex;AI;6|) $))))
+ $))))
+
+(MAKEPROP '|LinearAggregate&| '|infovec|
+ (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
+ (|Integer|) (0 . |minIndex|) (5 . |maxIndex|) (|List| 8)
+ |LNAGG-;indices;AL;1| (|Boolean|) (10 . |not|)
+ |LNAGG-;index?;IAB;2| (|NonNegativeInteger|) (15 . |new|)
+ (21 . |concat|) |LNAGG-;concat;ASA;3|
+ |LNAGG-;concat;S2A;4| (27 . |insert|)
+ |LNAGG-;insert;SAIA;5| (34 . |#|) (39 . |maxIndex|)
+ (|List| $))
+ '#(|maxIndex| 44 |insert| 49 |indices| 56 |index?| 61
+ |concat| 67)
+ 'NIL
+ (CONS (|makeByteWordVec2| 1 'NIL)
+ (CONS '#()
+ (CONS '#()
+ (|makeByteWordVec2| 24
+ '(1 6 8 0 9 1 6 8 0 10 1 13 0 0 14 2 6
+ 0 16 7 17 2 6 0 0 0 18 3 6 0 0 0 8 21
+ 1 6 16 0 23 1 0 8 0 24 1 0 8 0 24 3 0
+ 0 7 0 8 22 1 0 11 0 12 2 0 13 8 0 15
+ 2 0 0 0 7 19 2 0 0 7 0 20)))))
+ '|lookupComplete|))