
(/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=#:G693 |ans| |allZero| #2=#:G694 |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 (SPADCALL |v| |i| (QREFELT $ 17))
                                (|spadConstant| $ 7) (QREFELT $ 9)))
                     (COND
                      (|allZero|
                       (SEQ (LETT |allZero| 'NIL . #3#)
                            (EXIT
                             (LETT |ans|
                                   (VECTOR (SPADCALL |v| |i| (QREFELT $ 17))
                                           |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=#:G712 |i| #2=#:G711)
    (RETURN
     (SEQ
      (COND
       ((NULL
         (LETT |ll|
               (PROGN
                (LETT #2# NIL . #3=(|MHROWRED;mkMat|))
                (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 19)) . #3#)
                     (LETT #1# (SPADCALL |x| (QREFELT $ 20)) . #3#) G190
                     (COND ((> |i| #1#) (GO G191)))
                     (SEQ
                      (EXIT
                       (COND
                        ((COND ((SPADCALL |i| |l| (QREFELT $ 22)) 'NIL)
                               (#4='T
                                (|MHROWRED;nonzero?|
                                 (SPADCALL |x| |i| (QREFELT $ 23)) $)))
                         (LETT #2#
                               (CONS
                                (SPADCALL (SPADCALL |x| |i| (QREFELT $ 23))
                                          (QREFELT $ 25))
                                #2#)
                               . #3#)))))
                     (LETT |i| (+ |i| 1) . #3#) (GO G190) G191
                     (EXIT (NREVERSE0 #2#))))
               . #3#))
        (SPADCALL 1 (SPADCALL |x| (QREFELT $ 28)) (QREFELT $ 29)))
       (#4# (SPADCALL |ll| (QREFELT $ 31)))))))) 

(DEFUN |MHROWRED;diagSubMatrix| (|x| $)
  (PROG (#1=#:G758 #2=#:G760 #3=#:G771 |r| #4=#:G770 #5=#:G769 |z| #6=#:G768
         #7=#:G767 #8=#:G766 #9=#:G763 #10=#:G765 #11=#:G764 |a| |l| #12=#:G719
         |u| #13=#:G762 |i| #14=#:G761)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |l|
              (PROGN
               (LETT #14# NIL . #15=(|MHROWRED;diagSubMatrix|))
               (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 19)) . #15#)
                    (LETT #13# (SPADCALL |x| (QREFELT $ 20)) . #15#) G190
                    (COND ((> |i| #13#) #16=(GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((QEQCAR
                         (LETT |u|
                               (|MHROWRED;non0|
                                (SPADCALL |x| |i| (QREFELT $ 23)) |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| (+ |i| 1) . #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 $ 32))
                     . #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 $ 35))
                    (SPADCALL
                     (PROGN
                      (LETT #6# NIL . #15#)
                      (SEQ (LETT |z| (SPADCALL |x| (QREFELT $ 36)) . #15#)
                           (LETT #5# (SPADCALL |x| (QREFELT $ 37)) . #15#) G190
                           (COND ((> |z| #5#) #16#))
                           (SEQ (EXIT (LETT #6# (CONS |z| #6#) . #15#)))
                           (LETT |z| (+ |z| 1) . #15#) #17# G191
                           (EXIT (NREVERSE0 #6#))))
                     (QREFELT $ 35))
                    (QREFELT $ 38))
                   (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=#:G777 #2=#:G779 |j| |d| #3=#:G784 |n| |i| |lr| #4=#:G783 #5=#:G782
         |lc| #6=#:G781 #7=#:G780 #8=#:G778 |nr| |nc|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (EXIT
         (SEQ
          (SEQ
           (LETT |nc| (SPADCALL |x| (QREFELT $ 28))
                 . #9=(|MHROWRED;determinantOfMinor|))
           (LETT |nr| (SPADCALL |x| (QREFELT $ 39)) . #9#)
           (EXIT
            (COND
             ((NULL (< |nc| |nr|))
              (PROGN (LETT #8# (|spadConstant| $ 7) . #9#) (GO #8#))))))
          (LETT |lc|
                (PROGN
                 (LETT #7# NIL . #9#)
                 (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 36)) . #9#)
                      (LETT #6# (SPADCALL |x| (QREFELT $ 37)) . #9#) G190
                      (COND ((> |i| #6#) #10=(GO G191)))
                      (SEQ (EXIT (LETT #7# (CONS |i| #7#) . #9#)))
                      (LETT |i| (+ |i| 1) . #9#) #11=(GO G190) G191
                      (EXIT (NREVERSE0 #7#))))
                . #9#)
          (LETT |lr|
                (PROGN
                 (LETT #5# NIL . #9#)
                 (SEQ (LETT |i| (SPADCALL |x| (QREFELT $ 19)) . #9#)
                      (LETT #4# (SPADCALL |x| (QREFELT $ 20)) . #9#) G190
                      (COND ((> |i| #4#) #10#))
                      (SEQ (EXIT (LETT #5# (CONS |i| #5#) . #9#)))
                      (LETT |i| (+ |i| 1) . #9#) #11# G191
                      (EXIT (NREVERSE0 #5#))))
                . #9#)
          (SEQ
           (EXIT
            (SEQ (LETT |i| 1 . #9#)
                 (LETT #3# (LETT |n| (SPADCALL |nr| |nc| (QREFELT $ 40)) . #9#)
                       . #9#)
                 G190 (COND ((QSGREATERP |i| #3#) #10#))
                 (SEQ
                  (LETT |d|
                        (SPADCALL
                         (SPADCALL |x|
                                   (|MHROWRED;enumerateBinomial| |lr| |nc| |i|
                                    $)
                                   |lc| (QREFELT $ 41))
                         (QREFELT $ 42))
                        . #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 $ 41))
                                                (QREFELT $ 42))
                                               (QREFELT $ 43))
                                     . #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=#:G786 #2=#:G790 |b| #3=#:G791 |n| |j| |m1|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |m1| (- (SPADCALL |l| (QREFELT $ 44)) 1)
              . #4=(|MHROWRED;enumerateBinomial|))
        (EXIT
         (COND
          ((ZEROP (LETT |m| (- |m| 1) . #4#))
           (LIST (SPADCALL |l| (+ |m1| |i|) (QREFELT $ 45))))
          ('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 $ 40)) . #4#)
                     (EXIT
                      (COND
                       ((NULL (< |b| |i|))
                        (PROGN
                         (LETT #1#
                               (PROGN
                                (LETT #2#
                                      (CONS
                                       (SPADCALL |l| (+ |m1| |j|)
                                                 (QREFELT $ 45))
                                       (|MHROWRED;enumerateBinomial|
                                        (SPADCALL |l| |j| (QREFELT $ 46)) |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 $ 47))
           (SPADCALL |x| (QREFELT $ 48)))
          (#2='T (SPADCALL |x| |d| (QREFELT $ 49)))))
        (#2#
         (SPADCALL (QCDR (QCDR |u|)) (QCAR (QCDR |u|)) (QREFELT $ 49))))))))) 

(DEFUN |MHROWRED;vconc| (|y| |m| $)
  (PROG ()
    (RETURN
     (SPADCALL
      (SPADCALL (SPADCALL (SPADCALL |y| (QREFELT $ 28)) |m| (QREFELT $ 51))
                (QREFELT $ 52))
      (SPADCALL (CONS #'|MHROWRED;vconc!0| (VECTOR $ |m|)) |y| (QREFELT $ 55))
      (QREFELT $ 56))))) 

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

(DEFUN |MHROWRED;order| (|m| |p| $)
  (PROG (#1=#:G810 |mm| |i|)
    (RETURN
     (SEQ
      (EXIT
       (COND ((SPADCALL |m| (QREFELT $ 47)) -1)
             ('T
              (SEQ (LETT |i| 0 . #2=(|MHROWRED;order|)) G190 NIL
                   (SEQ (LETT |mm| (SPADCALL |m| |p| (QREFELT $ 58)) . #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 $ 60))
            |MHROWRED;normalizedDivide;2RR;10|)
      (COND
       ((NULL (SPADCALL (QCDR |qr|) (|spadConstant| $ 7) (QREFELT $ 61)))
        (EXIT |qr|)))
      (EXIT
       (COND
        ((SPADCALL (|spadConstant| $ 7) |d| (QREFELT $ 61))
         (SEQ
          (PROGN
           (RPLACD |qr| (SPADCALL (QCDR |qr|) |d| (QREFELT $ 62)))
           (QCDR |qr|))
          (PROGN
           (RPLACA |qr|
                   (SPADCALL (QCAR |qr|) (|spadConstant| $ 26) (QREFELT $ 63)))
           (QCAR |qr|))
          (EXIT |qr|)))
        ('T
         (SEQ
          (PROGN
           (RPLACD |qr| (SPADCALL (QCDR |qr|) |d| (QREFELT $ 63)))
           (QCDR |qr|))
          (PROGN
           (RPLACA |qr|
                   (SPADCALL (QCAR |qr|) (|spadConstant| $ 26) (QREFELT $ 62)))
           (QCAR |qr|))
          (EXIT |qr|))))))))) 

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

(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 $ 47))
           (SPADCALL |x| (QREFELT $ 48)))
          (#2='T (SPADCALL |x| |d| |p| (QREFELT $ 66)))))
        (#2#
         (SPADCALL (QCDR (QCDR |u|)) (QCAR (QCDR |u|)) |p|
                   (QREFELT $ 66))))))))) 

(DEFUN |MHROWRED;rowEchelonLocal;M2RM;13| (|y| |m| |p| $)
  (PROG (|i| #1=#:G857 |k1| |qr| #2=#:G856 |k| |v2| |q| #3=#:G839 |pivot| |d|
         |b| |a| |#G79| |x| #4=#:G832 |pivord| |rown| |npivord| #5=#:G853 |j|
         |minr| |ncols| |nrows| #6=#:G829)
    (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 $ 68))
            . #7#)
      (LETT |x| (|MHROWRED;vconc| |y| |m| $) . #7#)
      (LETT |nrows| (SPADCALL |x| (QREFELT $ 20)) . #7#)
      (LETT |ncols| (SPADCALL |x| (QREFELT $ 37)) . #7#)
      (LETT |minr| (LETT |i| (SPADCALL |x| (QREFELT $ 19)) . #7#) . #7#)
      (SEQ
       (EXIT
        (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 36)) . #7#) G190
             (COND ((> |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 (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                 (|spadConstant| $ 7) (QREFELT $ 9))
                       "next k")
                      ('T
                       (SEQ
                        (EXIT
                         (SEQ
                          (LETT |npivord|
                                (|MHROWRED;order|
                                 (SPADCALL |x| |k| |j| (QREFELT $ 69)) |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 $ 70))
                             . #7#)
                       (PROGN
                        (LETT |#G79|
                              (SPADCALL (SPADCALL |x| |i| |j| (QREFELT $ 69))
                                        |m| (QREFELT $ 72))
                              . #7#)
                        (LETT |a| (QVELT |#G79| 0) . #7#)
                        (LETT |b| (QVELT |#G79| 1) . #7#)
                        (LETT |d| (QVELT |#G79| 2) . #7#)
                        |#G79|)
                       (SPADCALL |x| |i| |j| |d| (QREFELT $ 73))
                       (LETT |pivot| |d| . #7#)
                       (SEQ (LETT |k| (+ |j| 1) . #7#) G190
                            (COND ((> |k| |ncols|) #8#))
                            (SEQ
                             (EXIT
                              (SPADCALL |x| |i| |k|
                                        (SPADCALL
                                         (SPADCALL |a|
                                                   (SPADCALL |x| |i| |k|
                                                             (QREFELT $ 69))
                                                   (QREFELT $ 74))
                                         |m| (QREFELT $ 53))
                                        (QREFELT $ 73))))
                            (LETT |k| (+ |k| 1) . #7#) #9# G191 (EXIT NIL))
                       (SEQ (LETT |k| (+ |i| 1) . #7#) G190
                            (COND ((> |k| |nrows|) #8#))
                            (SEQ
                             (EXIT
                              (COND
                               ((SPADCALL (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                          (QREFELT $ 47))
                                "next k")
                               ('T
                                (SEQ
                                 (LETT |q|
                                       (PROG2
                                           (LETT #3#
                                                 (SPADCALL
                                                  (SPADCALL |x| |k| |j|
                                                            (QREFELT $ 69))
                                                  |pivot| (QREFELT $ 58))
                                                 . #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
                                               (SPADCALL |x| |k| |k1|
                                                         (QREFELT $ 69))
                                               (SPADCALL |q|
                                                         (SPADCALL |x| |i| |k1|
                                                                   (QREFELT $
                                                                            69))
                                                         (QREFELT $ 74))
                                               (QREFELT $ 63))
                                              |m| (QREFELT $ 53))
                                             . #7#)
                                       (EXIT
                                        (SPADCALL |x| |k| |k1| |v2|
                                                  (QREFELT $ 73))))
                                      (LETT |k1| (+ |k1| 1) . #7#) #9# G191
                                      (EXIT NIL))
                                 (EXIT
                                  (SPADCALL |x| |k| |j| (|spadConstant| $ 7)
                                            (QREFELT $ 73))))))))
                            (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 (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                          (QREFELT $ 47))
                                "enuf")
                               ('T
                                (SEQ
                                 (LETT |qr|
                                       (SPADCALL
                                        (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                        |pivot| (QREFELT $ 65))
                                       . #7#)
                                 (SPADCALL |x| |k| |j| (QCDR |qr|)
                                           (QREFELT $ 73))
                                 (EXIT
                                  (SEQ (LETT |k1| (+ |j| 1) . #7#)
                                       (LETT #1# (SPADCALL |x| (QREFELT $ 28))
                                             . #7#)
                                       G190 (COND ((> |k1| #1#) #8#))
                                       (SEQ
                                        (EXIT
                                         (SPADCALL |x| |k| |k1|
                                                   (SPADCALL
                                                    (SPADCALL
                                                     (SPADCALL |x| |k| |k1|
                                                               (QREFELT $ 69))
                                                     (SPADCALL (QCAR |qr|)
                                                               (SPADCALL |x|
                                                                         |i|
                                                                         |k1|
                                                                         (QREFELT
                                                                          $
                                                                          69))
                                                               (QREFELT $ 74))
                                                     (QREFELT $ 63))
                                                    |m| (QREFELT $ 53))
                                                   (QREFELT $ 73))))
                                       (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| (+ |j| 1) . #7#) #9# G191 (EXIT NIL)))
       #5# (EXIT #5#))
      (EXIT |x|))))) 

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

(DEFUN |MHROWRED;rowEchelon;MRM;15| (|y| |m| $)
  (PROG (|i| #1=#:G887 |k1| |qr| #2=#:G886 |k| |xij| |jj| |un| |v2| |v1| |a1|
         |b1| |#G94| #3=#:G865 |#G93| |d| |b| |a| |#G92| |x| |rown| #4=#:G883
         |j| |minr| |ncols| |nrows|)
    (RETURN
     (SEQ
      (LETT |x| (|MHROWRED;vconc| |y| |m| $)
            . #5=(|MHROWRED;rowEchelon;MRM;15|))
      (LETT |nrows| (SPADCALL |x| (QREFELT $ 20)) . #5#)
      (LETT |ncols| (SPADCALL |x| (QREFELT $ 37)) . #5#)
      (LETT |minr| (LETT |i| (SPADCALL |x| (QREFELT $ 19)) . #5#) . #5#)
      (SEQ
       (EXIT
        (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 36)) . #5#) G190
             (COND ((> |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 (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                  (|spadConstant| $ 7) (QREFELT $ 9)))
                       (COND
                        ((OR (EQL |rown| (- |minr| 1))
                             (SPADCALL (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                       (SPADCALL |x| |rown| |j| (QREFELT $ 69))
                                       (QREFELT $ 75)))
                         (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 $ 70))
                             . #5#)
                       (SEQ (LETT |k| (+ |i| 1) . #5#) G190
                            (COND ((> |k| |nrows|) #6#))
                            (SEQ
                             (EXIT
                              (COND
                               ((SPADCALL (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                          (QREFELT $ 47))
                                "next k")
                               ('T
                                (SEQ
                                 (PROGN
                                  (LETT |#G92|
                                        (SPADCALL
                                         (SPADCALL |x| |i| |j| (QREFELT $ 69))
                                         (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                         (QREFELT $ 72))
                                        . #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
                                                   (SPADCALL |x| |i| |j|
                                                             (QREFELT $ 69))
                                                   |d| (QREFELT $ 58))
                                                  . #5#)
                                            (QCDR #3#)
                                          (|check-union| (QEQCAR #3# 0)
                                                         (QREFELT $ 6) #3#))
                                        . #5#)
                                  (LETT |#G94|
                                        (PROG2
                                            (LETT #3#
                                                  (SPADCALL
                                                   (SPADCALL |x| |k| |j|
                                                             (QREFELT $ 69))
                                                   |d| (QREFELT $ 58))
                                                  . #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|
                                                         (SPADCALL |x| |i| |k1|
                                                                   (QREFELT $
                                                                            69))
                                                         (QREFELT $ 74))
                                               (SPADCALL |b|
                                                         (SPADCALL |x| |k| |k1|
                                                                   (QREFELT $
                                                                            69))
                                                         (QREFELT $ 74))
                                               (QREFELT $ 62))
                                              |m| (QREFELT $ 53))
                                             . #5#)
                                       (LETT |v2|
                                             (SPADCALL
                                              (SPADCALL
                                               (SPADCALL |b1|
                                                         (SPADCALL |x| |k| |k1|
                                                                   (QREFELT $
                                                                            69))
                                                         (QREFELT $ 74))
                                               (SPADCALL |a1|
                                                         (SPADCALL |x| |i| |k1|
                                                                   (QREFELT $
                                                                            69))
                                                         (QREFELT $ 74))
                                               (QREFELT $ 63))
                                              |m| (QREFELT $ 53))
                                             . #5#)
                                       (SPADCALL |x| |i| |k1| |v1|
                                                 (QREFELT $ 73))
                                       (EXIT
                                        (SPADCALL |x| |k| |k1| |v2|
                                                  (QREFELT $ 73))))
                                      (LETT |k1| (+ |k1| 1) . #5#) #7# G191
                                      (EXIT NIL))
                                 (SPADCALL |x| |i| |j| |d| (QREFELT $ 73))
                                 (EXIT
                                  (SPADCALL |x| |k| |j| (|spadConstant| $ 7)
                                            (QREFELT $ 73))))))))
                            (LETT |k| (+ |k| 1) . #5#) #7# G191 (EXIT NIL))
                       (LETT |un|
                             (SPADCALL (SPADCALL |x| |i| |j| (QREFELT $ 69))
                                       (QREFELT $ 77))
                             . #5#)
                       (SPADCALL |x| |i| |j| (QVELT |un| 1) (QREFELT $ 73))
                       (COND
                        ((NULL
                          (SPADCALL (QVELT |un| 2) (|spadConstant| $ 26)
                                    (QREFELT $ 9)))
                         (SEQ (LETT |jj| (+ |j| 1) . #5#) G190
                              (COND ((> |jj| |ncols|) #6#))
                              (SEQ
                               (EXIT
                                (SPADCALL |x| |i| |jj|
                                          (SPADCALL (QVELT |un| 2)
                                                    (SPADCALL |x| |i| |jj|
                                                              (QREFELT $ 69))
                                                    (QREFELT $ 74))
                                          (QREFELT $ 73))))
                              (LETT |jj| (+ |jj| 1) . #5#) #7# G191
                              (EXIT NIL))))
                       (LETT |xij| (SPADCALL |x| |i| |j| (QREFELT $ 69)) . #5#)
                       (SEQ (LETT |k| |minr| . #5#) (LETT #2# (- |i| 1) . #5#)
                            G190 (COND ((> |k| #2#) #6#))
                            (SEQ
                             (EXIT
                              (COND
                               ((SPADCALL (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                          (QREFELT $ 47))
                                "next k")
                               ('T
                                (SEQ
                                 (LETT |qr|
                                       (SPADCALL
                                        (SPADCALL |x| |k| |j| (QREFELT $ 69))
                                        |xij| (QREFELT $ 65))
                                       . #5#)
                                 (SPADCALL |x| |k| |j| (QCDR |qr|)
                                           (QREFELT $ 73))
                                 (EXIT
                                  (SEQ (LETT |k1| (+ |j| 1) . #5#)
                                       (LETT #1# (SPADCALL |x| (QREFELT $ 28))
                                             . #5#)
                                       G190 (COND ((> |k1| #1#) #6#))
                                       (SEQ
                                        (EXIT
                                         (SPADCALL |x| |k| |k1|
                                                   (SPADCALL
                                                    (SPADCALL
                                                     (SPADCALL |x| |k| |k1|
                                                               (QREFELT $ 69))
                                                     (SPADCALL (QCAR |qr|)
                                                               (SPADCALL |x|
                                                                         |i|
                                                                         |k1|
                                                                         (QREFELT
                                                                          $
                                                                          69))
                                                               (QREFELT $ 74))
                                                     (QREFELT $ 63))
                                                    |m| (QREFELT $ 53))
                                                   (QREFELT $ 73))))
                                       (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| (+ |j| 1) . #5#) #7# G191 (EXIT NIL)))
       #4# (EXIT #4#))
      (EXIT |x|))))) 

(DEFUN |ModularHermitianRowReduction| (#1=#:G888)
  (PROG ()
    (RETURN
     (PROG (#2=#:G889)
       (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 78) . #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 $ 65
                  (CONS (|dispatchFunction| |MHROWRED;normalizedDivide;2RR;10|)
                        $)))
       ('T
        (QSETREFV $ 65
                  (CONS (|dispatchFunction| |MHROWRED;normalizedDivide;2RR;11|)
                        $))))
      (COND
       ((|HasCategory| |#1| '(|Field|))
        (QSETREFV $ 49
                  (CONS (|dispatchFunction| |MHROWRED;rowEchelon;MRM;14|) $)))
       ('T
        (QSETREFV $ 49
                  (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|) (29 . |qelt|)
              (|Matrix| 6) (35 . |minRowIndex|) (40 . |maxRowIndex|)
              (|List| 15) (45 . |member?|) (51 . |row|) (|List| 6)
              (57 . |parts|) (62 . |One|) (|NonNegativeInteger|) (66 . |ncols|)
              (71 . |zero|) (|List| 24) (77 . |matrix|)
              (82 . |removeDuplicates|) (|Set| 15) (87 . |construct|)
              (92 . |brace|) (97 . |minColIndex|) (102 . |maxColIndex|)
              (107 . =) (113 . |nrows|) (118 . |binomial|) (124 . |elt|)
              (131 . |determinant|) (136 . |gcd|) (142 . |minIndex|)
              (147 . |elt|) (153 . |rest|) (159 . |zero?|) (164 . |rowEchelon|)
              (169 . |rowEchelon|) |MHROWRED;rowEch;2M;7| (175 . |new|)
              (181 . |diagonalMatrix|) (186 . |rem|) (|Mapping| 6 6)
              (192 . |map|) (198 . |vertConcat|) (|Union| $ '"failed")
              (204 . |exquo|) (|Record| (|:| |quotient| $) (|:| |remainder| $))
              (210 . |divide|) (216 . <) (222 . +) (228 . -)
              (|Record| (|:| |quotient| 6) (|:| |remainder| 6))
              (234 . |normalizedDivide|) |MHROWRED;rowEchelonLocal;M2RM;13|
              |MHROWRED;rowEchLocal;MRM;12| (240 . ^) (246 . |qelt|)
              (253 . |swapRows!|)
              (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $))
              (260 . |extendedEuclidean|) (266 . |qsetelt!|) (274 . *)
              (280 . |sizeLess?|)
              (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $))
              (286 . |unitNormal|))
           '#(|rowEchelonLocal| 291 |rowEchelon| 298 |rowEchLocal| 304 |rowEch|
              310 |normalizedDivide| 315)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 77
                                                 '(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 2 13 6 0 15 17 1 18
                                                   15 0 19 1 18 15 0 20 2 21 8
                                                   15 0 22 2 18 13 0 15 23 1 13
                                                   24 0 25 0 6 0 26 1 18 27 0
                                                   28 2 18 0 27 27 29 1 18 0 30
                                                   31 1 24 0 0 32 1 33 0 21 34
                                                   1 33 0 21 35 1 18 15 0 36 1
                                                   18 15 0 37 2 33 8 0 0 38 1
                                                   18 27 0 39 2 15 0 0 0 40 3
                                                   18 0 0 21 21 41 1 18 6 0 42
                                                   2 6 0 0 0 43 1 21 15 0 44 2
                                                   21 15 0 15 45 2 21 0 0 27 46
                                                   1 6 8 0 47 1 18 0 0 48 2 0
                                                   18 18 6 49 2 13 0 27 6 51 1
                                                   18 0 13 52 2 6 0 0 0 53 2 18
                                                   0 54 0 55 2 18 0 0 0 56 2 6
                                                   57 0 0 58 2 6 59 0 0 60 2 6
                                                   8 0 0 61 2 6 0 0 0 62 2 6 0
                                                   0 0 63 2 0 64 6 6 65 2 6 0 0
                                                   27 68 3 18 6 0 15 15 69 3 18
                                                   0 0 15 15 70 2 6 71 0 0 72 4
                                                   18 6 0 15 15 6 73 2 6 0 0 0
                                                   74 2 6 8 0 0 75 1 6 76 0 77
                                                   3 0 18 18 6 6 66 2 0 18 18 6
                                                   49 2 0 18 18 6 67 1 0 18 18
                                                   50 2 0 64 6 6 65)))))
           '|lookupComplete|)) 
