
(/VERSIONCHECK 2) 

(DEFUN |MATCAT-;square?;SB;1| (|x| $)
  (EQL (SPADCALL |x| (QREFELT $ 11)) (SPADCALL |x| (QREFELT $ 12)))) 

(DEFUN |MATCAT-;diagonal?;SB;2| (|x| $)
  (PROG (#1=#:G1870 #2=#:G1873 #3=#:G1875 |j| #4=#:G1874 |i|)
    (RETURN
     (SEQ
      (EXIT
       (COND ((NULL (SPADCALL |x| (QREFELT $ 15))) 'NIL)
             ('T
              (SEQ
               (SEQ
                (LETT |i| (SPADCALL |x| (QREFELT $ 17))
                      . #5=(|MATCAT-;diagonal?;SB;2|))
                (LETT #4# (SPADCALL |x| (QREFELT $ 18)) . #5#) G190
                (COND ((> |i| #4#) (GO G191)))
                (SEQ
                 (EXIT
                  (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #5#)
                       (LETT #3# (SPADCALL |x| (QREFELT $ 20)) . #5#) G190
                       (COND ((> |j| #3#) (GO G191)))
                       (SEQ
                        (EXIT
                         (COND
                          ((SPADCALL (- |j| (SPADCALL |x| (QREFELT $ 19)))
                                     (- |i| (SPADCALL |x| (QREFELT $ 17)))
                                     (QREFELT $ 21))
                           (COND
                            ((NULL
                              (SPADCALL (SPADCALL |x| |i| |j| (QREFELT $ 22))
                                        (QREFELT $ 23)))
                             (PROGN
                              (LETT #1# (PROGN (LETT #2# 'NIL . #5#) (GO #2#))
                                    . #5#)
                              (GO #1#))))))))
                       (LETT |j| (+ |j| 1) . #5#) (GO G190) G191 (EXIT NIL)))
                 #1# (EXIT #1#))
                (LETT |i| (+ |i| 1) . #5#) (GO G190) G191 (EXIT NIL))
               (EXIT 'T)))))
      #2# (EXIT #2#))))) 

(DEFUN |MATCAT-;symmetric?;SB;3| (|x| $)
  (PROG (#1=#:G1877 #2=#:G1881 #3=#:G1883 |j| #4=#:G1882 |i| |mc| |mr| |nRows|)
    (RETURN
     (SEQ
      (EXIT
       (COND
        ((SPADCALL
          (LETT |nRows| (SPADCALL |x| (QREFELT $ 11))
                . #5=(|MATCAT-;symmetric?;SB;3|))
          (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 25))
         'NIL)
        ('T
         (SEQ (LETT |mr| (SPADCALL |x| (QREFELT $ 17)) . #5#)
              (LETT |mc| (SPADCALL |x| (QREFELT $ 19)) . #5#)
              (SEQ (LETT |i| 0 . #5#) (LETT #4# (- |nRows| 1) . #5#) G190
                   (COND ((QSGREATERP |i| #4#) (GO G191)))
                   (SEQ
                    (EXIT
                     (SEQ (LETT |j| (+ |i| 1) . #5#)
                          (LETT #3# (- |nRows| 1) . #5#) G190
                          (COND ((> |j| #3#) (GO G191)))
                          (SEQ
                           (EXIT
                            (COND
                             ((SPADCALL
                               (SPADCALL |x| (+ |mr| |i|) (+ |mc| |j|)
                                         (QREFELT $ 22))
                               (SPADCALL |x| (+ |mr| |j|) (+ |mc| |i|)
                                         (QREFELT $ 22))
                               (QREFELT $ 26))
                              (PROGN
                               (LETT #1# (PROGN (LETT #2# 'NIL . #5#) (GO #2#))
                                     . #5#)
                               (GO #1#))))))
                          (LETT |j| (+ |j| 1) . #5#) (GO G190) G191
                          (EXIT NIL)))
                    #1# (EXIT #1#))
                   (LETT |i| (QSADD1 |i|) . #5#) (GO G190) G191 (EXIT NIL))
              (EXIT 'T)))))
      #2# (EXIT #2#))))) 

(DEFUN |MATCAT-;antisymmetric?;SB;4| (|x| $)
  (PROG (#1=#:G1885 #2=#:G1889 #3=#:G1891 |j| #4=#:G1890 |i| |mc| |mr| |nRows|)
    (RETURN
     (SEQ
      (EXIT
       (COND
        ((SPADCALL
          (LETT |nRows| (SPADCALL |x| (QREFELT $ 11))
                . #5=(|MATCAT-;antisymmetric?;SB;4|))
          (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 25))
         'NIL)
        ('T
         (SEQ (LETT |mr| (SPADCALL |x| (QREFELT $ 17)) . #5#)
              (LETT |mc| (SPADCALL |x| (QREFELT $ 19)) . #5#)
              (SEQ (LETT |i| 0 . #5#) (LETT #4# (- |nRows| 1) . #5#) G190
                   (COND ((QSGREATERP |i| #4#) (GO G191)))
                   (SEQ
                    (EXIT
                     (SEQ (LETT |j| |i| . #5#) (LETT #3# (- |nRows| 1) . #5#)
                          G190 (COND ((> |j| #3#) (GO G191)))
                          (SEQ
                           (EXIT
                            (COND
                             ((SPADCALL
                               (SPADCALL |x| (+ |mr| |i|) (+ |mc| |j|)
                                         (QREFELT $ 22))
                               (SPADCALL
                                (SPADCALL |x| (+ |mr| |j|) (+ |mc| |i|)
                                          (QREFELT $ 22))
                                (QREFELT $ 28))
                               (QREFELT $ 26))
                              (PROGN
                               (LETT #1# (PROGN (LETT #2# 'NIL . #5#) (GO #2#))
                                     . #5#)
                               (GO #1#))))))
                          (LETT |j| (+ |j| 1) . #5#) (GO G190) G191
                          (EXIT NIL)))
                    #1# (EXIT #1#))
                   (LETT |i| (QSADD1 |i|) . #5#) (GO G190) G191 (EXIT NIL))
              (EXIT 'T)))))
      #2# (EXIT #2#))))) 

(DEFUN |MATCAT-;zero;2NniS;5| (|rows| |cols| $)
  (SPADCALL |rows| |cols| (|spadConstant| $ 30) (QREFELT $ 31))) 

(DEFUN |MATCAT-;matrix;LS;6| (|l| $)
  (PROG (#1=#:G1911 |j| #2=#:G1912 |r| #3=#:G1909 |i| #4=#:G1910 |ll| |ans|
         |rows| #5=#:G1908 |cols|)
    (RETURN
     (SEQ
      (COND ((NULL |l|) (SPADCALL 0 0 (|spadConstant| $ 30) (QREFELT $ 31)))
            (#6='T
             (SEQ (LETT |rows| 1 . #7=(|MATCAT-;matrix;LS;6|))
                  (LETT |cols| (LENGTH (|SPADfirst| |l|)) . #7#)
                  (EXIT
                   (COND
                    ((EQL |cols| 0)
                     (|error| "matrices with zero columns are not supported"))
                    (#6#
                     (SEQ
                      (SEQ (LETT |ll| NIL . #7#) (LETT #5# (CDR |l|) . #7#)
                           G190
                           (COND
                            ((OR (ATOM #5#)
                                 (PROGN (LETT |ll| (CAR #5#) . #7#) NIL))
                             (GO G191)))
                           (SEQ
                            (EXIT
                             (COND
                              ((SPADCALL |cols| (LENGTH |ll|) (QREFELT $ 25))
                               (|error| "matrix: rows of different lengths"))
                              ('T (LETT |rows| (+ |rows| 1) . #7#)))))
                           (LETT #5# (CDR #5#) . #7#) (GO G190) G191
                           (EXIT NIL))
                      (LETT |ans|
                            (SPADCALL |rows| |cols| (|spadConstant| $ 30)
                                      (QREFELT $ 31))
                            . #7#)
                      (SEQ (LETT |ll| NIL . #7#) (LETT #4# |l| . #7#)
                           (LETT |i| (SPADCALL |ans| (QREFELT $ 17)) . #7#)
                           (LETT #3# (SPADCALL |ans| (QREFELT $ 18)) . #7#)
                           G190
                           (COND
                            ((OR (> |i| #3#) (ATOM #4#)
                                 (PROGN (LETT |ll| (CAR #4#) . #7#) NIL))
                             (GO G191)))
                           (SEQ
                            (EXIT
                             (SEQ (LETT |r| NIL . #7#) (LETT #2# |ll| . #7#)
                                  (LETT |j| (SPADCALL |ans| (QREFELT $ 19))
                                        . #7#)
                                  (LETT #1# (SPADCALL |ans| (QREFELT $ 20))
                                        . #7#)
                                  G190
                                  (COND
                                   ((OR (> |j| #1#) (ATOM #2#)
                                        (PROGN (LETT |r| (CAR #2#) . #7#) NIL))
                                    (GO G191)))
                                  (SEQ
                                   (EXIT
                                    (SPADCALL |ans| |i| |j| |r|
                                              (QREFELT $ 33))))
                                  (LETT |j|
                                        (PROG1 (+ |j| 1)
                                          (LETT #2# (CDR #2#) . #7#))
                                        . #7#)
                                  (GO G190) G191 (EXIT NIL))))
                           (LETT |i|
                                 (PROG1 (+ |i| 1) (LETT #4# (CDR #4#) . #7#))
                                 . #7#)
                           (GO G190) G191 (EXIT NIL))
                      (EXIT |ans|)))))))))))) 

(DEFUN |MATCAT-;scalarMatrix;NniRS;7| (|n| |r| $)
  (PROG (#1=#:G1916 |i| #2=#:G1917 |j| |ans|)
    (RETURN
     (SEQ
      (LETT |ans| (SPADCALL |n| |n| (QREFELT $ 36))
            . #3=(|MATCAT-;scalarMatrix;NniRS;7|))
      (SEQ (LETT |j| (SPADCALL |ans| (QREFELT $ 19)) . #3#)
           (LETT #2# (SPADCALL |ans| (QREFELT $ 20)) . #3#)
           (LETT |i| (SPADCALL |ans| (QREFELT $ 17)) . #3#)
           (LETT #1# (SPADCALL |ans| (QREFELT $ 18)) . #3#) G190
           (COND ((OR (> |i| #1#) (> |j| #2#)) (GO G191)))
           (SEQ (EXIT (SPADCALL |ans| |i| |j| |r| (QREFELT $ 33))))
           (LETT |i| (PROG1 (+ |i| 1) (LETT |j| (+ |j| 1) . #3#)) . #3#)
           (GO G190) G191 (EXIT NIL))
      (EXIT |ans|))))) 

(DEFUN |MATCAT-;diagonalMatrix;LS;8| (|l| $)
  (PROG (#1=#:G1921 |i| #2=#:G1922 |j| #3=#:G1923 |r| |ans| |n|)
    (RETURN
     (SEQ (LETT |n| (LENGTH |l|) . #4=(|MATCAT-;diagonalMatrix;LS;8|))
          (LETT |ans| (SPADCALL |n| |n| (QREFELT $ 36)) . #4#)
          (SEQ (LETT |r| NIL . #4#) (LETT #3# |l| . #4#)
               (LETT |j| (SPADCALL |ans| (QREFELT $ 19)) . #4#)
               (LETT #2# (SPADCALL |ans| (QREFELT $ 20)) . #4#)
               (LETT |i| (SPADCALL |ans| (QREFELT $ 17)) . #4#)
               (LETT #1# (SPADCALL |ans| (QREFELT $ 18)) . #4#) G190
               (COND
                ((OR (> |i| #1#) (> |j| #2#) (ATOM #3#)
                     (PROGN (LETT |r| (CAR #3#) . #4#) NIL))
                 (GO G191)))
               (SEQ (EXIT (SPADCALL |ans| |i| |j| |r| (QREFELT $ 33))))
               (LETT |i|
                     (PROG1 (+ |i| 1)
                       (LETT |j| (PROG1 (+ |j| 1) (LETT #3# (CDR #3#) . #4#))
                             . #4#))
                     . #4#)
               (GO G190) G191 (EXIT NIL))
          (EXIT |ans|))))) 

(DEFUN |MATCAT-;diagonalMatrix;LS;9| (|list| $)
  (PROG (|loC| |loR| |j| #1=#:G1935 |l| |i| #2=#:G1934 |k| |hiC| |hiR|
         #3=#:G1933 |mat| |ans| |cols| |rows| #4=#:G1932)
    (RETURN
     (SEQ (LETT |rows| 0 . #5=(|MATCAT-;diagonalMatrix;LS;9|))
          (LETT |cols| 0 . #5#)
          (SEQ (LETT |mat| NIL . #5#) (LETT #4# |list| . #5#) G190
               (COND
                ((OR (ATOM #4#) (PROGN (LETT |mat| (CAR #4#) . #5#) NIL))
                 (GO G191)))
               (SEQ
                (LETT |rows| (+ |rows| (SPADCALL |mat| (QREFELT $ 11))) . #5#)
                (EXIT
                 (LETT |cols| (+ |cols| (SPADCALL |mat| (QREFELT $ 12)))
                       . #5#)))
               (LETT #4# (CDR #4#) . #5#) (GO G190) G191 (EXIT NIL))
          (LETT |ans| (SPADCALL |rows| |cols| (QREFELT $ 36)) . #5#)
          (LETT |loR| (SPADCALL |ans| (QREFELT $ 17)) . #5#)
          (LETT |loC| (SPADCALL |ans| (QREFELT $ 19)) . #5#)
          (SEQ (LETT |mat| NIL . #5#) (LETT #3# |list| . #5#) G190
               (COND
                ((OR (ATOM #3#) (PROGN (LETT |mat| (CAR #3#) . #5#) NIL))
                 (GO G191)))
               (SEQ
                (LETT |hiR| (- (+ |loR| (SPADCALL |mat| (QREFELT $ 11))) 1)
                      . #5#)
                (LETT |hiC| (- (+ |loC| (SPADCALL |mat| (QREFELT $ 11))) 1)
                      . #5#)
                (SEQ (LETT |k| (SPADCALL |mat| (QREFELT $ 17)) . #5#)
                     (LETT #2# (SPADCALL |mat| (QREFELT $ 18)) . #5#)
                     (LETT |i| |loR| . #5#) G190
                     (COND ((OR (> |i| |hiR|) (> |k| #2#)) (GO G191)))
                     (SEQ
                      (EXIT
                       (SEQ (LETT |l| (SPADCALL |mat| (QREFELT $ 19)) . #5#)
                            (LETT #1# (SPADCALL |mat| (QREFELT $ 20)) . #5#)
                            (LETT |j| |loC| . #5#) G190
                            (COND ((OR (> |j| |hiC|) (> |l| #1#)) (GO G191)))
                            (SEQ
                             (EXIT
                              (SPADCALL |ans| |i| |j|
                                        (SPADCALL |mat| |k| |l| (QREFELT $ 22))
                                        (QREFELT $ 33))))
                            (LETT |j|
                                  (PROG1 (+ |j| 1) (LETT |l| (+ |l| 1) . #5#))
                                  . #5#)
                            (GO G190) G191 (EXIT NIL))))
                     (LETT |i| (PROG1 (+ |i| 1) (LETT |k| (+ |k| 1) . #5#))
                           . #5#)
                     (GO G190) G191 (EXIT NIL))
                (LETT |loR| (+ |hiR| 1) . #5#)
                (EXIT (LETT |loC| (+ |hiC| 1) . #5#)))
               (LETT #3# (CDR #3#) . #5#) (GO G190) G191 (EXIT NIL))
          (EXIT |ans|))))) 

(DEFUN |MATCAT-;coerce;ColS;10| (|v| $)
  (PROG (#1=#:G1939 |i| #2=#:G1940 |k| |one| |x|)
    (RETURN
     (SEQ
      (LETT |x|
            (SPADCALL (SPADCALL |v| (QREFELT $ 42)) 1 (|spadConstant| $ 30)
                      (QREFELT $ 31))
            . #3=(|MATCAT-;coerce;ColS;10|))
      (LETT |one| (SPADCALL |x| (QREFELT $ 19)) . #3#)
      (SEQ (LETT |k| (SPADCALL |v| (QREFELT $ 43)) . #3#)
           (LETT #2# (SPADCALL |v| (QREFELT $ 44)) . #3#)
           (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #3#)
           (LETT #1# (SPADCALL |x| (QREFELT $ 18)) . #3#) G190
           (COND ((OR (> |i| #1#) (> |k| #2#)) (GO G191)))
           (SEQ
            (EXIT
             (SPADCALL |x| |i| |one| (SPADCALL |v| |k| (QREFELT $ 45))
                       (QREFELT $ 33))))
           (LETT |i| (PROG1 (+ |i| 1) (LETT |k| (+ |k| 1) . #3#)) . #3#)
           (GO G190) G191 (EXIT NIL))
      (EXIT |x|))))) 

(DEFUN |MATCAT-;transpose;RowS;11| (|v| $)
  (PROG (#1=#:G1944 |j| #2=#:G1945 |k| |one| |x|)
    (RETURN
     (SEQ
      (LETT |x|
            (SPADCALL 1 (SPADCALL |v| (QREFELT $ 47)) (|spadConstant| $ 30)
                      (QREFELT $ 31))
            . #3=(|MATCAT-;transpose;RowS;11|))
      (LETT |one| (SPADCALL |x| (QREFELT $ 17)) . #3#)
      (SEQ (LETT |k| (SPADCALL |v| (QREFELT $ 48)) . #3#)
           (LETT #2# (SPADCALL |v| (QREFELT $ 49)) . #3#)
           (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #3#)
           (LETT #1# (SPADCALL |x| (QREFELT $ 20)) . #3#) G190
           (COND ((OR (> |j| #1#) (> |k| #2#)) (GO G191)))
           (SEQ
            (EXIT
             (SPADCALL |x| |one| |j| (SPADCALL |v| |k| (QREFELT $ 50))
                       (QREFELT $ 33))))
           (LETT |j| (PROG1 (+ |j| 1) (LETT |k| (+ |k| 1) . #3#)) . #3#)
           (GO G190) G191 (EXIT NIL))
      (EXIT |x|))))) 

(DEFUN |MATCAT-;transpose;2S;12| (|x| $)
  (PROG (#1=#:G1951 |j| #2=#:G1950 |i| |ans|)
    (RETURN
     (SEQ
      (LETT |ans|
            (SPADCALL (SPADCALL |x| (QREFELT $ 12))
                      (SPADCALL |x| (QREFELT $ 11)) (|spadConstant| $ 30)
                      (QREFELT $ 31))
            . #3=(|MATCAT-;transpose;2S;12|))
      (SEQ (LETT |i| (SPADCALL |ans| (QREFELT $ 17)) . #3#)
           (LETT #2# (SPADCALL |ans| (QREFELT $ 18)) . #3#) G190
           (COND ((> |i| #2#) (GO G191)))
           (SEQ
            (EXIT
             (SEQ (LETT |j| (SPADCALL |ans| (QREFELT $ 19)) . #3#)
                  (LETT #1# (SPADCALL |ans| (QREFELT $ 20)) . #3#) G190
                  (COND ((> |j| #1#) (GO G191)))
                  (SEQ
                   (EXIT
                    (SPADCALL |ans| |i| |j|
                              (SPADCALL |x| |j| |i| (QREFELT $ 22))
                              (QREFELT $ 33))))
                  (LETT |j| (+ |j| 1) . #3#) (GO G190) G191 (EXIT NIL))))
           (LETT |i| (+ |i| 1) . #3#) (GO G190) G191 (EXIT NIL))
      (EXIT |ans|))))) 

(DEFUN |MATCAT-;squareTop;2S;13| (|x| $)
  (PROG (#1=#:G1958 |j| #2=#:G1957 |i| |ans| |cols|)
    (RETURN
     (SEQ
      (COND
       ((< (SPADCALL |x| (QREFELT $ 11))
           (LETT |cols| (SPADCALL |x| (QREFELT $ 12))
                 . #3=(|MATCAT-;squareTop;2S;13|)))
        (|error| "squareTop: number of columns exceeds number of rows"))
       ('T
        (SEQ
         (LETT |ans|
               (SPADCALL |cols| |cols| (|spadConstant| $ 30) (QREFELT $ 31))
               . #3#)
         (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #3#)
              (LETT #2# (- (+ (SPADCALL |x| (QREFELT $ 17)) |cols|) 1) . #3#)
              G190 (COND ((> |i| #2#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #3#)
                     (LETT #1# (SPADCALL |x| (QREFELT $ 20)) . #3#) G190
                     (COND ((> |j| #1#) (GO G191)))
                     (SEQ
                      (EXIT
                       (SPADCALL |ans| |i| |j|
                                 (SPADCALL |x| |i| |j| (QREFELT $ 22))
                                 (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #3#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #3#) (GO G190) G191 (EXIT NIL))
         (EXIT |ans|)))))))) 

(DEFUN |MATCAT-;horizConcat;3S;14| (|x| |y| $)
  (PROG (#1=#:G1969 |j| #2=#:G1968 |i| #3=#:G1967 #4=#:G1966 |ans| |cols|
         |rows|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL
         (LETT |rows| (SPADCALL |x| (QREFELT $ 11))
               . #5=(|MATCAT-;horizConcat;3S;14|))
         (SPADCALL |y| (QREFELT $ 11)) (QREFELT $ 25))
        (|error| "HConcat: matrices must have same number of rows"))
       ('T
        (SEQ
         (LETT |ans|
               (SPADCALL |rows|
                         (+ (LETT |cols| (SPADCALL |x| (QREFELT $ 12)) . #5#)
                            (SPADCALL |y| (QREFELT $ 12)))
                         (|spadConstant| $ 30) (QREFELT $ 31))
               . #5#)
         (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #5#)
              (LETT #4# (SPADCALL |x| (QREFELT $ 18)) . #5#) G190
              (COND ((> |i| #4#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #5#)
                     (LETT #3# (SPADCALL |x| (QREFELT $ 20)) . #5#) G190
                     (COND ((> |j| #3#) (GO G191)))
                     (SEQ
                      (EXIT
                       (SPADCALL |ans| |i| |j|
                                 (SPADCALL |x| |i| |j| (QREFELT $ 22))
                                 (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #5#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #5#) (GO G190) G191 (EXIT NIL))
         (SEQ (LETT |i| (SPADCALL |y| (QREFELT $ 17)) . #5#)
              (LETT #2# (SPADCALL |y| (QREFELT $ 18)) . #5#) G190
              (COND ((> |i| #2#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |y| (QREFELT $ 19)) . #5#)
                     (LETT #1# (SPADCALL |y| (QREFELT $ 20)) . #5#) G190
                     (COND ((> |j| #1#) (GO G191)))
                     (SEQ
                      (EXIT
                       (SPADCALL |ans| |i| (+ |j| |cols|)
                                 (SPADCALL |y| |i| |j| (QREFELT $ 22))
                                 (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #5#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #5#) (GO G190) G191 (EXIT NIL))
         (EXIT |ans|)))))))) 

(DEFUN |MATCAT-;vertConcat;3S;15| (|x| |y| $)
  (PROG (#1=#:G1980 |j| #2=#:G1979 |i| #3=#:G1978 #4=#:G1977 |ans| |rows|
         |cols|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL
         (LETT |cols| (SPADCALL |x| (QREFELT $ 12))
               . #5=(|MATCAT-;vertConcat;3S;15|))
         (SPADCALL |y| (QREFELT $ 12)) (QREFELT $ 25))
        (|error| "HConcat: matrices must have same number of columns"))
       ('T
        (SEQ
         (LETT |ans|
               (SPADCALL
                (+ (LETT |rows| (SPADCALL |x| (QREFELT $ 11)) . #5#)
                   (SPADCALL |y| (QREFELT $ 11)))
                |cols| (|spadConstant| $ 30) (QREFELT $ 31))
               . #5#)
         (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #5#)
              (LETT #4# (SPADCALL |x| (QREFELT $ 18)) . #5#) G190
              (COND ((> |i| #4#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #5#)
                     (LETT #3# (SPADCALL |x| (QREFELT $ 20)) . #5#) G190
                     (COND ((> |j| #3#) (GO G191)))
                     (SEQ
                      (EXIT
                       (SPADCALL |ans| |i| |j|
                                 (SPADCALL |x| |i| |j| (QREFELT $ 22))
                                 (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #5#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #5#) (GO G190) G191 (EXIT NIL))
         (SEQ (LETT |i| (SPADCALL |y| (QREFELT $ 17)) . #5#)
              (LETT #2# (SPADCALL |y| (QREFELT $ 18)) . #5#) G190
              (COND ((> |i| #2#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |y| (QREFELT $ 19)) . #5#)
                     (LETT #1# (SPADCALL |y| (QREFELT $ 20)) . #5#) G190
                     (COND ((> |j| #1#) (GO G191)))
                     (SEQ
                      (EXIT
                       (SPADCALL |ans| (+ |i| |rows|) |j|
                                 (SPADCALL |y| |i| |j| (QREFELT $ 22))
                                 (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #5#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #5#) (GO G190) G191 (EXIT NIL))
         (EXIT |ans|)))))))) 

(DEFUN |MATCAT-;listOfLists;SL;16| (|x| $)
  (PROG (|ll| |l| #1=#:G1987 |j| #2=#:G1986 |i|)
    (RETURN
     (SEQ (LETT |ll| NIL . #3=(|MATCAT-;listOfLists;SL;16|))
          (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 18)) . #3#)
               (LETT #2# (SPADCALL |x| (QREFELT $ 17)) . #3#) G190
               (COND ((< |i| #2#) (GO G191)))
               (SEQ (LETT |l| NIL . #3#)
                    (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 20)) . #3#)
                         (LETT #1# (SPADCALL |x| (QREFELT $ 19)) . #3#) G190
                         (COND ((< |j| #1#) (GO G191)))
                         (SEQ
                          (EXIT
                           (LETT |l|
                                 (CONS (SPADCALL |x| |i| |j| (QREFELT $ 22))
                                       |l|)
                                 . #3#)))
                         (LETT |j| (+ |j| -1) . #3#) (GO G190) G191 (EXIT NIL))
                    (EXIT (LETT |ll| (CONS |l| |ll|) . #3#)))
               (LETT |i| (+ |i| -1) . #3#) (GO G190) G191 (EXIT NIL))
          (EXIT |ll|))))) 

(DEFUN |MATCAT-;swapRows!;S2IS;17| (|x| |i1| |i2| $)
  (PROG (|r| #1=#:G1997 |j|)
    (RETURN
     (SEQ
      (COND
       ((OR (< |i1| (SPADCALL |x| (QREFELT $ 17)))
            (OR (SPADCALL |i1| (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 57))
                (OR (< |i2| (SPADCALL |x| (QREFELT $ 17)))
                    (SPADCALL |i2| (SPADCALL |x| (QREFELT $ 18))
                              (QREFELT $ 57)))))
        (|error| "swapRows!: index out of range"))
       ('T
        (COND ((EQL |i1| |i2|) |x|)
              ('T
               (SEQ
                (SEQ
                 (LETT |j| (SPADCALL |x| (QREFELT $ 19))
                       . #2=(|MATCAT-;swapRows!;S2IS;17|))
                 (LETT #1# (SPADCALL |x| (QREFELT $ 20)) . #2#) G190
                 (COND ((> |j| #1#) (GO G191)))
                 (SEQ (LETT |r| (SPADCALL |x| |i1| |j| (QREFELT $ 22)) . #2#)
                      (SPADCALL |x| |i1| |j|
                                (SPADCALL |x| |i2| |j| (QREFELT $ 22))
                                (QREFELT $ 33))
                      (EXIT (SPADCALL |x| |i2| |j| |r| (QREFELT $ 33))))
                 (LETT |j| (+ |j| 1) . #2#) (GO G190) G191 (EXIT NIL))
                (EXIT |x|)))))))))) 

(DEFUN |MATCAT-;swapColumns!;S2IS;18| (|x| |j1| |j2| $)
  (PROG (|r| #1=#:G2007 |i|)
    (RETURN
     (SEQ
      (COND
       ((OR (< |j1| (SPADCALL |x| (QREFELT $ 19)))
            (OR (SPADCALL |j1| (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 57))
                (OR (< |j2| (SPADCALL |x| (QREFELT $ 19)))
                    (SPADCALL |j2| (SPADCALL |x| (QREFELT $ 20))
                              (QREFELT $ 57)))))
        (|error| "swapColumns!: index out of range"))
       ('T
        (COND ((EQL |j1| |j2|) |x|)
              ('T
               (SEQ
                (SEQ
                 (LETT |i| (SPADCALL |x| (QREFELT $ 17))
                       . #2=(|MATCAT-;swapColumns!;S2IS;18|))
                 (LETT #1# (SPADCALL |x| (QREFELT $ 18)) . #2#) G190
                 (COND ((> |i| #1#) (GO G191)))
                 (SEQ (LETT |r| (SPADCALL |x| |i| |j1| (QREFELT $ 22)) . #2#)
                      (SPADCALL |x| |i| |j1|
                                (SPADCALL |x| |i| |j2| (QREFELT $ 22))
                                (QREFELT $ 33))
                      (EXIT (SPADCALL |x| |i| |j2| |r| (QREFELT $ 33))))
                 (LETT |i| (+ |i| 1) . #2#) (GO G190) G191 (EXIT NIL))
                (EXIT |x|)))))))))) 

(DEFUN |MATCAT-;elt;S2LS;19| (|x| |rowList| |colList| $)
  (PROG (#1=#:G2022 |ej| #2=#:G2023 |j| #3=#:G2020 |ei| #4=#:G2021 |i| |y|
         #5=#:G2013 #6=#:G2019 #7=#:G2010 #8=#:G2018)
    (RETURN
     (SEQ
      (SEQ
       (EXIT
        (SEQ (LETT |ei| NIL . #9=(|MATCAT-;elt;S2LS;19|))
             (LETT #8# |rowList| . #9#) G190
             (COND
              ((OR (ATOM #8#) (PROGN (LETT |ei| (CAR #8#) . #9#) NIL))
               (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((OR (< |ei| (SPADCALL |x| (QREFELT $ 17)))
                     (SPADCALL |ei| (SPADCALL |x| (QREFELT $ 18))
                               (QREFELT $ 57)))
                 (PROGN
                  (LETT #7# (|error| "elt: index out of range") . #9#)
                  (GO #7#))))))
             (LETT #8# (CDR #8#) . #9#) (GO G190) G191 (EXIT NIL)))
       #7# (EXIT #7#))
      (SEQ
       (EXIT
        (SEQ (LETT |ej| NIL . #9#) (LETT #6# |colList| . #9#) G190
             (COND
              ((OR (ATOM #6#) (PROGN (LETT |ej| (CAR #6#) . #9#) NIL))
               (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((OR (< |ej| (SPADCALL |x| (QREFELT $ 19)))
                     (SPADCALL |ej| (SPADCALL |x| (QREFELT $ 20))
                               (QREFELT $ 57)))
                 (PROGN
                  (LETT #5# (|error| "elt: index out of range") . #9#)
                  (GO #5#))))))
             (LETT #6# (CDR #6#) . #9#) (GO G190) G191 (EXIT NIL)))
       #5# (EXIT #5#))
      (LETT |y|
            (SPADCALL (LENGTH |rowList|) (LENGTH |colList|)
                      (|spadConstant| $ 30) (QREFELT $ 31))
            . #9#)
      (SEQ (LETT |i| (SPADCALL |y| (QREFELT $ 17)) . #9#)
           (LETT #4# (SPADCALL |y| (QREFELT $ 18)) . #9#) (LETT |ei| NIL . #9#)
           (LETT #3# |rowList| . #9#) G190
           (COND
            ((OR (ATOM #3#) (PROGN (LETT |ei| (CAR #3#) . #9#) NIL)
                 (> |i| #4#))
             (GO G191)))
           (SEQ
            (EXIT
             (SEQ (LETT |j| (SPADCALL |y| (QREFELT $ 19)) . #9#)
                  (LETT #2# (SPADCALL |y| (QREFELT $ 20)) . #9#)
                  (LETT |ej| NIL . #9#) (LETT #1# |colList| . #9#) G190
                  (COND
                   ((OR (ATOM #1#) (PROGN (LETT |ej| (CAR #1#) . #9#) NIL)
                        (> |j| #2#))
                    (GO G191)))
                  (SEQ
                   (EXIT
                    (SPADCALL |y| |i| |j|
                              (SPADCALL |x| |ei| |ej| (QREFELT $ 22))
                              (QREFELT $ 33))))
                  (LETT #1# (PROG1 (CDR #1#) (LETT |j| (+ |j| 1) . #9#)) . #9#)
                  (GO G190) G191 (EXIT NIL))))
           (LETT #3# (PROG1 (CDR #3#) (LETT |i| (+ |i| 1) . #9#)) . #9#)
           (GO G190) G191 (EXIT NIL))
      (EXIT |y|))))) 

(DEFUN |MATCAT-;setelt;S2L2S;20| (|x| |rowList| |colList| |y| $)
  (PROG (#1=#:G2040 |ej| #2=#:G2041 |j| #3=#:G2038 |ei| #4=#:G2039 |i|
         #5=#:G2029 #6=#:G2037 #7=#:G2026 #8=#:G2036)
    (RETURN
     (SEQ
      (SEQ
       (EXIT
        (SEQ (LETT |ei| NIL . #9=(|MATCAT-;setelt;S2L2S;20|))
             (LETT #8# |rowList| . #9#) G190
             (COND
              ((OR (ATOM #8#) (PROGN (LETT |ei| (CAR #8#) . #9#) NIL))
               (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((OR (< |ei| (SPADCALL |x| (QREFELT $ 17)))
                     (SPADCALL |ei| (SPADCALL |x| (QREFELT $ 18))
                               (QREFELT $ 57)))
                 (PROGN
                  (LETT #7# (|error| "setelt: index out of range") . #9#)
                  (GO #7#))))))
             (LETT #8# (CDR #8#) . #9#) (GO G190) G191 (EXIT NIL)))
       #7# (EXIT #7#))
      (SEQ
       (EXIT
        (SEQ (LETT |ej| NIL . #9#) (LETT #6# |colList| . #9#) G190
             (COND
              ((OR (ATOM #6#) (PROGN (LETT |ej| (CAR #6#) . #9#) NIL))
               (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((OR (< |ej| (SPADCALL |x| (QREFELT $ 19)))
                     (SPADCALL |ej| (SPADCALL |x| (QREFELT $ 20))
                               (QREFELT $ 57)))
                 (PROGN
                  (LETT #5# (|error| "setelt: index out of range") . #9#)
                  (GO #5#))))))
             (LETT #6# (CDR #6#) . #9#) (GO G190) G191 (EXIT NIL)))
       #5# (EXIT #5#))
      (COND
       ((OR
         (SPADCALL (LENGTH |rowList|) (SPADCALL |y| (QREFELT $ 11))
                   (QREFELT $ 21))
         (SPADCALL (LENGTH |colList|) (SPADCALL |y| (QREFELT $ 12))
                   (QREFELT $ 21)))
        (EXIT (|error| "setelt: matrix has bad dimensions"))))
      (SEQ (LETT |i| (SPADCALL |y| (QREFELT $ 17)) . #9#)
           (LETT #4# (SPADCALL |y| (QREFELT $ 18)) . #9#) (LETT |ei| NIL . #9#)
           (LETT #3# |rowList| . #9#) G190
           (COND
            ((OR (ATOM #3#) (PROGN (LETT |ei| (CAR #3#) . #9#) NIL)
                 (> |i| #4#))
             (GO G191)))
           (SEQ
            (EXIT
             (SEQ (LETT |j| (SPADCALL |y| (QREFELT $ 19)) . #9#)
                  (LETT #2# (SPADCALL |y| (QREFELT $ 20)) . #9#)
                  (LETT |ej| NIL . #9#) (LETT #1# |colList| . #9#) G190
                  (COND
                   ((OR (ATOM #1#) (PROGN (LETT |ej| (CAR #1#) . #9#) NIL)
                        (> |j| #2#))
                    (GO G191)))
                  (SEQ
                   (EXIT
                    (SPADCALL |x| |ei| |ej|
                              (SPADCALL |y| |i| |j| (QREFELT $ 22))
                              (QREFELT $ 33))))
                  (LETT #1# (PROG1 (CDR #1#) (LETT |j| (+ |j| 1) . #9#)) . #9#)
                  (GO G190) G191 (EXIT NIL))))
           (LETT #3# (PROG1 (CDR #3#) (LETT |i| (+ |i| 1) . #9#)) . #9#)
           (GO G190) G191 (EXIT NIL))
      (EXIT |y|))))) 

(DEFUN |MATCAT-;subMatrix;S4IS;21| (|x| |i1| |i2| |j1| |j2| $)
  (PROG (#1=#:G2051 |j| |l| #2=#:G2050 |i| |k| |y| |cols| |rows|)
    (RETURN
     (SEQ
      (COND ((< |i2| |i1|) (|error| "subMatrix: bad row indices"))
            ((< |j2| |j1|) (|error| "subMatrix: bad column indices"))
            ('T
             (COND
              ((OR (< |i1| (SPADCALL |x| (QREFELT $ 17)))
                   (SPADCALL |i2| (SPADCALL |x| (QREFELT $ 18))
                             (QREFELT $ 57)))
               (|error| "subMatrix: index out of range"))
              ((OR (< |j1| (SPADCALL |x| (QREFELT $ 19)))
                   (SPADCALL |j2| (SPADCALL |x| (QREFELT $ 20))
                             (QREFELT $ 57)))
               (|error| "subMatrix: index out of range"))
              ('T
               (SEQ
                (LETT |rows| (+ (- |i2| |i1|) 1)
                      . #3=(|MATCAT-;subMatrix;S4IS;21|))
                (LETT |cols| (+ (- |j2| |j1|) 1) . #3#)
                (LETT |y|
                      (SPADCALL |rows| |cols| (|spadConstant| $ 30)
                                (QREFELT $ 31))
                      . #3#)
                (SEQ (LETT |k| |i1| . #3#)
                     (LETT |i| (SPADCALL |y| (QREFELT $ 17)) . #3#)
                     (LETT #2# (SPADCALL |y| (QREFELT $ 18)) . #3#) G190
                     (COND ((OR (> |i| #2#) (> |k| |i2|)) (GO G191)))
                     (SEQ
                      (EXIT
                       (SEQ (LETT |l| |j1| . #3#)
                            (LETT |j| (SPADCALL |y| (QREFELT $ 19)) . #3#)
                            (LETT #1# (SPADCALL |y| (QREFELT $ 20)) . #3#) G190
                            (COND ((OR (> |j| #1#) (> |l| |j2|)) (GO G191)))
                            (SEQ
                             (EXIT
                              (SPADCALL |y| |i| |j|
                                        (SPADCALL |x| |k| |l| (QREFELT $ 22))
                                        (QREFELT $ 33))))
                            (LETT |j|
                                  (PROG1 (+ |j| 1) (LETT |l| (+ |l| 1) . #3#))
                                  . #3#)
                            (GO G190) G191 (EXIT NIL))))
                     (LETT |i| (PROG1 (+ |i| 1) (LETT |k| (+ |k| 1) . #3#))
                           . #3#)
                     (GO G190) G191 (EXIT NIL))
                (EXIT |y|)))))))))) 

(DEFUN |MATCAT-;setsubMatrix!;S2I2S;22| (|x| |i1| |j1| |y| $)
  (PROG (#1=#:G2061 |j| |l| #2=#:G2060 |i| |k| |j2| |i2|)
    (RETURN
     (SEQ
      (LETT |i2| (- (+ |i1| (SPADCALL |y| (QREFELT $ 11))) 1)
            . #3=(|MATCAT-;setsubMatrix!;S2I2S;22|))
      (LETT |j2| (- (+ |j1| (SPADCALL |y| (QREFELT $ 12))) 1) . #3#)
      (COND
       ((OR (< |i1| (SPADCALL |x| (QREFELT $ 17)))
            (SPADCALL |i2| (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 57)))
        (EXIT
         (|error|
          "setsubMatrix!: inserted matrix too big, use subMatrix to restrict it"))))
      (COND
       ((OR (< |j1| (SPADCALL |x| (QREFELT $ 19)))
            (SPADCALL |j2| (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 57)))
        (EXIT
         (|error|
          "setsubMatrix!: inserted matrix too big, use subMatrix to restrict it"))))
      (SEQ (LETT |k| |i1| . #3#) (LETT |i| (SPADCALL |y| (QREFELT $ 17)) . #3#)
           (LETT #2# (SPADCALL |y| (QREFELT $ 18)) . #3#) G190
           (COND ((OR (> |i| #2#) (> |k| |i2|)) (GO G191)))
           (SEQ
            (EXIT
             (SEQ (LETT |l| |j1| . #3#)
                  (LETT |j| (SPADCALL |y| (QREFELT $ 19)) . #3#)
                  (LETT #1# (SPADCALL |y| (QREFELT $ 20)) . #3#) G190
                  (COND ((OR (> |j| #1#) (> |l| |j2|)) (GO G191)))
                  (SEQ
                   (EXIT
                    (SPADCALL |x| |k| |l| (SPADCALL |y| |i| |j| (QREFELT $ 22))
                              (QREFELT $ 33))))
                  (LETT |j| (PROG1 (+ |j| 1) (LETT |l| (+ |l| 1) . #3#)) . #3#)
                  (GO G190) G191 (EXIT NIL))))
           (LETT |i| (PROG1 (+ |i| 1) (LETT |k| (+ |k| 1) . #3#)) . #3#)
           (GO G190) G191 (EXIT NIL))
      (EXIT |x|))))) 

(DEFUN |MATCAT-;+;3S;23| (|x| |y| $)
  (PROG (#1=#:G2069 |j| #2=#:G2068 |i| |ans| |c| |r|)
    (RETURN
     (SEQ
      (COND
       ((OR
         (SPADCALL
          (LETT |r| (SPADCALL |x| (QREFELT $ 11)) . #3=(|MATCAT-;+;3S;23|))
          (SPADCALL |y| (QREFELT $ 11)) (QREFELT $ 25))
         (SPADCALL (LETT |c| (SPADCALL |x| (QREFELT $ 12)) . #3#)
                   (SPADCALL |y| (QREFELT $ 12)) (QREFELT $ 25)))
        (|error| "can't add matrices of different dimensions"))
       ('T
        (SEQ
         (LETT |ans| (SPADCALL |r| |c| (|spadConstant| $ 30) (QREFELT $ 31))
               . #3#)
         (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #3#)
              (LETT #2# (SPADCALL |x| (QREFELT $ 18)) . #3#) G190
              (COND ((> |i| #2#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #3#)
                     (LETT #1# (SPADCALL |x| (QREFELT $ 20)) . #3#) G190
                     (COND ((> |j| #1#) (GO G191)))
                     (SEQ
                      (EXIT
                       (SPADCALL |ans| |i| |j|
                                 (SPADCALL
                                  (SPADCALL |x| |i| |j| (QREFELT $ 22))
                                  (SPADCALL |y| |i| |j| (QREFELT $ 22))
                                  (QREFELT $ 65))
                                 (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #3#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #3#) (GO G190) G191 (EXIT NIL))
         (EXIT |ans|)))))))) 

(DEFUN |MATCAT-;-;3S;24| (|x| |y| $)
  (PROG (#1=#:G2077 |j| #2=#:G2076 |i| |ans| |c| |r|)
    (RETURN
     (SEQ
      (COND
       ((OR
         (SPADCALL
          (LETT |r| (SPADCALL |x| (QREFELT $ 11)) . #3=(|MATCAT-;-;3S;24|))
          (SPADCALL |y| (QREFELT $ 11)) (QREFELT $ 25))
         (SPADCALL (LETT |c| (SPADCALL |x| (QREFELT $ 12)) . #3#)
                   (SPADCALL |y| (QREFELT $ 12)) (QREFELT $ 25)))
        (|error| "can't subtract matrices of different dimensions"))
       ('T
        (SEQ
         (LETT |ans| (SPADCALL |r| |c| (|spadConstant| $ 30) (QREFELT $ 31))
               . #3#)
         (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #3#)
              (LETT #2# (SPADCALL |x| (QREFELT $ 18)) . #3#) G190
              (COND ((> |i| #2#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #3#)
                     (LETT #1# (SPADCALL |x| (QREFELT $ 20)) . #3#) G190
                     (COND ((> |j| #1#) (GO G191)))
                     (SEQ
                      (EXIT
                       (SPADCALL |ans| |i| |j|
                                 (SPADCALL
                                  (SPADCALL |x| |i| |j| (QREFELT $ 22))
                                  (SPADCALL |y| |i| |j| (QREFELT $ 22))
                                  (QREFELT $ 67))
                                 (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #3#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #3#) (GO G190) G191 (EXIT NIL))
         (EXIT |ans|)))))))) 

(DEFUN |MATCAT-;-;2S;25| (|x| $) (SPADCALL (ELT $ 28) |x| (QREFELT $ 70))) 

(DEFUN |MATCAT-;*;I2S;26| (|m| |x| $)
  (PROG ()
    (RETURN
     (SPADCALL (CONS #'|MATCAT-;*;I2S;26!0| (VECTOR $ |m|)) |x|
               (QREFELT $ 70))))) 

(DEFUN |MATCAT-;*;I2S;26!0| (|r1| $$)
  (PROG (|m| $)
    (LETT |m| (QREFELT $$ 1) . #1=(|MATCAT-;*;I2S;26|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |m| |r1| (QREFELT $ 72)))))) 

(DEFUN |MATCAT-;*;R2S;27| (|a| |x| $)
  (PROG ()
    (RETURN
     (SPADCALL (CONS #'|MATCAT-;*;R2S;27!0| (VECTOR $ |a|)) |x|
               (QREFELT $ 70))))) 

(DEFUN |MATCAT-;*;R2S;27!0| (|r1| $$)
  (PROG (|a| $)
    (LETT |a| (QREFELT $$ 1) . #1=(|MATCAT-;*;R2S;27|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |a| |r1| (QREFELT $ 74)))))) 

(DEFUN |MATCAT-;*;SRS;28| (|x| |a| $)
  (PROG ()
    (RETURN
     (SPADCALL (CONS #'|MATCAT-;*;SRS;28!0| (VECTOR $ |a|)) |x|
               (QREFELT $ 70))))) 

(DEFUN |MATCAT-;*;SRS;28!0| (|r1| $$)
  (PROG (|a| $)
    (LETT |a| (QREFELT $$ 1) . #1=(|MATCAT-;*;SRS;28|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |a| (QREFELT $ 74)))))) 

(DEFUN |MATCAT-;*;3S;29| (|x| |y| $)
  (PROG (|entry| |sum| #1=#:G2095 |k| #2=#:G2096 |l| #3=#:G2094 |j| #4=#:G2093
         |i| |ans|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (SPADCALL |y| (QREFELT $ 11))
                  (QREFELT $ 25))
        (|error| "can't multiply matrices of incompatible dimensions"))
       ('T
        (SEQ
         (LETT |ans|
               (SPADCALL (SPADCALL |x| (QREFELT $ 11))
                         (SPADCALL |y| (QREFELT $ 12)) (|spadConstant| $ 30)
                         (QREFELT $ 31))
               . #5=(|MATCAT-;*;3S;29|))
         (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #5#)
              (LETT #4# (SPADCALL |x| (QREFELT $ 18)) . #5#) G190
              (COND ((> |i| #4#) (GO G191)))
              (SEQ
               (EXIT
                (SEQ (LETT |j| (SPADCALL |y| (QREFELT $ 19)) . #5#)
                     (LETT #3# (SPADCALL |y| (QREFELT $ 20)) . #5#) G190
                     (COND ((> |j| #3#) (GO G191)))
                     (SEQ
                      (LETT |entry|
                            (SEQ (LETT |sum| (|spadConstant| $ 30) . #5#)
                                 (SEQ
                                  (LETT |l| (SPADCALL |x| (QREFELT $ 19))
                                        . #5#)
                                  (LETT #2# (SPADCALL |x| (QREFELT $ 20))
                                        . #5#)
                                  (LETT |k| (SPADCALL |y| (QREFELT $ 17))
                                        . #5#)
                                  (LETT #1# (SPADCALL |y| (QREFELT $ 18))
                                        . #5#)
                                  G190
                                  (COND
                                   ((OR (> |k| #1#) (> |l| #2#)) (GO G191)))
                                  (SEQ
                                   (EXIT
                                    (LETT |sum|
                                          (SPADCALL |sum|
                                                    (SPADCALL
                                                     (SPADCALL |x| |i| |l|
                                                               (QREFELT $ 22))
                                                     (SPADCALL |y| |k| |j|
                                                               (QREFELT $ 22))
                                                     (QREFELT $ 74))
                                                    (QREFELT $ 65))
                                          . #5#)))
                                  (LETT |k|
                                        (PROG1 (+ |k| 1)
                                          (LETT |l| (+ |l| 1) . #5#))
                                        . #5#)
                                  (GO G190) G191 (EXIT NIL))
                                 (EXIT |sum|))
                            . #5#)
                      (EXIT (SPADCALL |ans| |i| |j| |entry| (QREFELT $ 33))))
                     (LETT |j| (+ |j| 1) . #5#) (GO G190) G191 (EXIT NIL))))
              (LETT |i| (+ |i| 1) . #5#) (GO G190) G191 (EXIT NIL))
         (EXIT |ans|)))))))) 

(DEFUN |MATCAT-;positivePower;SIS;30| (|x| |n| $)
  (PROG (|y|)
    (RETURN
     (SEQ
      (COND ((EQL |n| 1) |x|)
            ((ODDP |n|)
             (SPADCALL |x| (SPADCALL |x| (- |n| 1) (QREFELT $ 78))
                       (QREFELT $ 79)))
            ('T
             (SEQ
              (LETT |y| (SPADCALL |x| (QUOTIENT2 |n| 2) (QREFELT $ 78))
                    |MATCAT-;positivePower;SIS;30|)
              (EXIT (SPADCALL |y| |y| (QREFELT $ 79)))))))))) 

(DEFUN |MATCAT-;^;SNniS;31| (|x| |n| $)
  (PROG (|nn|)
    (RETURN
     (COND
      ((NULL
        (EQL (LETT |nn| (SPADCALL |x| (QREFELT $ 11)) |MATCAT-;^;SNniS;31|)
             (SPADCALL |x| (QREFELT $ 12))))
       (|error| "^: matrix must be square"))
      ('T
       (COND ((ZEROP |n|) (SPADCALL |nn| (|spadConstant| $ 81) (QREFELT $ 82)))
             ('T (SPADCALL |x| |n| (QREFELT $ 78))))))))) 

(DEFUN |MATCAT-;*;S2Col;32| (|x| |v| $)
  (PROG (|sum| #1=#:G2111 |j| #2=#:G2112 |l| #3=#:G2109 |i| #4=#:G2110 |k| |w|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (SPADCALL |v| (QREFELT $ 42))
                  (QREFELT $ 25))
        (|error| "can't multiply matrix A and vector v if #cols A ~= #v"))
       ('T
        (SEQ
         (LETT |w|
               (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (|spadConstant| $ 30)
                         (QREFELT $ 84))
               . #5=(|MATCAT-;*;S2Col;32|))
         (SEQ (LETT |k| (SPADCALL |w| (QREFELT $ 43)) . #5#)
              (LETT #4# (SPADCALL |w| (QREFELT $ 44)) . #5#)
              (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #5#)
              (LETT #3# (SPADCALL |x| (QREFELT $ 18)) . #5#) G190
              (COND ((OR (> |i| #3#) (> |k| #4#)) (GO G191)))
              (SEQ
               (EXIT
                (SPADCALL |w| |k|
                          (SEQ (LETT |sum| (|spadConstant| $ 30) . #5#)
                               (SEQ
                                (LETT |l| (SPADCALL |v| (QREFELT $ 43)) . #5#)
                                (LETT #2# (SPADCALL |v| (QREFELT $ 44)) . #5#)
                                (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #5#)
                                (LETT #1# (SPADCALL |x| (QREFELT $ 20)) . #5#)
                                G190
                                (COND ((OR (> |j| #1#) (> |l| #2#)) (GO G191)))
                                (SEQ
                                 (EXIT
                                  (LETT |sum|
                                        (SPADCALL |sum|
                                                  (SPADCALL
                                                   (SPADCALL |x| |i| |j|
                                                             (QREFELT $ 22))
                                                   (SPADCALL |v| |l|
                                                             (QREFELT $ 85))
                                                   (QREFELT $ 74))
                                                  (QREFELT $ 65))
                                        . #5#)))
                                (LETT |j|
                                      (PROG1 (+ |j| 1)
                                        (LETT |l| (+ |l| 1) . #5#))
                                      . #5#)
                                (GO G190) G191 (EXIT NIL))
                               (EXIT |sum|))
                          (QREFELT $ 86))))
              (LETT |i| (PROG1 (+ |i| 1) (LETT |k| (+ |k| 1) . #5#)) . #5#)
              (GO G190) G191 (EXIT NIL))
         (EXIT |w|)))))))) 

(DEFUN |MATCAT-;*;RowSRow;33| (|v| |x| $)
  (PROG (|sum| #1=#:G2121 |i| #2=#:G2122 |l| #3=#:G2119 |j| #4=#:G2120 |k| |w|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL (SPADCALL |x| (QREFELT $ 11)) (SPADCALL |v| (QREFELT $ 47))
                  (QREFELT $ 25))
        (|error| "can't multiply vector v and matrix A if #rows A ~= #v"))
       ('T
        (SEQ
         (LETT |w|
               (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (|spadConstant| $ 30)
                         (QREFELT $ 88))
               . #5=(|MATCAT-;*;RowSRow;33|))
         (SEQ (LETT |k| (SPADCALL |w| (QREFELT $ 48)) . #5#)
              (LETT #4# (SPADCALL |w| (QREFELT $ 49)) . #5#)
              (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #5#)
              (LETT #3# (SPADCALL |x| (QREFELT $ 20)) . #5#) G190
              (COND ((OR (> |j| #3#) (> |k| #4#)) (GO G191)))
              (SEQ
               (EXIT
                (SPADCALL |w| |k|
                          (SEQ (LETT |sum| (|spadConstant| $ 30) . #5#)
                               (SEQ
                                (LETT |l| (SPADCALL |v| (QREFELT $ 48)) . #5#)
                                (LETT #2# (SPADCALL |v| (QREFELT $ 49)) . #5#)
                                (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #5#)
                                (LETT #1# (SPADCALL |x| (QREFELT $ 18)) . #5#)
                                G190
                                (COND ((OR (> |i| #1#) (> |l| #2#)) (GO G191)))
                                (SEQ
                                 (EXIT
                                  (LETT |sum|
                                        (SPADCALL |sum|
                                                  (SPADCALL
                                                   (SPADCALL |x| |i| |j|
                                                             (QREFELT $ 22))
                                                   (SPADCALL |v| |l|
                                                             (QREFELT $ 89))
                                                   (QREFELT $ 74))
                                                  (QREFELT $ 65))
                                        . #5#)))
                                (LETT |i|
                                      (PROG1 (+ |i| 1)
                                        (LETT |l| (+ |l| 1) . #5#))
                                      . #5#)
                                (GO G190) G191 (EXIT NIL))
                               (EXIT |sum|))
                          (QREFELT $ 90))))
              (LETT |j| (PROG1 (+ |j| 1) (LETT |k| (+ |k| 1) . #5#)) . #5#)
              (GO G190) G191 (EXIT NIL))
         (EXIT |w|)))))))) 

(DEFUN |MATCAT-;columnSpace;SL;34| (M $)
  (PROG (|indRow| |basis| |k| |m| |n| M2)
    (RETURN
     (SEQ
      (LETT M2 (SPADCALL M (QREFELT $ 92)) . #1=(|MATCAT-;columnSpace;SL;34|))
      (LETT |basis| NIL . #1#) (LETT |n| (SPADCALL M (QREFELT $ 12)) . #1#)
      (LETT |m| (SPADCALL M (QREFELT $ 11)) . #1#) (LETT |indRow| 1 . #1#)
      (SEQ (LETT |k| 1 . #1#) G190
           (COND
            ((OR (QSGREATERP |k| |n|)
                 (NULL (SPADCALL |indRow| |m| (QREFELT $ 93))))
             (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((NULL
                (SPADCALL (SPADCALL M2 |indRow| |k| (QREFELT $ 94))
                          (QREFELT $ 23)))
               (SEQ
                (LETT |basis| (CONS (SPADCALL M |k| (QREFELT $ 95)) |basis|)
                      . #1#)
                (EXIT (LETT |indRow| (+ |indRow| 1) . #1#)))))))
           (LETT |k| (QSADD1 |k|) . #1#) (GO G190) G191 (EXIT NIL))
      (EXIT (NREVERSE |basis|)))))) 

(DEFUN |MATCAT-;B0| (|n| $)
  (PROG (|j| #1=#:G2138 |i| #2=#:G2137)
    (RETURN
     (SEQ
      (SPADCALL
       (PROGN
        (LETT #2# NIL . #3=(|MATCAT-;B0|))
        (SEQ (LETT |i| 1 . #3#) G190 (COND ((QSGREATERP |i| |n|) (GO G191)))
             (SEQ
              (EXIT
               (LETT #2#
                     (CONS
                      (PROGN
                       (LETT #1# NIL . #3#)
                       (SEQ (LETT |j| 1 . #3#) G190
                            (COND ((QSGREATERP |j| |n|) (GO G191)))
                            (SEQ
                             (EXIT
                              (LETT #1#
                                    (CONS
                                     (COND
                                      ((EQL |i| (+ |j| 1))
                                       (COND
                                        ((ODDP |j|)
                                         (SPADCALL (|spadConstant| $ 81)
                                                   (QREFELT $ 28)))
                                        ((EQL |i| (- |j| 1))
                                         (COND
                                          ((ODDP |i|) (|spadConstant| $ 81))
                                          ('T (|spadConstant| $ 30))))
                                        ('T (|spadConstant| $ 30))))
                                      ((EQL |i| (- |j| 1))
                                       (COND ((ODDP |i|) (|spadConstant| $ 81))
                                             ('T (|spadConstant| $ 30))))
                                      ('T (|spadConstant| $ 30)))
                                     #1#)
                                    . #3#)))
                            (LETT |j| (QSADD1 |j|) . #3#) (GO G190) G191
                            (EXIT (NREVERSE #1#))))
                      #2#)
                     . #3#)))
             (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
             (EXIT (NREVERSE #2#))))
       (QREFELT $ 98)))))) 

(DEFUN |MATCAT-;PfChar| (A $)
  (PROG (|res| #1=#:G2159 |e| #2=#:G2160 |k| |c| |i| #3=#:G2158 |j| |g| C B
         #4=#:G2140 |d| |p| |s| |r| M |n|)
    (RETURN
     (SEQ (LETT |n| (SPADCALL A (QREFELT $ 11)) . #5=(|MATCAT-;PfChar|))
          (EXIT
           (COND
            ((EQL |n| 2)
             (SPADCALL (SPADCALL (|spadConstant| $ 81) 2 (QREFELT $ 100))
                       (SPADCALL (SPADCALL A 1 2 (QREFELT $ 22))
                                 (QREFELT $ 102))
                       (QREFELT $ 103)))
            ('T
             (SEQ (LETT M (SPADCALL A 3 |n| 3 |n| (QREFELT $ 104)) . #5#)
                  (LETT |r| (SPADCALL A 1 1 3 |n| (QREFELT $ 104)) . #5#)
                  (LETT |s| (SPADCALL A 3 |n| 2 2 (QREFELT $ 104)) . #5#)
                  (LETT |p| (|MATCAT-;PfChar| M $) . #5#)
                  (LETT |d| (SPADCALL |p| (QREFELT $ 105)) . #5#)
                  (LETT B
                        (|MATCAT-;B0|
                         (PROG1 (LETT #4# (- |n| 2) . #5#)
                           (|check-subtype| (> #4# 0) '(|PositiveInteger|)
                                            #4#))
                         $)
                        . #5#)
                  (LETT C (SPADCALL |r| B (QREFELT $ 79)) . #5#)
                  (LETT |g|
                        (LIST
                         (SPADCALL (SPADCALL C |s| (QREFELT $ 79)) 1 1
                                   (QREFELT $ 22))
                         (SPADCALL A 1 2 (QREFELT $ 22)) (|spadConstant| $ 81))
                        . #5#)
                  (COND
                   ((>= |d| 4)
                    (SEQ (LETT B (SPADCALL M B (QREFELT $ 79)) . #5#)
                         (EXIT
                          (SEQ (LETT |i| 4 . #5#) G190
                               (COND ((> |i| |d|) (GO G191)))
                               (SEQ
                                (LETT C (SPADCALL C B (QREFELT $ 79)) . #5#)
                                (EXIT
                                 (LETT |g|
                                       (CONS
                                        (SPADCALL
                                         (SPADCALL C |s| (QREFELT $ 79)) 1 1
                                         (QREFELT $ 22))
                                        |g|)
                                       . #5#)))
                               (LETT |i| (+ |i| 2) . #5#) (GO G190) G191
                               (EXIT NIL))))))
                  (LETT |g| (NREVERSE |g|) . #5#)
                  (LETT |res| (|spadConstant| $ 106) . #5#)
                  (SEQ (LETT |j| 2 . #5#) (LETT #3# (+ |d| 2) . #5#)
                       (LETT |i| 0 . #5#) G190
                       (COND ((OR (> |i| |d|) (QSGREATERP |j| #3#)) (GO G191)))
                       (SEQ (LETT |c| (SPADCALL |p| |i| (QREFELT $ 107)) . #5#)
                            (EXIT
                             (SEQ (LETT |k| 2 . #5#) (LETT #2# (- |d|) . #5#)
                                  (LETT |e| NIL . #5#)
                                  (LETT #1# (SPADCALL |g| |j| (QREFELT $ 108))
                                        . #5#)
                                  G190
                                  (COND
                                   ((OR (ATOM #1#)
                                        (PROGN (LETT |e| (CAR #1#) . #5#) NIL)
                                        (< |k| #2#))
                                    (GO G191)))
                                  (SEQ
                                   (EXIT
                                    (LETT |res|
                                          (SPADCALL |res|
                                                    (SPADCALL
                                                     (SPADCALL |c| |e|
                                                               (QREFELT $ 74))
                                                     (+ |k| |i|)
                                                     (QREFELT $ 100))
                                                    (QREFELT $ 103))
                                          . #5#)))
                                  (LETT #1#
                                        (PROG1 (CDR #1#)
                                          (LETT |k| (+ |k| -2) . #5#))
                                        . #5#)
                                  (GO G190) G191 (EXIT NIL))))
                       (LETT |i|
                             (PROG1 (+ |i| 2) (LETT |j| (QSADD1 |j|) . #5#))
                             . #5#)
                       (GO G190) G191 (EXIT NIL))
                  (EXIT |res|))))))))) 

(DEFUN |MATCAT-;Pfaffian;SR;37| (A $)
  (COND
   ((SPADCALL A (QREFELT $ 109))
    (COND ((ODDP (SPADCALL A (QREFELT $ 11))) (|spadConstant| $ 30))
          (#1='T
           (SPADCALL (|MATCAT-;PfChar| A $) (|spadConstant| $ 30)
                     (QREFELT $ 110)))))
   (#1# (|error| "Pfaffian: only defined for antisymmetric square matrices!")))) 

(DEFUN |MATCAT-;exquo;SRU;38| (|x| |a| $)
  (PROG (|entry| #1=#:G2178 |r| #2=#:G2180 |j| #3=#:G2179 |i| |ans|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |ans|
              (SPADCALL (SPADCALL |x| (QREFELT $ 11))
                        (SPADCALL |x| (QREFELT $ 12)) (|spadConstant| $ 30)
                        (QREFELT $ 31))
              . #4=(|MATCAT-;exquo;SRU;38|))
        (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 17)) . #4#)
             (LETT #3# (SPADCALL |x| (QREFELT $ 18)) . #4#) G190
             (COND ((> |i| #3#) (GO G191)))
             (SEQ
              (EXIT
               (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 19)) . #4#)
                    (LETT #2# (SPADCALL |x| (QREFELT $ 20)) . #4#) G190
                    (COND ((> |j| #2#) (GO G191)))
                    (SEQ
                     (LETT |entry|
                           (SEQ
                            (LETT |r|
                                  (SPADCALL
                                   (SPADCALL |x| |i| |j| (QREFELT $ 22)) |a|
                                   (QREFELT $ 113))
                                  . #4#)
                            (EXIT
                             (COND
                              ((QEQCAR |r| 1)
                               (PROGN
                                (LETT #1# (CONS 1 "failed") . #4#)
                                (GO #1#)))
                              ('T (QCDR |r|)))))
                           . #4#)
                     (EXIT (SPADCALL |ans| |i| |j| |entry| (QREFELT $ 33))))
                    (LETT |j| (+ |j| 1) . #4#) (GO G190) G191 (EXIT NIL))))
             (LETT |i| (+ |i| 1) . #4#) (GO G190) G191 (EXIT NIL))
        (EXIT (CONS 0 |ans|))))
      #1# (EXIT #1#))))) 

(DEFUN |MATCAT-;/;SRS;39| (|x| |r| $)
  (PROG ()
    (RETURN
     (SPADCALL (CONS #'|MATCAT-;/;SRS;39!0| (VECTOR $ |r|)) |x|
               (QREFELT $ 70))))) 

(DEFUN |MATCAT-;/;SRS;39!0| (|r1| $$)
  (PROG (|r| $)
    (LETT |r| (QREFELT $$ 1) . #1=(|MATCAT-;/;SRS;39|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |r1| |r| (QREFELT $ 115)))))) 

(DEFUN |MATCAT-;^;SIS;40| (|x| |n| $)
  (PROG (|xInv| |nn|)
    (RETURN
     (SEQ
      (COND
       ((NULL
         (EQL
          (LETT |nn| (SPADCALL |x| (QREFELT $ 11)) . #1=(|MATCAT-;^;SIS;40|))
          (SPADCALL |x| (QREFELT $ 12))))
        (|error| "^: matrix must be square"))
       ('T
        (COND
         ((ZEROP |n|) (SPADCALL |nn| (|spadConstant| $ 81) (QREFELT $ 82)))
         ((SPADCALL |n| (QREFELT $ 117)) (SPADCALL |x| |n| (QREFELT $ 78)))
         (#2='T
          (SEQ (LETT |xInv| (SPADCALL |x| (QREFELT $ 118)) . #1#)
               (EXIT
                (COND
                 ((QEQCAR |xInv| 1) (|error| "^: matrix must be invertible"))
                 (#2#
                  (SPADCALL (QCDR |xInv|) (- |n|) (QREFELT $ 78)))))))))))))) 

(DEFUN |MatrixCategory&| (|#1| |#2| |#3| |#4|)
  (PROG (|pv$| $ |dv$| DV$4 DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|MatrixCategory&|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT DV$4 (|devaluate| |#4|) . #1#)
      (LETT |dv$| (LIST '|MatrixCategory&| DV$1 DV$2 DV$3 DV$4) . #1#)
      (LETT $ (GETREFV 121) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#2|
                                                         '(|CommutativeRing|))
                                          (|HasCategory| |#2|
                                                         '(|EuclideanDomain|))
                                          (|HasCategory| |#2| '(|Field|))
                                          (|HasCategory| |#2|
                                                         '(|IntegralDomain|))
                                          (|HasCategory| |#2| '(|Monoid|))
                                          (|HasCategory| |#2|
                                                         '(|AbelianGroup|))))
                      . #1#))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (QSETREFV $ 9 |#4|)
      (SETF |pv$| (QREFELT $ 3))
      (COND
       ((|testBitVector| |pv$| 6)
        (QSETREFV $ 29
                  (CONS (|dispatchFunction| |MATCAT-;antisymmetric?;SB;4|)
                        $))))
      (COND
       ((|testBitVector| |pv$| 6)
        (PROGN
         (QSETREFV $ 68 (CONS (|dispatchFunction| |MATCAT-;-;3S;24|) $))
         (QSETREFV $ 71 (CONS (|dispatchFunction| |MATCAT-;-;2S;25|) $))
         (QSETREFV $ 73 (CONS (|dispatchFunction| |MATCAT-;*;I2S;26|) $)))))
      (COND
       ((|testBitVector| |pv$| 5)
        (QSETREFV $ 83 (CONS (|dispatchFunction| |MATCAT-;^;SNniS;31|) $))))
      (COND
       ((|HasCategory| |#4| '(|shallowlyMutable|))
        (QSETREFV $ 87 (CONS (|dispatchFunction| |MATCAT-;*;S2Col;32|) $))))
      (COND
       ((|HasCategory| |#3| '(|shallowlyMutable|))
        (QSETREFV $ 91 (CONS (|dispatchFunction| |MATCAT-;*;RowSRow;33|) $))))
      (COND
       ((|testBitVector| |pv$| 2)
        (QSETREFV $ 97
                  (CONS (|dispatchFunction| |MATCAT-;columnSpace;SL;34|) $))))
      (COND
       ((|testBitVector| |pv$| 1)
        (PROGN
         (QSETREFV $ 111
                   (CONS (|dispatchFunction| |MATCAT-;Pfaffian;SR;37|) $)))))
      (COND
       ((|testBitVector| |pv$| 4)
        (QSETREFV $ 114 (CONS (|dispatchFunction| |MATCAT-;exquo;SRU;38|) $))))
      (COND
       ((|testBitVector| |pv$| 3)
        (PROGN
         (QSETREFV $ 116 (CONS (|dispatchFunction| |MATCAT-;/;SRS;39|) $))
         (QSETREFV $ 119 (CONS (|dispatchFunction| |MATCAT-;^;SIS;40|) $)))))
      $)))) 

(MAKEPROP '|MatrixCategory&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|local| |#4|) (|NonNegativeInteger|)
              (0 . |nrows|) (5 . |ncols|) (|Boolean|) |MATCAT-;square?;SB;1|
              (10 . |square?|) (|Integer|) (15 . |minRowIndex|)
              (20 . |maxRowIndex|) (25 . |minColIndex|) (30 . |maxColIndex|)
              (35 . ~=) (41 . |qelt|) (48 . |zero?|) |MATCAT-;diagonal?;SB;2|
              (53 . ~=) (59 . ~=) |MATCAT-;symmetric?;SB;3| (65 . -)
              (70 . |antisymmetric?|) (75 . |Zero|) (79 . |new|)
              |MATCAT-;zero;2NniS;5| (86 . |qsetelt!|) (|List| 38)
              |MATCAT-;matrix;LS;6| (94 . |zero|)
              |MATCAT-;scalarMatrix;NniRS;7| (|List| 7)
              |MATCAT-;diagonalMatrix;LS;8| (|List| $)
              |MATCAT-;diagonalMatrix;LS;9| (100 . |#|) (105 . |minIndex|)
              (110 . |maxIndex|) (115 . |qelt|) |MATCAT-;coerce;ColS;10|
              (121 . |#|) (126 . |minIndex|) (131 . |maxIndex|) (136 . |qelt|)
              |MATCAT-;transpose;RowS;11| |MATCAT-;transpose;2S;12|
              |MATCAT-;squareTop;2S;13| |MATCAT-;horizConcat;3S;14|
              |MATCAT-;vertConcat;3S;15| |MATCAT-;listOfLists;SL;16| (142 . >)
              |MATCAT-;swapRows!;S2IS;17| |MATCAT-;swapColumns!;S2IS;18|
              (|List| 16) |MATCAT-;elt;S2LS;19| |MATCAT-;setelt;S2L2S;20|
              |MATCAT-;subMatrix;S4IS;21| |MATCAT-;setsubMatrix!;S2I2S;22|
              (148 . +) |MATCAT-;+;3S;23| (154 . -) (160 . -) (|Mapping| 7 7)
              (166 . |map|) (172 . -) (177 . *) (183 . *) (189 . *)
              |MATCAT-;*;R2S;27| |MATCAT-;*;SRS;28| |MATCAT-;*;3S;29|
              (195 . |positivePower|) (201 . *) |MATCAT-;positivePower;SIS;30|
              (207 . |One|) (211 . |scalarMatrix|) (217 . ^) (223 . |new|)
              (229 . |elt|) (235 . |setelt|) (242 . *) (248 . |new|)
              (254 . |elt|) (260 . |setelt|) (267 . *) (273 . |rowEchelon|)
              (278 . <=) (284 . |elt|) (291 . |column|) (|List| 9)
              (297 . |columnSpace|) (302 . |matrix|)
              (|SparseUnivariatePolynomial| 7) (307 . |monomial|) (313 . |One|)
              (317 . |coerce|) (322 . +) (328 . |subMatrix|) (337 . |degree|)
              (342 . |Zero|) (346 . |coefficient|) (352 . |first|)
              (358 . |antisymmetric?|) (363 . |elt|) (369 . |Pfaffian|)
              (|Union| $ '"failed") (374 . |exquo|) (380 . |exquo|) (386 . /)
              (392 . /) (398 . |positive?|) (403 . |inverse|) (408 . ^)
              (|OutputForm|))
           '#(|zero| 414 |vertConcat| 420 |transpose| 426 |symmetric?| 436
              |swapRows!| 441 |swapColumns!| 448 |subMatrix| 455 |squareTop|
              464 |square?| 469 |setsubMatrix!| 474 |setelt| 482 |scalarMatrix|
              490 |positivePower| 496 |matrix| 502 |listOfLists| 507
              |horizConcat| 512 |exquo| 518 |elt| 524 |diagonalMatrix| 531
              |diagonal?| 541 |columnSpace| 546 |coerce| 551 |antisymmetric?|
              556 ^ 561 |Pfaffian| 573 / 578 - 584 + 595 * 601)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 119
                                                 '(1 6 10 0 11 1 6 10 0 12 1 6
                                                   13 0 15 1 6 16 0 17 1 6 16 0
                                                   18 1 6 16 0 19 1 6 16 0 20 2
                                                   16 13 0 0 21 3 6 7 0 16 16
                                                   22 1 7 13 0 23 2 10 13 0 0
                                                   25 2 7 13 0 0 26 1 7 0 0 28
                                                   1 0 13 0 29 0 7 0 30 3 6 0
                                                   10 10 7 31 4 6 7 0 16 16 7
                                                   33 2 6 0 10 10 36 1 9 10 0
                                                   42 1 9 16 0 43 1 9 16 0 44 2
                                                   9 7 0 16 45 1 8 10 0 47 1 8
                                                   16 0 48 1 8 16 0 49 2 8 7 0
                                                   16 50 2 16 13 0 0 57 2 7 0 0
                                                   0 65 2 7 0 0 0 67 2 0 0 0 0
                                                   68 2 6 0 69 0 70 1 0 0 0 71
                                                   2 7 0 16 0 72 2 0 0 16 0 73
                                                   2 7 0 0 0 74 2 6 0 0 16 78 2
                                                   6 0 0 0 79 0 7 0 81 2 6 0 10
                                                   7 82 2 0 0 0 10 83 2 9 0 10
                                                   7 84 2 9 7 0 16 85 3 9 7 0
                                                   16 7 86 2 0 9 0 9 87 2 8 0
                                                   10 7 88 2 8 7 0 16 89 3 8 7
                                                   0 16 7 90 2 0 8 8 0 91 1 6 0
                                                   0 92 2 16 13 0 0 93 3 6 7 0
                                                   16 16 94 2 6 9 0 16 95 1 0
                                                   96 0 97 1 6 0 34 98 2 99 0 7
                                                   10 100 0 99 0 101 1 99 0 7
                                                   102 2 99 0 0 0 103 5 6 0 0
                                                   16 16 16 16 104 1 99 10 0
                                                   105 0 99 0 106 2 99 7 0 10
                                                   107 2 38 0 0 10 108 1 6 13 0
                                                   109 2 99 7 0 7 110 1 0 7 0
                                                   111 2 7 112 0 0 113 2 0 112
                                                   0 7 114 2 7 0 0 0 115 2 0 0
                                                   0 7 116 1 16 13 0 117 1 6
                                                   112 0 118 2 0 0 0 16 119 2 0
                                                   0 10 10 32 2 0 0 0 0 55 1 0
                                                   0 8 51 1 0 0 0 52 1 0 13 0
                                                   27 3 0 0 0 16 16 58 3 0 0 0
                                                   16 16 59 5 0 0 0 16 16 16 16
                                                   63 1 0 0 0 53 1 0 13 0 14 4
                                                   0 0 0 16 16 0 64 4 0 0 0 60
                                                   60 0 62 2 0 0 10 7 37 2 0 0
                                                   0 16 80 1 0 0 34 35 1 0 34 0
                                                   56 2 0 0 0 0 54 2 0 112 0 7
                                                   114 3 0 0 0 60 60 61 1 0 0
                                                   38 39 1 0 0 40 41 1 0 13 0
                                                   24 1 0 96 0 97 1 0 0 9 46 1
                                                   0 13 0 29 2 0 0 0 16 119 2 0
                                                   0 0 10 83 1 0 7 0 111 2 0 0
                                                   0 7 116 2 0 0 0 0 68 1 0 0 0
                                                   71 2 0 0 0 0 66 2 0 8 8 0 91
                                                   2 0 0 0 7 76 2 0 9 0 9 87 2
                                                   0 0 0 0 77 2 0 0 7 0 75 2 0
                                                   0 16 0 73)))))
           '|lookupComplete|)) 
