
(/VERSIONCHECK 2) 

(DEFUN |MHROWRED;nonzero?| (|v| $)
  (SPADCALL (CONS #'|MHROWRED;nonzero?!0| $) |v| (QREFELT $ 14))) 

(DEFUN |MHROWRED;nonzero?!0| (|s| $)
  (COND
   ((SPADCALL |s| (|spadConstant| $ 7) (QREFELT $ 9)) (|spadConstant| $ 10))
   ('T (|spadConstant| $ 11)))) 

(DEFUN |MHROWRED;non0| (|v| |rown| $)
  (PROG (#1=#:G1827 |ans| |allZero| #2=#:G1828 |i|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |allZero| 'T . #3=(|MHROWRED;non0|))
            (SEQ (LETT |i| (SPADCALL |v| (QREFELT $ 16)) . #3#)
                 (LETT #2# (QVSIZE |v|) . #3#) G190
                 (COND ((> |i| #2#) (GO G191)))
                 (SEQ
                  (EXIT
                   (COND
                    ((NULL
                      (SPADCALL (QAREF1O |v| |i| 1) (|spadConstant| $ 7)
                                (QREFELT $ 9)))
                     (COND
                      (|allZero|
                       (SEQ (LETT |allZero| 'NIL . #3#)
                            (EXIT
                             (LETT |ans|
                                   (VECTOR (QAREF1O |v| |i| 1) |i| |rown|)
                                   . #3#))))
                      ('T
                       (PROGN
                        (LETT #1# (CONS 1 "failed") . #3#)
                        (GO #1#))))))))
                 (LETT |i| (+ |i| 1) . #3#) (GO G190) G191 (EXIT NIL))
            (EXIT (COND (|allZero| (CONS 1 "failed")) ('T (CONS 0 |ans|))))))
      #1# (EXIT #1#))))) 

(DEFUN |MHROWRED;mkMat| (|x| |l| $)
  (PROG (|ll| #1=#:G1855 |i| #2=#:G1854)
    (RETURN
     (SEQ
      (COND
       ((NULL
         (LETT |ll|
               (PROGN
                (LETT #2# NIL . #3=(|MHROWRED;mkMat|))
                (SEQ (LETT |i| 1 . #3#)
                     (LETT #1# (SPADCALL |x| (QREFELT $ 18)) . #3#) G190
                     (COND ((QSGREATERP |i| #1#) (GO G191)))
                     (SEQ
                      (EXIT
                       (COND
                        ((COND ((SPADCALL |i| |l| (QREFELT $ 20)) 'NIL)
                               (#4='T
                                (|MHROWRED;nonzero?|
                                 (SPADCALL |x| |i| (QREFELT $ 21)) $)))
                         (LETT #2#
                               (CONS
                                (SPADCALL (SPADCALL |x| |i| (QREFELT $ 21))
                                          (QREFELT $ 23))
                                #2#)
                               . #3#)))))
                     (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
                     (EXIT (NREVERSE0 #2#))))
               . #3#))
        (SPADCALL 1 (SPADCALL |x| (QREFELT $ 26)) (QREFELT $ 27)))
       (#4# (SPADCALL |ll| (QREFELT $ 29)))))))) 

(DEFUN |MHROWRED;diagSubMatrix| (|x| $)
  (PROG (#1=#:G1901 #2=#:G1903 #3=#:G1914 |r| #4=#:G1913 #5=#:G1912 |z|
         #6=#:G1911 #7=#:G1910 #8=#:G1909 #9=#:G1906 #10=#:G1908 #11=#:G1907
         |a| |l| #12=#:G1862 |u| #13=#:G1905 |i| #14=#:G1904)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |l|
              (PROGN
               (LETT #14# NIL . #15=(|MHROWRED;diagSubMatrix|))
               (SEQ (LETT |i| 1 . #15#)
                    (LETT #13# (SPADCALL |x| (QREFELT $ 18)) . #15#) G190
                    (COND ((QSGREATERP |i| #13#) #16=(GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((QEQCAR
                         (LETT |u|
                               (|MHROWRED;non0|
                                (SPADCALL |x| |i| (QREFELT $ 21)) |i| $)
                               . #15#)
                         0)
                        (LETT #14#
                              (CONS
                               (PROG2
                                   (LETT #12# |u| . #15#)
                                   (QCDR #12#)
                                 (|check-union| (QEQCAR #12# 0)
                                                (|Record|
                                                 (|:| |val| (QREFELT $ 6))
                                                 (|:| |cl| (|Integer|))
                                                 (|:| |rw| (|Integer|)))
                                                #12#))
                               #14#)
                              . #15#)))))
                    (LETT |i| (QSADD1 |i|) . #15#) #17=(GO G190) G191
                    (EXIT (NREVERSE0 #14#))))
              . #15#)
        (SEQ
         (EXIT
          (SEQ (LETT |a| NIL . #15#)
               (LETT #9#
                     (SPADCALL
                      (PROGN
                       (LETT #11# NIL . #15#)
                       (SEQ (LETT |r| NIL . #15#) (LETT #10# |l| . #15#) G190
                            (COND
                             ((OR (ATOM #10#)
                                  (PROGN (LETT |r| (CAR #10#) . #15#) NIL))
                              #16#))
                            (SEQ
                             (EXIT
                              (LETT #11# (CONS (QVELT |r| 0) #11#) . #15#)))
                            (LETT #10# (CDR #10#) . #15#) #17# G191
                            (EXIT (NREVERSE0 #11#))))
                      (QREFELT $ 30))
                     . #15#)
               G190
               (COND
                ((OR (ATOM #9#) (PROGN (LETT |a| (CAR #9#) . #15#) NIL)) #16#))
               (SEQ
                (EXIT
                 (COND
                  ((SPADCALL
                    (SPADCALL
                     (PROGN
                      (LETT #8# NIL . #15#)
                      (SEQ (LETT |r| NIL . #15#) (LETT #7# |l| . #15#) G190
                           (COND
                            ((OR (ATOM #7#)
                                 (PROGN (LETT |r| (CAR #7#) . #15#) NIL))
                             #16#))
                           (SEQ
                            (EXIT
                             (COND
                              ((SPADCALL (QVELT |r| 0) |a| (QREFELT $ 9))
                               (LETT #8# (CONS (QVELT |r| 1) #8#) . #15#)))))
                           (LETT #7# (CDR #7#) . #15#) #17# G191
                           (EXIT (NREVERSE0 #8#))))
                     (QREFELT $ 33))
                    (SPADCALL
                     (PROGN
                      (LETT #6# NIL . #15#)
                      (SEQ (LETT |z| 1 . #15#)
                           (LETT #5# (SPADCALL |x| (QREFELT $ 34)) . #15#) G190
                           (COND ((QSGREATERP |z| #5#) #16#))
                           (SEQ (EXIT (LETT #6# (CONS |z| #6#) . #15#)))
                           (LETT |z| (QSADD1 |z|) . #15#) #17# G191
                           (EXIT (NREVERSE0 #6#))))
                     (QREFELT $ 33))
                    (QREFELT $ 35))
                   (PROGN
                    (LETT #1#
                          (PROGN
                           (LETT #2#
                                 (CONS 0
                                       (CONS |a|
                                             (|MHROWRED;mkMat| |x|
                                              (PROGN
                                               (LETT #4# NIL . #15#)
                                               (SEQ (LETT |r| NIL . #15#)
                                                    (LETT #3# |l| . #15#) G190
                                                    (COND
                                                     ((OR (ATOM #3#)
                                                          (PROGN
                                                           (LETT |r| (CAR #3#)
                                                                 . #15#)
                                                           NIL))
                                                      #16#))
                                                    (SEQ
                                                     (EXIT
                                                      (COND
                                                       ((SPADCALL |a|
                                                                  (QVELT |r| 0)
                                                                  (QREFELT $
                                                                           9))
                                                        (LETT #4#
                                                              (CONS
                                                               (QVELT |r| 2)
                                                               #4#)
                                                              . #15#)))))
                                                    (LETT #3# (CDR #3#) . #15#)
                                                    #17# G191
                                                    (EXIT (NREVERSE0 #4#))))
                                              $)))
                                 . #15#)
                           (GO #2#))
                          . #15#)
                    (GO #1#))))))
               (LETT #9# (CDR #9#) . #15#) #17# G191 (EXIT NIL)))
         #1# (EXIT #1#))
        (EXIT (CONS 1 "failed"))))
      #2# (EXIT #2#))))) 

(DEFUN |MHROWRED;determinantOfMinor| (|x| $)
  (PROG (#1=#:G1920 #2=#:G1922 |j| |d| #3=#:G1927 |n| |i| |lr| #4=#:G1926
         #5=#:G1925 |lc| #6=#:G1924 #7=#:G1923 #8=#:G1921 |nr| |nc|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (EXIT
         (SEQ
          (SEQ
           (LETT |nc| (SPADCALL |x| (QREFELT $ 26))
                 . #9=(|MHROWRED;determinantOfMinor|))
           (LETT |nr| (QVSIZE |x|) . #9#)
           (EXIT
            (COND
             ((NULL (< |nc| |nr|))
              (PROGN (LETT #8# (|spadConstant| $ 7) . #9#) (GO #8#))))))
          (LETT |lc|
                (PROGN
                 (LETT #7# NIL . #9#)
                 (SEQ (LETT |i| 1 . #9#)
                      (LETT #6# (SPADCALL |x| (QREFELT $ 34)) . #9#) G190
                      (COND ((QSGREATERP |i| #6#) #10=(GO G191)))
                      (SEQ (EXIT (LETT #7# (CONS |i| #7#) . #9#)))
                      (LETT |i| (QSADD1 |i|) . #9#) #11=(GO G190) G191
                      (EXIT (NREVERSE0 #7#))))
                . #9#)
          (LETT |lr|
                (PROGN
                 (LETT #5# NIL . #9#)
                 (SEQ (LETT |i| 1 . #9#)
                      (LETT #4# (SPADCALL |x| (QREFELT $ 18)) . #9#) G190
                      (COND ((QSGREATERP |i| #4#) #10#))
                      (SEQ (EXIT (LETT #5# (CONS |i| #5#) . #9#)))
                      (LETT |i| (QSADD1 |i|) . #9#) #11# G191
                      (EXIT (NREVERSE0 #5#))))
                . #9#)
          (SEQ
           (EXIT
            (SEQ (LETT |i| 1 . #9#)
                 (LETT #3# (LETT |n| (SPADCALL |nr| |nc| (QREFELT $ 36)) . #9#)
                       . #9#)
                 G190 (COND ((QSGREATERP |i| #3#) #10#))
                 (SEQ
                  (LETT |d|
                        (SPADCALL
                         (SPADCALL |x|
                                   (|MHROWRED;enumerateBinomial| |lr| |nc| |i|
                                    $)
                                   |lc| (QREFELT $ 37))
                         (QREFELT $ 38))
                        . #9#)
                  (EXIT
                   (COND
                    ((NULL (SPADCALL |d| (|spadConstant| $ 7) (QREFELT $ 9)))
                     (PROGN
                      (LETT #1#
                            (SEQ
                             (LETT |j| (+ (+ |i| 1) (RANDOM (- |n| |i|)))
                                   . #9#)
                             (EXIT
                              (PROGN
                               (LETT #2#
                                     (SPADCALL |d|
                                               (SPADCALL
                                                (SPADCALL |x|
                                                          (|MHROWRED;enumerateBinomial|
                                                           |lr| |nc| |j| $)
                                                          |lc| (QREFELT $ 37))
                                                (QREFELT $ 38))
                                               (QREFELT $ 39))
                                     . #9#)
                               (GO #2#))))
                            . #9#)
                      (GO #1#))))))
                 (LETT |i| (QSADD1 |i|) . #9#) #11# G191 (EXIT NIL)))
           #1# (EXIT #1#))
          (EXIT (|spadConstant| $ 7))))
        #8# (EXIT #8#)))
      #2# (EXIT #2#))))) 

(DEFUN |MHROWRED;enumerateBinomial| (|l| |m| |i| $)
  (PROG (#1=#:G1937 #2=#:G1941 |b| #3=#:G1942 |n| |j| |m1|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |m1| (- (SPADCALL |l| (QREFELT $ 40)) 1)
              . #4=(|MHROWRED;enumerateBinomial|))
        (EXIT
         (COND
          ((ZEROP (LETT |m| (- |m| 1) . #4#))
           (LIST (SPADCALL |l| (+ |m1| |i|) (QREFELT $ 41))))
          ('T
           (SEQ
            (SEQ (LETT |j| 1 . #4#)
                 (LETT #3# (LETT |n| (LENGTH |l|) . #4#) . #4#) G190
                 (COND ((QSGREATERP |j| #3#) (GO G191)))
                 (SEQ
                  (EXIT
                   (SEQ
                    (SEQ
                     (LETT |b| (SPADCALL (- |n| |j|) |m| (QREFELT $ 36)) . #4#)
                     (EXIT
                      (COND
                       ((NULL (< |b| |i|))
                        (PROGN
                         (LETT #1#
                               (PROGN
                                (LETT #2#
                                      (CONS
                                       (SPADCALL |l| (+ |m1| |j|)
                                                 (QREFELT $ 41))
                                       (|MHROWRED;enumerateBinomial|
                                        (SPADCALL |l| |j| (QREFELT $ 42)) |m|
                                        |i| $))
                                      . #4#)
                                (GO #2#))
                               . #4#)
                         (GO #1#))))))
                    (EXIT (LETT |i| (- |i| |b|) . #4#))))
                  #1# (EXIT #1#))
                 (LETT |j| (QSADD1 |j|) . #4#) (GO G190) G191 (EXIT NIL))
            (EXIT (|error| "Should not happen"))))))))
      #2# (EXIT #2#))))) 

(DEFUN |MHROWRED;rowEch;2M;7| (|x| $)
  (PROG (|d| |u|)
    (RETURN
     (SEQ
      (LETT |u| (|MHROWRED;diagSubMatrix| |x| $) . #1=(|MHROWRED;rowEch;2M;7|))
      (EXIT
       (COND
        ((QEQCAR |u| 1)
         (COND
          ((SPADCALL (LETT |d| (|MHROWRED;determinantOfMinor| |x| $) . #1#)
                     (QREFELT $ 43))
           (SPADCALL |x| (QREFELT $ 44)))
          (#2='T (SPADCALL |x| |d| (QREFELT $ 45)))))
        (#2#
         (SPADCALL (QCDR (QCDR |u|)) (QCAR (QCDR |u|)) (QREFELT $ 45))))))))) 

(DEFUN |MHROWRED;vconc| (|y| |m| $)
  (PROG ()
    (RETURN
     (SPADCALL
      (SPADCALL (MAKEARR1 (SPADCALL |y| (QREFELT $ 26)) |m|) (QREFELT $ 47))
      (SPADCALL (CONS #'|MHROWRED;vconc!0| (VECTOR $ |m|)) |y| (QREFELT $ 50))
      (QREFELT $ 51))))) 

(DEFUN |MHROWRED;vconc!0| (|s| $$)
  (PROG (|m| $)
    (LETT |m| (QREFELT $$ 1) . #1=(|MHROWRED;vconc|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |s| |m| (QREFELT $ 48)))))) 

(DEFUN |MHROWRED;order| (|m| |p| $)
  (PROG (#1=#:G1962 |mm| |i|)
    (RETURN
     (SEQ
      (EXIT
       (COND ((SPADCALL |m| (QREFELT $ 43)) -1)
             ('T
              (SEQ (LETT |i| 0 . #2=(|MHROWRED;order|)) G190 NIL
                   (SEQ (LETT |mm| (SPADCALL |m| |p| (QREFELT $ 53)) . #2#)
                        (EXIT
                         (COND
                          ((QEQCAR |mm| 1)
                           (PROGN (LETT #1# |i| . #2#) (GO #1#)))
                          ('T (LETT |m| (QCDR |mm|) . #2#)))))
                   (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL)))))
      #1# (EXIT #1#))))) 

(DEFUN |MHROWRED;normalizedDivide;2RR;10| (|n| |d| $)
  (PROG (|qr|)
    (RETURN
     (SEQ
      (LETT |qr| (SPADCALL |n| |d| (QREFELT $ 55))
            |MHROWRED;normalizedDivide;2RR;10|)
      (COND
       ((NULL (SPADCALL (QCDR |qr|) (|spadConstant| $ 7) (QREFELT $ 56)))
        (EXIT |qr|)))
      (EXIT
       (COND
        ((SPADCALL (|spadConstant| $ 7) |d| (QREFELT $ 56))
         (SEQ
          (PROGN
           (RPLACD |qr| (SPADCALL (QCDR |qr|) |d| (QREFELT $ 57)))
           (QCDR |qr|))
          (PROGN
           (RPLACA |qr|
                   (SPADCALL (QCAR |qr|) (|spadConstant| $ 24) (QREFELT $ 58)))
           (QCAR |qr|))
          (EXIT |qr|)))
        ('T
         (SEQ
          (PROGN
           (RPLACD |qr| (SPADCALL (QCDR |qr|) |d| (QREFELT $ 58)))
           (QCDR |qr|))
          (PROGN
           (RPLACA |qr|
                   (SPADCALL (QCAR |qr|) (|spadConstant| $ 24) (QREFELT $ 57)))
           (QCAR |qr|))
          (EXIT |qr|))))))))) 

(DEFUN |MHROWRED;normalizedDivide;2RR;11| (|n| |d| $)
  (SPADCALL |n| |d| (QREFELT $ 55))) 

(DEFUN |MHROWRED;rowEchLocal;MRM;12| (|x| |p| $)
  (PROG (|d| |u|)
    (RETURN
     (SEQ
      (LETT |u| (|MHROWRED;diagSubMatrix| |x| $)
            . #1=(|MHROWRED;rowEchLocal;MRM;12|))
      (EXIT
       (COND
        ((QEQCAR |u| 1)
         (COND
          ((SPADCALL (LETT |d| (|MHROWRED;determinantOfMinor| |x| $) . #1#)
                     (QREFELT $ 43))
           (SPADCALL |x| (QREFELT $ 44)))
          (#2='T (SPADCALL |x| |d| |p| (QREFELT $ 61)))))
        (#2#
         (SPADCALL (QCDR (QCDR |u|)) (QCAR (QCDR |u|)) |p|
                   (QREFELT $ 61))))))))) 

(DEFUN |MHROWRED;rowEchelonLocal;M2RM;13| (|y| |m| |p| $)
  (PROG (|i| #1=#:G2009 |k1| |qr| #2=#:G2008 |k| |v2| |q| #3=#:G1991 |pivot|
         |d| |b| |a| |#G79| |x| #4=#:G1984 |pivord| |rown| |npivord| #5=#:G2005
         |j| |minr| |ncols| |nrows| #6=#:G1981)
    (RETURN
     (SEQ
      (LETT |m|
            (SPADCALL |p|
                      (PROG1
                          (LETT #6# (|MHROWRED;order| |m| |p| $)
                                . #7=(|MHROWRED;rowEchelonLocal;M2RM;13|))
                        (|check-subtype| (>= #6# 0) '(|NonNegativeInteger|)
                                         #6#))
                      (QREFELT $ 63))
            . #7#)
      (LETT |x| (|MHROWRED;vconc| |y| |m| $) . #7#)
      (LETT |nrows| (SPADCALL |x| (QREFELT $ 18)) . #7#)
      (LETT |ncols| (SPADCALL |x| (QREFELT $ 34)) . #7#)
      (LETT |minr| (LETT |i| 1 . #7#) . #7#)
      (SEQ
       (EXIT
        (SEQ (LETT |j| 1 . #7#) G190
             (COND ((QSGREATERP |j| |ncols|) #8=(GO G191)))
             (SEQ
              (COND ((< |nrows| |i|) (PROGN (LETT #5# |x| . #7#) (GO #5#))))
              (LETT |rown| (- |minr| 1) . #7#)
              (SEQ (LETT |k| |i| . #7#) G190 (COND ((> |k| |nrows|) #8#))
                   (SEQ
                    (EXIT
                     (COND
                      ((SPADCALL (QAREF2O |x| |k| |j| 1 1) (|spadConstant| $ 7)
                                 (QREFELT $ 9))
                       "next k")
                      ('T
                       (SEQ
                        (EXIT
                         (SEQ
                          (LETT |npivord|
                                (|MHROWRED;order| (QAREF2O |x| |k| |j| 1 1) |p|
                                 $)
                                . #7#)
                          (EXIT
                           (COND
                            ((OR (EQL |rown| (- |minr| 1))
                                 (< |npivord| |pivord|))
                             (PROGN
                              (LETT #4#
                                    (SEQ (LETT |rown| |k| . #7#)
                                         (EXIT
                                          (LETT |pivord| |npivord| . #7#)))
                                    . #7#)
                              (GO #4#)))))))
                        #4# (EXIT #4#))))))
                   (LETT |k| (+ |k| 1) . #7#) #9=(GO G190) G191 (EXIT NIL))
              (EXIT
               (COND ((EQL |rown| (- |minr| 1)) "enuf")
                     ('T
                      (SEQ
                       (LETT |x| (SPADCALL |x| |i| |rown| (QREFELT $ 64))
                             . #7#)
                       (PROGN
                        (LETT |#G79|
                              (SPADCALL (QAREF2O |x| |i| |j| 1 1) |m|
                                        (QREFELT $ 66))
                              . #7#)
                        (LETT |a| (QVELT |#G79| 0) . #7#)
                        (LETT |b| (QVELT |#G79| 1) . #7#)
                        (LETT |d| (QVELT |#G79| 2) . #7#)
                        |#G79|)
                       (QSETAREF2O |x| |i| |j| |d| 1 1)
                       (LETT |pivot| |d| . #7#)
                       (SEQ (LETT |k| (+ |j| 1) . #7#) G190
                            (COND ((> |k| |ncols|) #8#))
                            (SEQ
                             (EXIT
                              (QSETAREF2O |x| |i| |k|
                                          (SPADCALL
                                           (SPADCALL |a|
                                                     (QAREF2O |x| |i| |k| 1 1)
                                                     (QREFELT $ 67))
                                           |m| (QREFELT $ 48))
                                          1 1)))
                            (LETT |k| (+ |k| 1) . #7#) #9# G191 (EXIT NIL))
                       (SEQ (LETT |k| (+ |i| 1) . #7#) G190
                            (COND ((> |k| |nrows|) #8#))
                            (SEQ
                             (EXIT
                              (COND
                               ((SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                          (QREFELT $ 43))
                                "next k")
                               ('T
                                (SEQ
                                 (LETT |q|
                                       (PROG2
                                           (LETT #3#
                                                 (SPADCALL
                                                  (QAREF2O |x| |k| |j| 1 1)
                                                  |pivot| (QREFELT $ 53))
                                                 . #7#)
                                           (QCDR #3#)
                                         (|check-union| (QEQCAR #3# 0)
                                                        (QREFELT $ 6) #3#))
                                       . #7#)
                                 (SEQ (LETT |k1| (+ |j| 1) . #7#) G190
                                      (COND ((> |k1| |ncols|) #8#))
                                      (SEQ
                                       (LETT |v2|
                                             (SPADCALL
                                              (SPADCALL
                                               (QAREF2O |x| |k| |k1| 1 1)
                                               (SPADCALL |q|
                                                         (QAREF2O |x| |i| |k1|
                                                                  1 1)
                                                         (QREFELT $ 67))
                                               (QREFELT $ 58))
                                              |m| (QREFELT $ 48))
                                             . #7#)
                                       (EXIT
                                        (QSETAREF2O |x| |k| |k1| |v2| 1 1)))
                                      (LETT |k1| (+ |k1| 1) . #7#) #9# G191
                                      (EXIT NIL))
                                 (EXIT
                                  (QSETAREF2O |x| |k| |j| (|spadConstant| $ 7)
                                              1 1)))))))
                            (LETT |k| (+ |k| 1) . #7#) #9# G191 (EXIT NIL))
                       (SEQ (LETT |k| |minr| . #7#) (LETT #2# (- |i| 1) . #7#)
                            G190 (COND ((> |k| #2#) #8#))
                            (SEQ
                             (EXIT
                              (COND
                               ((SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                          (QREFELT $ 43))
                                "enuf")
                               ('T
                                (SEQ
                                 (LETT |qr|
                                       (SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                                 |pivot| (QREFELT $ 60))
                                       . #7#)
                                 (QSETAREF2O |x| |k| |j| (QCDR |qr|) 1 1)
                                 (EXIT
                                  (SEQ (LETT |k1| (+ |j| 1) . #7#)
                                       (LETT #1# (SPADCALL |x| (QREFELT $ 26))
                                             . #7#)
                                       G190 (COND ((> |k1| #1#) #8#))
                                       (SEQ
                                        (EXIT
                                         (QSETAREF2O |x| |k| |k1|
                                                     (SPADCALL
                                                      (SPADCALL
                                                       (QAREF2O |x| |k| |k1| 1
                                                                1)
                                                       (SPADCALL (QCAR |qr|)
                                                                 (QAREF2O |x|
                                                                          |i|
                                                                          |k1|
                                                                          1 1)
                                                                 (QREFELT $
                                                                          67))
                                                       (QREFELT $ 58))
                                                      |m| (QREFELT $ 48))
                                                     1 1)))
                                       (LETT |k1| (+ |k1| 1) . #7#) #9# G191
                                       (EXIT NIL))))))))
                            (LETT |k| (+ |k| 1) . #7#) #9# G191 (EXIT NIL))
                       (EXIT (LETT |i| (+ |i| 1) . #7#)))))))
             (LETT |j| (QSADD1 |j|) . #7#) #9# G191 (EXIT NIL)))
       #5# (EXIT #5#))
      (EXIT |x|))))) 

(DEFUN |MHROWRED;rowEchelon;MRM;14| (|y| |m| $)
  (SPADCALL (|MHROWRED;vconc| |y| |m| $) (QREFELT $ 44))) 

(DEFUN |MHROWRED;rowEchelon;MRM;15| (|y| |m| $)
  (PROG (|i| #1=#:G2039 |k1| |qr| #2=#:G2038 |k| |xij| |jj| |un| |v2| |v1| |a1|
         |b1| |#G94| #3=#:G2017 |#G93| |d| |b| |a| |#G92| |x| |rown| #4=#:G2035
         |j| |minr| |ncols| |nrows|)
    (RETURN
     (SEQ
      (LETT |x| (|MHROWRED;vconc| |y| |m| $)
            . #5=(|MHROWRED;rowEchelon;MRM;15|))
      (LETT |nrows| (SPADCALL |x| (QREFELT $ 18)) . #5#)
      (LETT |ncols| (SPADCALL |x| (QREFELT $ 34)) . #5#)
      (LETT |minr| (LETT |i| 1 . #5#) . #5#)
      (SEQ
       (EXIT
        (SEQ (LETT |j| 1 . #5#) G190
             (COND ((QSGREATERP |j| |ncols|) #6=(GO G191)))
             (SEQ
              (COND
               ((< |nrows| |i|) (PROGN (LETT #4# |$NoValue| . #5#) (GO #4#))))
              (LETT |rown| (- |minr| 1) . #5#)
              (SEQ (LETT |k| |i| . #5#) G190 (COND ((> |k| |nrows|) #6#))
                   (SEQ
                    (EXIT
                     (COND
                      ((NULL
                        (SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                  (|spadConstant| $ 7) (QREFELT $ 9)))
                       (COND
                        ((OR (EQL |rown| (- |minr| 1))
                             (SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                       (QAREF2O |x| |rown| |j| 1 1)
                                       (QREFELT $ 68)))
                         (LETT |rown| |k| . #5#)))))))
                   (LETT |k| (+ |k| 1) . #5#) #7=(GO G190) G191 (EXIT NIL))
              (EXIT
               (COND ((EQL |rown| (- |minr| 1)) "next j")
                     ('T
                      (SEQ
                       (LETT |x| (SPADCALL |x| |i| |rown| (QREFELT $ 64))
                             . #5#)
                       (SEQ (LETT |k| (+ |i| 1) . #5#) G190
                            (COND ((> |k| |nrows|) #6#))
                            (SEQ
                             (EXIT
                              (COND
                               ((SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                          (QREFELT $ 43))
                                "next k")
                               ('T
                                (SEQ
                                 (PROGN
                                  (LETT |#G92|
                                        (SPADCALL (QAREF2O |x| |i| |j| 1 1)
                                                  (QAREF2O |x| |k| |j| 1 1)
                                                  (QREFELT $ 66))
                                        . #5#)
                                  (LETT |a| (QVELT |#G92| 0) . #5#)
                                  (LETT |b| (QVELT |#G92| 1) . #5#)
                                  (LETT |d| (QVELT |#G92| 2) . #5#)
                                  |#G92|)
                                 (PROGN
                                  (LETT |#G93|
                                        (PROG2
                                            (LETT #3#
                                                  (SPADCALL
                                                   (QAREF2O |x| |i| |j| 1 1)
                                                   |d| (QREFELT $ 53))
                                                  . #5#)
                                            (QCDR #3#)
                                          (|check-union| (QEQCAR #3# 0)
                                                         (QREFELT $ 6) #3#))
                                        . #5#)
                                  (LETT |#G94|
                                        (PROG2
                                            (LETT #3#
                                                  (SPADCALL
                                                   (QAREF2O |x| |k| |j| 1 1)
                                                   |d| (QREFELT $ 53))
                                                  . #5#)
                                            (QCDR #3#)
                                          (|check-union| (QEQCAR #3# 0)
                                                         (QREFELT $ 6) #3#))
                                        . #5#)
                                  (LETT |b1| |#G93| . #5#)
                                  (LETT |a1| |#G94| . #5#))
                                 (SEQ (LETT |k1| (+ |j| 1) . #5#) G190
                                      (COND ((> |k1| |ncols|) #6#))
                                      (SEQ
                                       (LETT |v1|
                                             (SPADCALL
                                              (SPADCALL
                                               (SPADCALL |a|
                                                         (QAREF2O |x| |i| |k1|
                                                                  1 1)
                                                         (QREFELT $ 67))
                                               (SPADCALL |b|
                                                         (QAREF2O |x| |k| |k1|
                                                                  1 1)
                                                         (QREFELT $ 67))
                                               (QREFELT $ 57))
                                              |m| (QREFELT $ 48))
                                             . #5#)
                                       (LETT |v2|
                                             (SPADCALL
                                              (SPADCALL
                                               (SPADCALL |b1|
                                                         (QAREF2O |x| |k| |k1|
                                                                  1 1)
                                                         (QREFELT $ 67))
                                               (SPADCALL |a1|
                                                         (QAREF2O |x| |i| |k1|
                                                                  1 1)
                                                         (QREFELT $ 67))
                                               (QREFELT $ 58))
                                              |m| (QREFELT $ 48))
                                             . #5#)
                                       (QSETAREF2O |x| |i| |k1| |v1| 1 1)
                                       (EXIT
                                        (QSETAREF2O |x| |k| |k1| |v2| 1 1)))
                                      (LETT |k1| (+ |k1| 1) . #5#) #7# G191
                                      (EXIT NIL))
                                 (QSETAREF2O |x| |i| |j| |d| 1 1)
                                 (EXIT
                                  (QSETAREF2O |x| |k| |j| (|spadConstant| $ 7)
                                              1 1)))))))
                            (LETT |k| (+ |k| 1) . #5#) #7# G191 (EXIT NIL))
                       (LETT |un|
                             (SPADCALL (QAREF2O |x| |i| |j| 1 1)
                                       (QREFELT $ 70))
                             . #5#)
                       (QSETAREF2O |x| |i| |j| (QVELT |un| 1) 1 1)
                       (COND
                        ((NULL
                          (SPADCALL (QVELT |un| 2) (|spadConstant| $ 24)
                                    (QREFELT $ 9)))
                         (SEQ (LETT |jj| (+ |j| 1) . #5#) G190
                              (COND ((> |jj| |ncols|) #6#))
                              (SEQ
                               (EXIT
                                (QSETAREF2O |x| |i| |jj|
                                            (SPADCALL (QVELT |un| 2)
                                                      (QAREF2O |x| |i| |jj| 1
                                                               1)
                                                      (QREFELT $ 67))
                                            1 1)))
                              (LETT |jj| (+ |jj| 1) . #5#) #7# G191
                              (EXIT NIL))))
                       (LETT |xij| (QAREF2O |x| |i| |j| 1 1) . #5#)
                       (SEQ (LETT |k| |minr| . #5#) (LETT #2# (- |i| 1) . #5#)
                            G190 (COND ((> |k| #2#) #6#))
                            (SEQ
                             (EXIT
                              (COND
                               ((SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                          (QREFELT $ 43))
                                "next k")
                               ('T
                                (SEQ
                                 (LETT |qr|
                                       (SPADCALL (QAREF2O |x| |k| |j| 1 1)
                                                 |xij| (QREFELT $ 60))
                                       . #5#)
                                 (QSETAREF2O |x| |k| |j| (QCDR |qr|) 1 1)
                                 (EXIT
                                  (SEQ (LETT |k1| (+ |j| 1) . #5#)
                                       (LETT #1# (SPADCALL |x| (QREFELT $ 26))
                                             . #5#)
                                       G190 (COND ((> |k1| #1#) #6#))
                                       (SEQ
                                        (EXIT
                                         (QSETAREF2O |x| |k| |k1|
                                                     (SPADCALL
                                                      (SPADCALL
                                                       (QAREF2O |x| |k| |k1| 1
                                                                1)
                                                       (SPADCALL (QCAR |qr|)
                                                                 (QAREF2O |x|
                                                                          |i|
                                                                          |k1|
                                                                          1 1)
                                                                 (QREFELT $
                                                                          67))
                                                       (QREFELT $ 58))
                                                      |m| (QREFELT $ 48))
                                                     1 1)))
                                       (LETT |k1| (+ |k1| 1) . #5#) #7# G191
                                       (EXIT NIL))))))))
                            (LETT |k| (+ |k| 1) . #5#) #7# G191 (EXIT NIL))
                       (EXIT (LETT |i| (+ |i| 1) . #5#)))))))
             (LETT |j| (QSADD1 |j|) . #5#) #7# G191 (EXIT NIL)))
       #4# (EXIT #4#))
      (EXIT |x|))))) 

(DEFUN |ModularHermitianRowReduction| (#1=#:G2040)
  (PROG ()
    (RETURN
     (PROG (#2=#:G2041)
       (RETURN
        (COND
         ((LETT #2#
                (|lassocShiftWithFunction| (LIST (|devaluate| #1#))
                                           (HGET |$ConstructorCache|
                                                 '|ModularHermitianRowReduction|)
                                           '|domainEqualList|)
                . #3=(|ModularHermitianRowReduction|))
          (|CDRwithIncrement| #2#))
         ('T
          (UNWIND-PROTECT
              (PROG1 (|ModularHermitianRowReduction;| #1#) (LETT #2# T . #3#))
            (COND
             ((NOT #2#)
              (HREM |$ConstructorCache|
                    '|ModularHermitianRowReduction|))))))))))) 

(DEFUN |ModularHermitianRowReduction;| (|#1|)
  (PROG (|pv$| $ |dv$| DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|ModularHermitianRowReduction|))
      (LETT |dv$| (LIST '|ModularHermitianRowReduction| DV$1) . #1#)
      (LETT $ (GETREFV 71) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|ModularHermitianRowReduction|
                  (LIST DV$1) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (COND
       ((|HasCategory| |#1| '(|IntegerNumberSystem|))
        (QSETREFV $ 60
                  (CONS (|dispatchFunction| |MHROWRED;normalizedDivide;2RR;10|)
                        $)))
       ('T
        (QSETREFV $ 60
                  (CONS (|dispatchFunction| |MHROWRED;normalizedDivide;2RR;11|)
                        $))))
      (COND
       ((|HasCategory| |#1| '(|Field|))
        (QSETREFV $ 45
                  (CONS (|dispatchFunction| |MHROWRED;rowEchelon;MRM;14|) $)))
       ('T
        (QSETREFV $ 45
                  (CONS (|dispatchFunction| |MHROWRED;rowEchelon;MRM;15|) $))))
      $)))) 

(MAKEPROP '|ModularHermitianRowReduction| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |Zero|) (|Boolean|)
              (4 . =) (10 . |false|) (14 . |true|) (|Mapping| 8 6) (|Vector| 6)
              (18 . |any?|) (|Integer|) (24 . |minIndex|) (|Matrix| 6)
              (29 . |maxRowIndex|) (|List| 15) (34 . |member?|) (40 . |row|)
              (|List| 6) (46 . |parts|) (51 . |One|) (|NonNegativeInteger|)
              (55 . |ncols|) (60 . |zero|) (|List| 22) (66 . |matrix|)
              (71 . |removeDuplicates|) (|Set| 15) (76 . |construct|)
              (81 . |brace|) (86 . |maxColIndex|) (91 . =) (97 . |binomial|)
              (103 . |elt|) (110 . |determinant|) (115 . |gcd|)
              (121 . |minIndex|) (126 . |elt|) (132 . |rest|) (138 . |zero?|)
              (143 . |rowEchelon|) (148 . |rowEchelon|) |MHROWRED;rowEch;2M;7|
              (154 . |diagonalMatrix|) (159 . |rem|) (|Mapping| 6 6)
              (165 . |map|) (171 . |vertConcat|) (|Union| $ '"failed")
              (177 . |exquo|) (|Record| (|:| |quotient| $) (|:| |remainder| $))
              (183 . |divide|) (189 . <) (195 . +) (201 . -)
              (|Record| (|:| |quotient| 6) (|:| |remainder| 6))
              (207 . |normalizedDivide|) |MHROWRED;rowEchelonLocal;M2RM;13|
              |MHROWRED;rowEchLocal;MRM;12| (213 . ^) (219 . |swapRows!|)
              (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $))
              (226 . |extendedEuclidean|) (232 . *) (238 . |sizeLess?|)
              (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $))
              (244 . |unitNormal|))
           '#(|rowEchelonLocal| 249 |rowEchelon| 256 |rowEchLocal| 262 |rowEch|
              268 |normalizedDivide| 273)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 70
                                                 '(0 6 0 7 2 6 8 0 0 9 0 8 0 10
                                                   0 8 0 11 2 13 8 12 0 14 1 13
                                                   15 0 16 1 17 15 0 18 2 19 8
                                                   15 0 20 2 17 13 0 15 21 1 13
                                                   22 0 23 0 6 0 24 1 17 25 0
                                                   26 2 17 0 25 25 27 1 17 0 28
                                                   29 1 22 0 0 30 1 31 0 19 32
                                                   1 31 0 19 33 1 17 15 0 34 2
                                                   31 8 0 0 35 2 15 0 0 0 36 3
                                                   17 0 0 19 19 37 1 17 6 0 38
                                                   2 6 0 0 0 39 1 19 15 0 40 2
                                                   19 15 0 15 41 2 19 0 0 25 42
                                                   1 6 8 0 43 1 17 0 0 44 2 0
                                                   17 17 6 45 1 17 0 13 47 2 6
                                                   0 0 0 48 2 17 0 49 0 50 2 17
                                                   0 0 0 51 2 6 52 0 0 53 2 6
                                                   54 0 0 55 2 6 8 0 0 56 2 6 0
                                                   0 0 57 2 6 0 0 0 58 2 0 59 6
                                                   6 60 2 6 0 0 25 63 3 17 0 0
                                                   15 15 64 2 6 65 0 0 66 2 6 0
                                                   0 0 67 2 6 8 0 0 68 1 6 69 0
                                                   70 3 0 17 17 6 6 61 2 0 17
                                                   17 6 45 2 0 17 17 6 62 1 0
                                                   17 17 46 2 0 59 6 6 60)))))
           '|lookupComplete|)) 
