
(/VERSIONCHECK 2) 

(DEFUN |MATCAT2;map;MM1M2;1| (|f| |m| $)
  (PROG (|ans| |k| #0=#:G1822 |i| #1=#:G1821 |l| #2=#:G1824 |j|
               #3=#:G1823)
    (RETURN
      (SEQ (LETT |ans|
                 (SPADCALL (SPADCALL |m| (QREFELT $ 15))
                     (SPADCALL |m| (QREFELT $ 16))
                     (|spadConstant| $ 17) (QREFELT $ 18))
                 . #4=(|MATCAT2;map;MM1M2;1|))
           (SEQ (LETT |k| (SPADCALL |ans| (QREFELT $ 22)) . #4#)
                (LETT #0# (SPADCALL |ans| (QREFELT $ 23)) . #4#)
                (LETT |i| (SPADCALL |m| (QREFELT $ 20)) . #4#)
                (LETT #1# (SPADCALL |m| (QREFELT $ 21)) . #4#) G190
                (COND ((OR (> |i| #1#) (> |k| #0#)) #5=(GO G191)))
                (SEQ (EXIT (SEQ (LETT |l|
                                      (SPADCALL |ans| (QREFELT $ 26)) . #4#)
                                (LETT #2#
                                      (SPADCALL |ans| (QREFELT $ 27)) . #4#)
                                (LETT |j|
                                      (SPADCALL |m| (QREFELT $ 24)) . #4#)
                                (LETT #3#
                                      (SPADCALL |m| (QREFELT $ 25)) . #4#)
                                G190
                                (COND
                                  ((OR (> |j| #3#) (> |l| #2#)) #5#))
                                (SEQ (EXIT
                                      (SPADCALL |ans| |k| |l|
                                       (SPADCALL
                                        (SPADCALL |m| |i| |j|
                                         (QREFELT $ 28))
                                        |f|)
                                       (QREFELT $ 29))))
                                (LETT |j|
                                      (PROG1 (+ |j| 1)
                                        (LETT |l| (+ |l| 1) . #4#)) . #4#)
                                #6=(GO G190) G191 (EXIT NIL))))
                (LETT |i|
                      (PROG1 (+ |i| 1) (LETT |k| (+ |k| 1) . #4#)) . #4#)
                #6# G191 (EXIT NIL))
           (EXIT |ans|))))) 

(DEFUN |MATCAT2;map;MM1U;2| (|f| |m| $)
  (PROG (|ans| |k| #0=#:G1844 |i| #1=#:G1843 |l| #2=#:G1846 |j|
               #3=#:G1845 |r| #4=#:G1842 #5=#:G1829)
    (RETURN
      (SEQ (EXIT (SEQ (LETT |ans|
                            (SPADCALL (SPADCALL |m| (QREFELT $ 15))
                                (SPADCALL |m| (QREFELT $ 16))
                                (|spadConstant| $ 17) (QREFELT $ 18))
                            . #6=(|MATCAT2;map;MM1U;2|))
                      (SEQ (LETT |k|
                                 (SPADCALL |ans| (QREFELT $ 22)) . #6#)
                           (LETT #0#
                                 (SPADCALL |ans| (QREFELT $ 23)) . #6#)
                           (LETT |i|
                                 (SPADCALL |m| (QREFELT $ 20)) . #6#)
                           (LETT #1#
                                 (SPADCALL |m| (QREFELT $ 21)) . #6#)
                           G190
                           (COND
                             ((OR (> |i| #1#) (> |k| #0#))
                              #7=(GO G191)))
                           (SEQ (EXIT (SEQ
                                       (LETT |l|
                                        (SPADCALL |ans| (QREFELT $ 26)) . #6#)
                                       (LETT #2#
                                        (SPADCALL |ans| (QREFELT $ 27)) . #6#)
                                       (LETT |j|
                                        (SPADCALL |m| (QREFELT $ 24)) . #6#)
                                       (LETT #3#
                                        (SPADCALL |m| (QREFELT $ 25)) . #6#)
                                       G190
                                       (COND
                                         ((OR (> |j| #3#) (> |l| #2#))
                                          #7#))
                                       (SEQ
                                        (LETT |r|
                                         (SPADCALL
                                          (SPADCALL |m| |i| |j|
                                           (QREFELT $ 28))
                                          |f|) . #6#)
                                        (EXIT
                                         (COND
                                           ((SPADCALL |r|
                                             (CONS 1 "failed")
                                             (QREFELT $ 34))
                                            (PROGN
                                              (LETT #4#
                                               (CONS 1 "failed") . #6#)
                                              (GO #4#)))
                                           ('T
                                            (SPADCALL |ans| |k| |l|
                                             (PROG2
                                              (LETT #5# |r| . #6#)
                                              (QCDR #5#)
                                               (|check-union|
                                                (QEQCAR #5# 0)
                                                (QREFELT $ 10) #5#))
                                             (QREFELT $ 29))))))
                                       (LETT |j|
                                        (PROG1 (+ |j| 1)
                                          (LETT |l| (+ |l| 1) . #6#)) . #6#)
                                       #8=(GO G190) G191 (EXIT NIL))))
                           (LETT |i|
                                 (PROG1 (+ |i| 1)
                                   (LETT |k| (+ |k| 1) . #6#)) . #6#)
                           #8# G191 (EXIT NIL))
                      (EXIT (CONS 0 |ans|))))
           #4# (EXIT #4#))))) 

(DEFUN |MATCAT2;reduce;MM12R2;3| (|f| |m| |ident| $)
  (PROG (|i| #0=#:G1852 |j| #1=#:G1853 |s|)
    (RETURN
      (SEQ (LETT |s| |ident| . #2=(|MATCAT2;reduce;MM12R2;3|))
           (SEQ (LETT |i| (SPADCALL |m| (QREFELT $ 20)) . #2#)
                (LETT #0# (SPADCALL |m| (QREFELT $ 21)) . #2#) G190
                (COND ((> |i| #0#) #3=(GO G191)))
                (SEQ (EXIT (SEQ (LETT |j|
                                      (SPADCALL |m| (QREFELT $ 24)) . #2#)
                                (LETT #1#
                                      (SPADCALL |m| (QREFELT $ 25)) . #2#)
                                G190 (COND ((> |j| #1#) #3#))
                                (SEQ (EXIT
                                      (LETT |s|
                                       (SPADCALL
                                        (SPADCALL |m| |i| |j|
                                         (QREFELT $ 28))
                                        |s| |f|) . #2#)))
                                (LETT |j| (+ |j| 1) . #2#) #4=(GO G190)
                                G191 (EXIT NIL))))
                (LETT |i| (+ |i| 1) . #2#) #4# G191 (EXIT NIL))
           (EXIT |s|))))) 

(DEFUN |MatrixCategoryFunctions2| (&REST #0=#:G1854)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1855)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (|devaluateList| #0#)
                       (HGET |$ConstructorCache|
                             '|MatrixCategoryFunctions2|)
                       '|domainEqualList|)
                   . #2=(|MatrixCategoryFunctions2|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (APPLY (|function| |MatrixCategoryFunctions2;|)
                             #0#)
                 (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache|
                        '|MatrixCategoryFunctions2|))))))))))) 

(DEFUN |MatrixCategoryFunctions2;|
       (|#1| |#2| |#3| |#4| |#5| |#6| |#7| |#8|)
  (PROG (DV$1 DV$2 DV$3 DV$4 DV$5 DV$6 DV$7 DV$8 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|MatrixCategoryFunctions2|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT DV$4 (|devaluate| |#4|) . #0#)
        (LETT DV$5 (|devaluate| |#5|) . #0#)
        (LETT DV$6 (|devaluate| |#6|) . #0#)
        (LETT DV$7 (|devaluate| |#7|) . #0#)
        (LETT DV$8 (|devaluate| |#8|) . #0#)
        (LETT |dv$|
              (LIST '|MatrixCategoryFunctions2| DV$1 DV$2 DV$3 DV$4
                    DV$5 DV$6 DV$7 DV$8) . #0#)
        (LETT $ (GETREFV 40) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|MatrixCategoryFunctions2|
            (LIST DV$1 DV$2 DV$3 DV$4 DV$5 DV$6 DV$7 DV$8) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        (QSETREFV $ 9 |#4|)
        (QSETREFV $ 10 |#5|)
        (QSETREFV $ 11 |#6|)
        (QSETREFV $ 12 |#7|)
        (QSETREFV $ 13 |#8|)
        $)))) 

(MAKEPROP '|MatrixCategoryFunctions2| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) (|local| |#4|) (|local| |#5|)
             (|local| |#6|) (|local| |#7|) (|local| |#8|)
             (|NonNegativeInteger|) (0 . |nrows|) (5 . |ncols|)
             (10 . |Zero|) (14 . |new|) (|Integer|)
             (21 . |minRowIndex|) (26 . |maxRowIndex|)
             (31 . |minRowIndex|) (36 . |maxRowIndex|)
             (41 . |minColIndex|) (46 . |maxColIndex|)
             (51 . |minColIndex|) (56 . |maxColIndex|) (61 . |qelt|)
             (68 . |qsetelt!|) (|Mapping| 10 6) |MATCAT2;map;MM1M2;1|
             (|Boolean|) (|Union| 10 '"failed") (76 . =)
             (|Union| 13 '"failed") (|Mapping| 33 6)
             |MATCAT2;map;MM1U;2| (|Mapping| 10 6 10)
             |MATCAT2;reduce;MM12R2;3|)
          '#(|reduce| 82 |map| 89) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 39
                                '(1 9 14 0 15 1 9 14 0 16 0 10 0 17 3
                                  13 0 14 14 10 18 1 9 19 0 20 1 9 19 0
                                  21 1 13 19 0 22 1 13 19 0 23 1 9 19 0
                                  24 1 9 19 0 25 1 13 19 0 26 1 13 19 0
                                  27 3 9 6 0 19 19 28 4 13 10 0 19 19
                                  10 29 2 33 32 0 0 34 3 0 10 38 9 10
                                  39 2 0 13 30 9 31 2 0 35 36 9 37)))))
          '|lookupComplete|)) 
