1 2(PUT '|COCHNC;coChainComplex;L$;1| '|SPADreplace| '(XLAM (|v|) |v|)) 3 4(SDEFUN |COCHNC;coChainComplex;L$;1| 5 ((|v| |List| (|Matrix| (|Integer|))) ($ $)) |v|) 6 7(SDEFUN |COCHNC;coChainComplex;Cc$;2| ((|s| |ChainComplex|) ($ $)) 8 (SPROG ((|tm| ($))) 9 (SEQ (LETT |tm| (SPADCALL |s| (QREFELT $ 11))) 10 (LETT |tm| (NREVERSE |tm|)) 11 (EXIT (SPADCALL (ELT $ 13) |tm| (QREFELT $ 15)))))) 12 13(SDEFUN |COCHNC;validate;$B;3| ((|a| $) ($ |Boolean|)) 14 (SPROG 15 ((|last| #1=(|Matrix| (|Integer|))) (#2=#:G415 NIL) 16 (|prod| (|Matrix| (|Integer|))) (|m| #1#) (#3=#:G416 NIL) (|x| NIL) 17 (|len| (|NonNegativeInteger|))) 18 (SEQ 19 (EXIT 20 (SEQ (LETT |len| (LENGTH |a|)) 21 (COND ((< |len| 2) (PROGN (LETT #2# 'T) (GO #4=#:G414)))) 22 (LETT |last| (SPADCALL |a| 1 (QREFELT $ 18))) 23 (SEQ (LETT |x| 2) (LETT #3# |len|) G190 24 (COND ((|greater_SI| |x| #3#) (GO G191))) 25 (SEQ (LETT |m| (SPADCALL |a| |x| (QREFELT $ 18))) 26 (COND 27 ((SPADCALL (SPADCALL |m| (QREFELT $ 19)) 28 (SPADCALL |last| (QREFELT $ 20)) 29 (QREFELT $ 22)) 30 (SEQ 31 (SPADCALL 32 (SPADCALL 33 (SPADCALL 34 (SPADCALL 35 (SPADCALL "validate failed nRows=" 36 (QREFELT $ 25)) 37 (SPADCALL (SPADCALL |m| (QREFELT $ 19)) 38 (QREFELT $ 26)) 39 (QREFELT $ 27)) 40 (SPADCALL " not equal to nCols " 41 (QREFELT $ 25)) 42 (QREFELT $ 27)) 43 (SPADCALL (SPADCALL |last| (QREFELT $ 20)) 44 (QREFELT $ 26)) 45 (QREFELT $ 27)) 46 (QREFELT $ 29)) 47 (EXIT (PROGN (LETT #2# NIL) (GO #4#)))))) 48 (LETT |prod| (SPADCALL |last| |m| (QREFELT $ 30))) 49 (COND 50 ((NULL (SPADCALL |prod| (QREFELT $ 31))) 51 (SEQ 52 (SPADCALL 53 (SPADCALL 54 (SPADCALL 55 (SPADCALL 56 (SPADCALL 57 (SPADCALL 58 (SPADCALL 59 "validate failed: product of adjacent maps should be zero" 60 (QREFELT $ 25)) 61 (SPADCALL |last| (QREFELT $ 32)) 62 (QREFELT $ 27)) 63 (SPADCALL " * " (QREFELT $ 25)) 64 (QREFELT $ 27)) 65 (SPADCALL |m| (QREFELT $ 32)) (QREFELT $ 27)) 66 (SPADCALL " = " (QREFELT $ 25)) (QREFELT $ 27)) 67 (SPADCALL |prod| (QREFELT $ 32)) (QREFELT $ 27)) 68 (QREFELT $ 29)) 69 (EXIT (PROGN (LETT #2# NIL) (GO #4#)))))) 70 (EXIT (LETT |last| |m|))) 71 (LETT |x| (|inc_SI| |x|)) (GO G190) G191 (EXIT NIL)) 72 (EXIT 'T))) 73 #4# (EXIT #2#)))) 74 75(SDEFUN |COCHNC;coboundary;$Nni2L;4| 76 ((|a| $) (|n| |NonNegativeInteger|) (|inp| |List| VS) ($ |List| VS)) 77 (SPROG 78 ((|res| (|List| VS)) (#1=#:G430 NIL) (|i| NIL) (#2=#:G429 NIL) 79 (|res1| (|List| VS)) (|val| (VS)) (#3=#:G428 NIL) (|v| NIL) 80 (|fst| (|Boolean|)) (|vs| (|Vector| (|Integer|))) 81 (|m| (|Matrix| (|Integer|))) (|b| (|Vector| (|Integer|))) 82 (|base| (|List| (|Integer|))) (#4=#:G427 NIL) (|x| NIL) 83 (#5=#:G426 NIL) (#6=#:G425 NIL) (|p| NIL) 84 (|inpn| (|NonNegativeInteger|)) 85 (|maps| (|List| (|Matrix| (|Integer|))))) 86 (SEQ (LETT |maps| (REVERSE |a|)) (LETT |res| NIL) 87 (LETT |inpn| (LENGTH |inp|)) 88 (SEQ (LETT |p| 1) (LETT #6# |inpn|) G190 89 (COND ((|greater_SI| |p| #6#) (GO G191))) 90 (SEQ 91 (LETT |base| 92 (PROGN 93 (LETT #5# NIL) 94 (SEQ (LETT |x| 1) (LETT #4# |inpn|) G190 95 (COND ((|greater_SI| |x| #4#) (GO G191))) 96 (SEQ 97 (EXIT 98 (LETT #5# 99 (CONS (COND ((EQL |x| |p|) 1) ('T 0)) 100 #5#)))) 101 (LETT |x| (|inc_SI| |x|)) (GO G190) G191 102 (EXIT (NREVERSE #5#))))) 103 (LETT |b| (SPADCALL |base| (QREFELT $ 36))) 104 (LETT |m| 105 (SPADCALL (SPADCALL |maps| |n| (QREFELT $ 18)) 106 (QREFELT $ 13))) 107 (LETT |vs| (SPADCALL |b| |m| (QREFELT $ 37))) 108 (LETT |fst| 'T) (LETT |res1| NIL) 109 (SEQ (LETT |v| NIL) 110 (LETT #3# (SPADCALL |vs| (QREFELT $ 38))) G190 111 (COND 112 ((OR (ATOM #3#) (PROGN (LETT |v| (CAR #3#)) NIL)) 113 (GO G191))) 114 (SEQ (LETT |val| (SPADCALL |inp| |p| (QREFELT $ 40))) 115 (COND 116 ((EQL |v| 0) 117 (LETT |res1| 118 (SPADCALL |res1| (|spadConstant| $ 41) 119 (QREFELT $ 42))))) 120 (COND 121 ((> |v| 0) 122 (LETT |res1| 123 (SPADCALL |res1| 124 (SPADCALL |val| (QREFELT $ 43)) 125 (QREFELT $ 42))))) 126 (EXIT 127 (COND 128 ((< |v| 0) 129 (LETT |res1| 130 (SPADCALL |res1| |val| 131 (QREFELT $ 42))))))) 132 (LETT #3# (CDR #3#)) (GO G190) G191 (EXIT NIL)) 133 (EXIT 134 (COND ((NULL |res|) (LETT |res| |res1|)) 135 ('T 136 (LETT |res| 137 (PROGN 138 (LETT #2# NIL) 139 (SEQ (LETT |i| 1) (LETT #1# (LENGTH |res1|)) 140 G190 141 (COND 142 ((|greater_SI| |i| #1#) (GO G191))) 143 (SEQ 144 (EXIT 145 (LETT #2# 146 (CONS 147 (SPADCALL 148 (SPADCALL |res| |i| 149 (QREFELT $ 40)) 150 (SPADCALL |res1| |i| 151 (QREFELT $ 40)) 152 (QREFELT $ 44)) 153 #2#)))) 154 (LETT |i| (|inc_SI| |i|)) (GO G190) 155 G191 (EXIT (NREVERSE #2#))))))))) 156 (LETT |p| (|inc_SI| |p|)) (GO G190) G191 (EXIT NIL)) 157 (EXIT |res|)))) 158 159(SDEFUN |COCHNC;coHomology;$L;5| ((|a| $) ($ |List| (|Homology|))) 160 (SPROG 161 ((|prev| (|Matrix| (|Integer|))) (|notFirst| (|Boolean|)) 162 (|res| (|List| (|Homology|))) (|m2| (|Homology|)) (#1=#:G436 NIL) 163 (|m1| NIL)) 164 (SEQ (LETT |res| NIL) (LETT |prev| (MAKE_MATRIX 0 0)) 165 (LETT |notFirst| NIL) 166 (SEQ (LETT |m1| NIL) (LETT #1# |a|) G190 167 (COND 168 ((OR (ATOM #1#) (PROGN (LETT |m1| (CAR #1#)) NIL)) 169 (GO G191))) 170 (SEQ 171 (COND 172 (|notFirst| 173 (SEQ (LETT |m2| (SPADCALL |m1| |prev| (QREFELT $ 48))) 174 (EXIT 175 (LETT |res| 176 (SPADCALL |res| |m2| (QREFELT $ 50))))))) 177 (LETT |notFirst| 'T) (EXIT (LETT |prev| |m1|))) 178 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 179 (EXIT |res|)))) 180 181(SDEFUN |COCHNC;coerce;$Of;6| ((|s| $) ($ |OutputForm|)) 182 (SPROG 183 ((|lst| (|List| (|OutputForm|))) (#1=#:G441 NIL) (|x| NIL) 184 (#2=#:G440 NIL)) 185 (SEQ 186 (LETT |lst| 187 (PROGN 188 (LETT #2# NIL) 189 (SEQ (LETT |x| NIL) (LETT #1# |s|) G190 190 (COND 191 ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#)) NIL)) 192 (GO G191))) 193 (SEQ 194 (EXIT 195 (LETT #2# (CONS (SPADCALL |x| (QREFELT $ 32)) #2#)))) 196 (LETT #1# (CDR #1#)) (GO G190) G191 197 (EXIT (NREVERSE #2#))))) 198 (EXIT (SPADCALL |lst| (QREFELT $ 53)))))) 199 200(DECLAIM (NOTINLINE |CoChainComplex;|)) 201 202(DEFUN |CoChainComplex| (#1=#:G442) 203 (SPROG NIL 204 (PROG (#2=#:G443) 205 (RETURN 206 (COND 207 ((LETT #2# 208 (|lassocShiftWithFunction| (LIST (|devaluate| #1#)) 209 (HGET |$ConstructorCache| 210 '|CoChainComplex|) 211 '|domainEqualList|)) 212 (|CDRwithIncrement| #2#)) 213 ('T 214 (UNWIND-PROTECT (PROG1 (|CoChainComplex;| #1#) (LETT #2# T)) 215 (COND 216 ((NOT #2#) 217 (HREM |$ConstructorCache| '|CoChainComplex|)))))))))) 218 219(DEFUN |CoChainComplex;| (|#1|) 220 (SPROG ((|pv$| NIL) ($ NIL) (|dv$| NIL) (DV$1 NIL)) 221 (PROGN 222 (LETT DV$1 (|devaluate| |#1|)) 223 (LETT |dv$| (LIST '|CoChainComplex| DV$1)) 224 (LETT $ (GETREFV 57)) 225 (QSETREFV $ 0 |dv$|) 226 (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL))) 227 (|haddProp| |$ConstructorCache| '|CoChainComplex| (LIST DV$1) 228 (CONS 1 $)) 229 (|stuffDomainSlots| $) 230 (QSETREFV $ 6 |#1|) 231 (SETF |pv$| (QREFELT $ 3)) 232 (QSETREFV $ 7 (|List| (|Matrix| (|Integer|)))) 233 $))) 234 235(MAKEPROP '|CoChainComplex| '|infovec| 236 (LIST 237 '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) '|Rep| (|List| 12) 238 |COCHNC;coChainComplex;L$;1| (|ChainComplex|) 239 (0 . |transition_matrices|) (|Matrix| 17) (5 . |transpose|) 240 (|Mapping| 12 12) (10 . |map|) |COCHNC;coChainComplex;Cc$;2| 241 (|Integer|) (16 . |elt|) (22 . |maxRowIndex|) 242 (27 . |maxColIndex|) (|Boolean|) (32 . ~=) (|String|) 243 (|OutputForm|) (38 . |message|) (43 . |coerce|) (48 . |hconcat|) 244 (|Void|) (54 . |print|) (59 . *) (65 . |zero?|) (70 . |coerce|) 245 |COCHNC;validate;$B;3| (|List| 17) (|Vector| 17) (75 . |vector|) 246 (80 . *) (86 . |entries|) (|List| 6) (91 . |elt|) (97 . |Zero|) 247 (101 . |concat|) (107 . -) (112 . +) (|NonNegativeInteger|) 248 |COCHNC;coboundary;$Nni2L;4| (|Homology|) (118 . |homologyGroup|) 249 (|List| 47) (124 . |concat|) |COCHNC;coHomology;$L;5| (|List| $) 250 (130 . |commaSeparate|) |COCHNC;coerce;$Of;6| (|SingleInteger|) 251 (|HashState|)) 252 '#(~= 135 |validate| 141 |latex| 146 |hashUpdate!| 151 |hash| 157 253 |coerce| 162 |coboundary| 167 |coHomology| 174 |coChainComplex| 254 179 = 189) 255 'NIL 256 (CONS (|makeByteWordVec2| 1 '(0 0 0)) 257 (CONS '#(|SetCategory&| |BasicType&| NIL) 258 (CONS 259 '#((|SetCategory|) (|BasicType|) (|CoercibleTo| 24)) 260 (|makeByteWordVec2| 56 261 '(1 10 8 0 11 1 12 0 0 13 2 7 0 14 262 0 15 2 7 12 0 17 18 1 12 17 0 19 263 1 12 17 0 20 2 17 21 0 0 22 1 24 264 0 23 25 1 17 24 0 26 2 24 0 0 0 265 27 1 24 28 0 29 2 12 0 0 0 30 1 266 12 21 0 31 1 12 24 0 32 1 35 0 34 267 36 2 12 35 35 0 37 1 35 34 0 38 2 268 39 6 0 17 40 0 6 0 41 2 39 0 0 6 269 42 1 6 0 0 43 2 6 0 0 0 44 2 47 0 270 12 12 48 2 49 0 0 47 50 1 24 0 52 271 53 2 0 21 0 0 1 1 0 21 0 33 1 0 272 23 0 1 2 0 56 56 0 1 1 0 55 0 1 1 273 0 24 0 54 3 0 39 0 45 39 46 1 0 274 49 0 51 1 0 0 8 9 1 0 0 10 16 2 0 275 21 0 0 1))))) 276 '|lookupComplete|)) 277