
(/VERSIONCHECK 2) 

(DEFUN |ODESYS;solve;MVMU;1| (|mm| |v| |solve| $)
  (PROG (|k| |l| |m| |solVec| #1=#:G711 |s| |nn| |er| |i| #2=#:G710 |sol|
         |SolMatrix| #3=#:G709 |part| |n| |sols| #4=#:G707 |u| #5=#:G708 |e|
         |rec|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |rec| (SPADCALL |mm| |v| (QREFELT $ 14))
              . #6=(|ODESYS;solve;MVMU;1|))
        (LETT |sols| NIL . #6#)
        (SEQ (LETT |e| NIL . #6#) (LETT #5# (QCDR |rec|) . #6#) G190
             (COND
              ((OR (ATOM #5#) (PROGN (LETT |e| (CAR #5#) . #6#) NIL))
               #7=(GO G191)))
             (SEQ
              (LETT |u| (SPADCALL (QVELT |e| 2) (QVELT |e| 3) |solve|) . #6#)
              (EXIT
               (COND
                ((QEQCAR |u| 1)
                 (PROGN (LETT #4# (CONS 1 "failed") . #6#) (GO #4#)))
                ('T (LETT |sols| (CONS (QCDR |u|) |sols|) . #6#)))))
             (LETT #5# (CDR #5#) . #6#) #8=(GO G190) G191 (EXIT NIL))
        (LETT |n| (SPADCALL (QCAR |rec|) (QREFELT $ 16)) . #6#)
        (LETT |k| 0 . #6#) (LETT |i| 0 . #6#) (LETT |m| 0 . #6#)
        (LETT |part| (SPADCALL |n| (|spadConstant| $ 17) (QREFELT $ 19)) . #6#)
        (SEQ (LETT |sol| NIL . #6#) (LETT #3# |sols| . #6#) G190
             (COND
              ((OR (ATOM #3#) (PROGN (LETT |sol| (CAR #3#) . #6#) NIL)) #7#))
             (SEQ
              (EXIT
               (LETT |m|
                     (+ |m|
                        (SPADCALL (CONS #'|ODESYS;solve;MVMU;1!0| $)
                                  (QCDR |sol|) (QREFELT $ 26)))
                     . #6#)))
             (LETT #3# (CDR #3#) . #6#) #8# G191 (EXIT NIL))
        (LETT |SolMatrix|
              (SPADCALL |n| |m| (|spadConstant| $ 17) (QREFELT $ 27)) . #6#)
        (LETT |m| 0 . #6#)
        (SEQ (LETT |sol| NIL . #6#) (LETT #2# (NREVERSE |sols|) . #6#) G190
             (COND
              ((OR (ATOM #2#) (PROGN (LETT |sol| (CAR #2#) . #6#) NIL)) #7#))
             (SEQ (LETT |i| (+ |i| 1) . #6#)
                  (LETT |er| (SPADCALL (QCDR |rec|) |i| (QREFELT $ 32)) . #6#)
                  (LETT |nn| (QVSIZE (QVELT |er| 1)) . #6#)
                  (SEQ (LETT |s| NIL . #6#) (LETT #1# (QCDR |sol|) . #6#) G190
                       (COND
                        ((OR (ATOM #1#) (PROGN (LETT |s| (CAR #1#) . #6#) NIL))
                         #7#))
                       (SEQ
                        (LETT |solVec|
                              (SPADCALL |n| (|spadConstant| $ 17)
                                        (QREFELT $ 19))
                              . #6#)
                        (SPADCALL |solVec| (+ |k| 1) |s| (QREFELT $ 33))
                        (SEQ (LETT |l| 2 . #6#) G190
                             (COND ((QSGREATERP |l| |nn|) #7#))
                             (SEQ
                              (EXIT
                               (SPADCALL |solVec| (+ |k| |l|)
                                         (SPADCALL (QREFELT $ 9)
                                                   (SPADCALL |solVec|
                                                             (- (+ |k| |l|) 1)
                                                             (QREFELT $ 34))
                                                   (QREFELT $ 35))
                                         (QREFELT $ 33))))
                             (LETT |l| (QSADD1 |l|) . #6#) #8# G191 (EXIT NIL))
                        (LETT |m| (+ |m| 1) . #6#)
                        (EXIT
                         (SPADCALL |SolMatrix| |m| |solVec| (QREFELT $ 36))))
                       (LETT #1# (CDR #1#) . #6#) #8# G191 (EXIT NIL))
                  (SPADCALL |part| (+ |k| 1) (QCAR |sol|) (QREFELT $ 33))
                  (SEQ (LETT |l| 2 . #6#) G190
                       (COND ((QSGREATERP |l| |nn|) #7#))
                       (SEQ
                        (EXIT
                         (SPADCALL |part| (+ |k| |l|)
                                   (SPADCALL
                                    (SPADCALL (QREFELT $ 9)
                                              (SPADCALL |part|
                                                        (- (+ |k| |l|) 1)
                                                        (QREFELT $ 34))
                                              (QREFELT $ 35))
                                    (SPADCALL (QVELT |er| 1) (- |l| 1)
                                              (QREFELT $ 34))
                                    (QREFELT $ 37))
                                   (QREFELT $ 33))))
                       (LETT |l| (QSADD1 |l|) . #6#) #8# G191 (EXIT NIL))
                  (EXIT (LETT |k| (+ |k| |nn|) . #6#)))
             (LETT #2# (CDR #2#) . #6#) #8# G191 (EXIT NIL))
        (EXIT
         (CONS 0
               (CONS (SPADCALL (QCAR |rec|) |part| (QREFELT $ 38))
                     (SPADCALL (QCAR |rec|) |SolMatrix| (QREFELT $ 39)))))))
      #4# (EXIT #4#))))) 

(DEFUN |ODESYS;solve;MVMU;1!0| (|f1| $)
  (COND
   ((SPADCALL |f1| (|spadConstant| $ 17) (QREFELT $ 21)) (|spadConstant| $ 22))
   ('T (|spadConstant| $ 23)))) 

(DEFUN |ODESYS;triangulate;MVR;2| (|m| |v| $)
  (PROG (|k| |ler| |h0| |j| #1=#:G729 |sum| |op| #2=#:G728 |n| #3=#:G727 |er|
         |l| |rat|)
    (RETURN
     (SEQ (LETT |k| 0 . #4=(|ODESYS;triangulate;MVR;2|))
          (LETT |rat|
                (SPADCALL |m| (|spadConstant| $ 47)
                          (CONS #'|ODESYS;triangulate;MVR;2!0|
                                (VECTOR $ (QREFELT $ 9)))
                          (QREFELT $ 52))
                . #4#)
          (LETT |l|
                (SPADCALL (QVELT |rat| 0)
                          (SPADCALL (QVELT |rat| 2) |v| (QREFELT $ 38))
                          (QREFELT $ 55))
                . #4#)
          (LETT |ler| NIL . #4#)
          (SEQ (LETT |er| NIL . #4#) (LETT #3# |l| . #4#) G190
               (COND
                ((OR (ATOM #3#) (PROGN (LETT |er| (CAR #3#) . #4#) NIL))
                 #5=(GO G191)))
               (SEQ (LETT |n| (SPADCALL (QCAR |er|) (QREFELT $ 16)) . #4#)
                    (LETT |op| (|spadConstant| $ 18) . #4#)
                    (SEQ (LETT |j| 0 . #4#) (LETT #2# (- |n| 1) . #4#) G190
                         (COND ((QSGREATERP |j| #2#) #5#))
                         (SEQ
                          (EXIT
                           (LETT |op|
                                 (SPADCALL |op|
                                           (SPADCALL
                                            (SPADCALL (QCAR |er|) |n| (+ |j| 1)
                                                      (QREFELT $ 56))
                                            |j| (QREFELT $ 57))
                                           (QREFELT $ 58))
                                 . #4#)))
                         (LETT |j| (QSADD1 |j|) . #4#) #6=(GO G190) G191
                         (EXIT NIL))
                    (LETT |op|
                          (SPADCALL
                           (SPADCALL (|spadConstant| $ 28) |n| (QREFELT $ 57))
                           |op| (QREFELT $ 59))
                          . #4#)
                    (LETT |sum|
                          (SPADCALL |n| (|spadConstant| $ 17) (QREFELT $ 19))
                          . #4#)
                    (SEQ (LETT |j| 1 . #4#) (LETT #1# (- |n| 1) . #4#) G190
                         (COND ((QSGREATERP |j| #1#) #5#))
                         (SEQ
                          (EXIT
                           (SPADCALL |sum| (+ |j| 1)
                                     (SPADCALL
                                      (SPADCALL (QREFELT $ 9)
                                                (SPADCALL |sum| |j|
                                                          (QREFELT $ 34))
                                                (QREFELT $ 35))
                                      (SPADCALL (QCDR |er|) |j| (QREFELT $ 34))
                                      (QREFELT $ 60))
                                     (QREFELT $ 33))))
                         (LETT |j| (QSADD1 |j|) . #4#) #6# G191 (EXIT NIL))
                    (LETT |h0| (|spadConstant| $ 17) . #4#)
                    (SEQ (LETT |j| 1 . #4#) G190
                         (COND ((QSGREATERP |j| |n|) #5#))
                         (SEQ
                          (EXIT
                           (LETT |h0|
                                 (SPADCALL |h0|
                                           (SPADCALL
                                            (SPADCALL (QCAR |er|) |n| |j|
                                                      (QREFELT $ 56))
                                            (SPADCALL |sum| |j| (QREFELT $ 34))
                                            (QREFELT $ 61))
                                           (QREFELT $ 37))
                                 . #4#)))
                         (LETT |j| (QSADD1 |j|) . #4#) #6# G191 (EXIT NIL))
                    (LETT |h0|
                          (SPADCALL
                           (SPADCALL |h0|
                                     (SPADCALL (QREFELT $ 9)
                                               (SPADCALL |sum| |n|
                                                         (QREFELT $ 34))
                                               (QREFELT $ 35))
                                     (QREFELT $ 60))
                           (SPADCALL (QCDR |er|) |n| (QREFELT $ 34))
                           (QREFELT $ 60))
                          . #4#)
                    (LETT |ler|
                          (CONS (VECTOR (QCAR |er|) (QCDR |er|) |op| |h0|)
                                |ler|)
                          . #4#)
                    (EXIT (LETT |k| (+ |k| |n|) . #4#)))
               (LETT #3# (CDR #3#) . #4#) #6# G191 (EXIT NIL))
          (EXIT (CONS (QVELT |rat| 1) |ler|)))))) 

(DEFUN |ODESYS;triangulate;MVR;2!0| (|f1| $$)
  (PROG (|diff| $)
    (LETT |diff| (QREFELT $$ 1) . #1=(|ODESYS;triangulate;MVR;2|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN (SPADCALL (SPADCALL |diff| |f1| (QREFELT $ 35)) (QREFELT $ 48)))))) 

(DEFUN |ODESYS;backsolve| (|m| |v| |solve| $)
  (PROG (|bas| #1=#:G758 |i| #2=#:G757 |n| #3=#:G756 |a| |eq| |c| |r| #4=#:G754
         #5=#:G755 |b| |hom| #6=#:G737 |part| |part?| |u| |dim| #7=#:G735 |rec|
         |offset| |mr|)
    (RETURN
     (SEQ (LETT |r| (SPADCALL |m| (QREFELT $ 63)) . #8=(|ODESYS;backsolve|))
          (LETT |offset|
                (- (SPADCALL |v| (QREFELT $ 64))
                   (LETT |mr| (SPADCALL |m| (QREFELT $ 65)) . #8#))
                . #8#)
          (SEQ G190
               (COND
                ((NULL
                  (COND ((< |r| |mr|) 'NIL)
                        ('T
                         (SPADCALL (ELT $ 66) (SPADCALL |m| |r| (QREFELT $ 68))
                                   (QREFELT $ 70)))))
                 #9=(GO G191)))
               (SEQ (EXIT (LETT |r| (- |r| 1) . #8#))) NIL #10=(GO G190) G191
               (EXIT NIL))
          (EXIT
           (COND ((< |r| |mr|) (|error| "backsolve: system has a 0 matrix"))
                 ((NULL
                   (EQL (LETT |c| (|ODESYS;firstnonzero| |m| |r| $) . #8#)
                        (SPADCALL |m| (QREFELT $ 71))))
                  (|error| "backsolve: undetermined system"))
                 ('T
                  (SEQ
                   (LETT |rec|
                         (SPADCALL (SPADCALL |m| |r| |c| (QREFELT $ 72))
                                   (SPADCALL |v| (+ |r| |offset|)
                                             (QREFELT $ 34))
                                   |solve|)
                         . #8#)
                   (LETT |dim|
                         (PROG1 (LETT #7# (+ (- |r| |mr|) 1) . #8#)
                           (|check-subtype| (>= #7# 0) '(|NonNegativeInteger|)
                                            #7#))
                         . #8#)
                   (SEQ
                    (LETT |part?| (QEQCAR (LETT |u| (QCAR |rec|) . #8#) 0)
                          . #8#)
                    (EXIT
                     (COND
                      (|part?|
                       (SEQ
                        (LETT |part|
                              (SPADCALL |dim| (|spadConstant| $ 17)
                                        (QREFELT $ 19))
                              . #8#)
                        (EXIT
                         (SPADCALL |part| (+ |r| |offset|)
                                   (PROG2
                                       (LETT #6# |u| . #8#)
                                       (QCDR #6#)
                                     (|check-union| (QEQCAR #6# 0)
                                                    (QREFELT $ 6) #6#))
                                   (QREFELT $ 33))))))))
                   (LETT |hom|
                         (SPADCALL |dim| (LENGTH (QCDR |rec|))
                                   (|spadConstant| $ 17) (QREFELT $ 27))
                         . #8#)
                   (SEQ (LETT |b| NIL . #8#) (LETT #5# (QCDR |rec|) . #8#)
                        (LETT |i| (SPADCALL |hom| (QREFELT $ 73)) . #8#)
                        (LETT #4# (SPADCALL |hom| (QREFELT $ 74)) . #8#) G190
                        (COND
                         ((OR (> |i| #4#) (ATOM #5#)
                              (PROGN (LETT |b| (CAR #5#) . #8#) NIL))
                          #9#))
                        (SEQ
                         (EXIT (SPADCALL |hom| |r| |i| |b| (QREFELT $ 75))))
                        (LETT |i| (PROG1 (+ |i| 1) (LETT #5# (CDR #5#) . #8#))
                              . #8#)
                        #10# G191 (EXIT NIL))
                   (LETT |n| 1 . #8#)
                   (SEQ G190 (COND ((NULL (< |mr| |r|)) #9#))
                        (SEQ (LETT |r| (- |r| 1) . #8#)
                             (LETT |c| (- |c| 1) . #8#)
                             (COND
                              ((NULL
                                (EQL (|ODESYS;firstnonzero| |m| |r| $) |c|))
                               (EXIT
                                (|error| "backsolve: undetermined system"))))
                             (EXIT
                              (COND
                               ((< 0
                                   (SPADCALL
                                    (LETT |eq|
                                          (SPADCALL |m| |r| |c| (QREFELT $ 72))
                                          . #8#)
                                    (QREFELT $ 76)))
                                (|error| "backsolve: pivot of order > 0"))
                               ('T
                                (SEQ
                                 (LETT |a| (SPADCALL |eq| (QREFELT $ 77))
                                       . #8#)
                                 (COND
                                  (|part?|
                                   (SPADCALL |part| (+ |r| |offset|)
                                             (SPADCALL
                                              (SPADCALL
                                               (SPADCALL |v| (+ |r| |offset|)
                                                         (QREFELT $ 34))
                                               (|ODESYS;applyLodo| |m| |r|
                                                |part| |n| $)
                                               (QREFELT $ 37))
                                              |a| (QREFELT $ 78))
                                             (QREFELT $ 33))))
                                 (SEQ
                                  (LETT |i| (SPADCALL |hom| (QREFELT $ 73))
                                        . #8#)
                                  (LETT #3# (SPADCALL |hom| (QREFELT $ 74))
                                        . #8#)
                                  G190 (COND ((> |i| #3#) #9#))
                                  (SEQ
                                   (EXIT
                                    (SPADCALL |hom| |r| |i|
                                              (SPADCALL
                                               (|ODESYS;applyLodo0| |m| |r|
                                                |hom| |i| |n| $)
                                               (QREFELT $ 48))
                                              (QREFELT $ 75))))
                                  (LETT |i| (+ |i| 1) . #8#) #10# G191
                                  (EXIT NIL))
                                 (EXIT (LETT |n| (+ |n| 1) . #8#)))))))
                        NIL #10# G191 (EXIT NIL))
                   (LETT |bas|
                         (PROGN
                          (LETT #2# NIL . #8#)
                          (SEQ (LETT |i| (SPADCALL |hom| (QREFELT $ 73)) . #8#)
                               (LETT #1# (SPADCALL |hom| (QREFELT $ 74)) . #8#)
                               G190 (COND ((> |i| #1#) #9#))
                               (SEQ
                                (EXIT
                                 (LETT #2#
                                       (CONS
                                        (SPADCALL |hom| |i| (QREFELT $ 79))
                                        #2#)
                                       . #8#)))
                               (LETT |i| (+ |i| 1) . #8#) #10# G191
                               (EXIT (NREVERSE0 #2#))))
                         . #8#)
                   (EXIT
                    (COND (|part?| (CONS (CONS 0 |part|) |bas|))
                          ('T (CONS (CONS 1 "failed") |bas|)))))))))))) 

(DEFUN |ODESYS;solveInField;MVMR;4| (|m| |v| |solve| $)
  (PROG (|rec| #1=#:G783 #2=#:G797 |i| #3=#:G796 |rc| |uu| |u| #4=#:G795
         #5=#:G794 |n|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((EQL
           (LETT |n| (SPADCALL |m| (QREFELT $ 80))
                 . #6=(|ODESYS;solveInField;MVMR;4|))
           (SPADCALL |m| (QREFELT $ 81)))
          (SEQ
           (LETT |u|
                 (|ODESYS;M2F|
                  (SPADCALL
                   (SPADCALL
                    (PROGN
                     (LETT #5# (GETREFV |n|) . #6#)
                     (SEQ (LETT #4# 0 . #6#) (LETT |i| 1 . #6#) G190
                          (COND ((QSGREATERP |i| |n|) #7=(GO G191)))
                          (SEQ (EXIT (SETELT #5# #4# (QREFELT $ 9))))
                          (LETT |i|
                                (PROG1 (QSADD1 |i|)
                                  (LETT #4# (QSADD1 #4#) . #6#))
                                . #6#)
                          #8=(GO G190) G191 (EXIT NIL))
                     #5#)
                    (QREFELT $ 82))
                   |m| (QREFELT $ 83))
                  $)
                 . #6#)
           (EXIT
            (COND
             ((QEQCAR |u| 0)
              (PROGN
               (LETT #1#
                     (SEQ
                      (LETT |uu|
                            (SPADCALL (QCDR |u|) |v|
                                      (CONS #'|ODESYS;solveInField;MVMR;4!0|
                                            (VECTOR $ |solve|))
                                      (QREFELT $ 45))
                            . #6#)
                      (EXIT
                       (COND ((QEQCAR |uu| 1) (CONS (CONS 1 "failed") NIL))
                             ('T
                              (SEQ (LETT |rc| (QCDR |uu|) . #6#)
                                   (EXIT
                                    (CONS (CONS 0 (QCAR |rc|))
                                          (PROGN
                                           (LETT #3# NIL . #6#)
                                           (SEQ (LETT |i| 1 . #6#)
                                                (LETT #2#
                                                      (SPADCALL (QCDR |rc|)
                                                                (QREFELT $ 84))
                                                      . #6#)
                                                G190
                                                (COND
                                                 ((QSGREATERP |i| #2#) #7#))
                                                (SEQ
                                                 (EXIT
                                                  (LETT #3#
                                                        (CONS
                                                         (SPADCALL (QCDR |rc|)
                                                                   |i|
                                                                   (QREFELT $
                                                                            79))
                                                         #3#)
                                                        . #6#)))
                                                (LETT |i| (QSADD1 |i|) . #6#)
                                                #8# G191
                                                (EXIT (NREVERSE0 #3#)))))))))))
                     . #6#)
               (GO #1#))))))))
        (LETT |rec| (SPADCALL |m| |v| (QREFELT $ 86)) . #6#)
        (EXIT (|ODESYS;backsolve| (QCAR |rec|) (QCDR |rec|) |solve| $))))
      #1# (EXIT #1#))))) 

(DEFUN |ODESYS;solveInField;MVMR;4!0| (|l1| |f2| $$)
  (PROG (|solve| $)
    (LETT |solve| (QREFELT $$ 1) . #1=(|ODESYS;solveInField;MVMR;4|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (|ODESYS;FSL2USL| (SPADCALL |l1| |f2| |solve|) $))))) 

(DEFUN |ODESYS;M2F| (|m| $)
  (PROG (#1=#:G808 |u| #2=#:G810 |j| #3=#:G809 |i| |mf|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |mf|
              (SPADCALL (SPADCALL |m| (QREFELT $ 80))
                        (SPADCALL |m| (QREFELT $ 81)) (|spadConstant| $ 17)
                        (QREFELT $ 27))
              . #4=(|ODESYS;M2F|))
        (SEQ (LETT |i| (SPADCALL |m| (QREFELT $ 65)) . #4#)
             (LETT #3# (SPADCALL |m| (QREFELT $ 63)) . #4#) G190
             (COND ((> |i| #3#) #5=(GO G191)))
             (SEQ
              (EXIT
               (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 93)) . #4#)
                    (LETT #2# (SPADCALL |m| (QREFELT $ 71)) . #4#) G190
                    (COND ((> |j| #2#) #5#))
                    (SEQ
                     (LETT |u|
                           (SPADCALL (SPADCALL |m| |i| |j| (QREFELT $ 72))
                                     (QREFELT $ 94))
                           . #4#)
                     (EXIT
                      (COND
                       ((QEQCAR |u| 1)
                        (PROGN (LETT #1# (CONS 1 "failed") . #4#) (GO #1#)))
                       ('T
                        (SPADCALL |mf| |i| |j| (QCDR |u|) (QREFELT $ 75))))))
                    (LETT |j| (+ |j| 1) . #4#) #6=(GO G190) G191 (EXIT NIL))))
             (LETT |i| (+ |i| 1) . #4#) #6# G191 (EXIT NIL))
        (EXIT (CONS 0 |mf|))))
      #1# (EXIT #1#))))) 

(DEFUN |ODESYS;FSL2USL| (|rec| $)
  (PROG (#1=#:G817)
    (RETURN
     (COND ((QEQCAR (QCAR |rec|) 1) (CONS 1 "failed"))
           ('T
            (CONS 0
                  (CONS
                   (PROG2
                       (LETT #1# (QCAR |rec|) |ODESYS;FSL2USL|)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0) (QREFELT $ 6) #1#))
                   (QCDR |rec|)))))))) 

(DEFUN |ODESYS;firstnonzero| (|m| |r| $)
  (PROG (#1=#:G822 #2=#:G824 #3=#:G825 |c|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (SEQ
         (EXIT
          (SEQ
           (LETT |c| (SPADCALL |m| (QREFELT $ 93))
                 . #4=(|ODESYS;firstnonzero|))
           (LETT #3# (SPADCALL |m| (QREFELT $ 71)) . #4#) G190
           (COND ((> |c| #3#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((NULL
                (SPADCALL (SPADCALL |m| |r| |c| (QREFELT $ 72))
                          (|spadConstant| $ 18) (QREFELT $ 95)))
               (PROGN
                (LETT #1# (PROGN (LETT #2# |c| . #4#) (GO #2#)) . #4#)
                (GO #1#))))))
           (LETT |c| (+ |c| 1) . #4#) (GO G190) G191 (EXIT NIL)))
         #1# (EXIT #1#))
        (EXIT (|error| "firstnonzero: zero row"))))
      #2# (EXIT #2#))))) 

(DEFUN |ODESYS;applyLodo| (|m| |r| |v| |n| $)
  (PROG (|cv| |c| |ans| |i|)
    (RETURN
     (SEQ (LETT |ans| (|spadConstant| $ 17) . #1=(|ODESYS;applyLodo|))
          (LETT |c| (SPADCALL |m| (QREFELT $ 71)) . #1#)
          (LETT |cv| (QVSIZE |v|) . #1#)
          (SEQ (LETT |i| 1 . #1#) G190 (COND ((QSGREATERP |i| |n|) (GO G191)))
               (SEQ
                (LETT |ans|
                      (SPADCALL |ans|
                                (SPADCALL (SPADCALL |m| |r| |c| (QREFELT $ 72))
                                          (SPADCALL |v| |cv| (QREFELT $ 34))
                                          (QREFELT $ 35))
                                (QREFELT $ 60))
                      . #1#)
                (LETT |c| (- |c| 1) . #1#) (EXIT (LETT |cv| (- |cv| 1) . #1#)))
               (LETT |i| (QSADD1 |i|) . #1#) (GO G190) G191 (EXIT NIL))
          (EXIT |ans|))))) 

(DEFUN |ODESYS;applyLodo0| (|m| |r| |mm| |c| |n| $)
  (PROG (|rr| |cc| |ans| |i|)
    (RETURN
     (SEQ (LETT |ans| (|spadConstant| $ 17) . #1=(|ODESYS;applyLodo0|))
          (LETT |rr| (SPADCALL |mm| (QREFELT $ 96)) . #1#)
          (LETT |cc| (SPADCALL |m| (QREFELT $ 71)) . #1#)
          (SEQ (LETT |i| 1 . #1#) G190 (COND ((QSGREATERP |i| |n|) (GO G191)))
               (SEQ
                (LETT |ans|
                      (SPADCALL |ans|
                                (SPADCALL
                                 (SPADCALL |m| |r| |cc| (QREFELT $ 72))
                                 (SPADCALL |mm| |rr| |c| (QREFELT $ 56))
                                 (QREFELT $ 35))
                                (QREFELT $ 60))
                      . #1#)
                (LETT |cc| (- |cc| 1) . #1#)
                (EXIT (LETT |rr| (- |rr| 1) . #1#)))
               (LETT |i| (QSADD1 |i|) . #1#) (GO G190) G191 (EXIT NIL))
          (EXIT |ans|))))) 

(DEFUN |ODESYS;triangulate;MVR;10| (|m| |v| $)
  (PROG (|i| |k1| |b| |a| |l| |k| |x| |rown| #1=#:G846 |j| |offset| |minr|
         |ncols| |nrows| |w|)
    (RETURN
     (SEQ
      (LETT |x| (SPADCALL |m| (QREFELT $ 97))
            . #2=(|ODESYS;triangulate;MVR;10|))
      (LETT |w| (SPADCALL |v| (QREFELT $ 98)) . #2#)
      (LETT |nrows| (SPADCALL |x| (QREFELT $ 63)) . #2#)
      (LETT |ncols| (SPADCALL |x| (QREFELT $ 71)) . #2#)
      (LETT |minr| (LETT |i| (SPADCALL |x| (QREFELT $ 65)) . #2#) . #2#)
      (LETT |offset| (- (SPADCALL |w| (QREFELT $ 64)) |minr|) . #2#)
      (SEQ
       (EXIT
        (SEQ (LETT |j| (SPADCALL |x| (QREFELT $ 93)) . #2#) G190
             (COND ((> |j| |ncols|) #3=(GO G191)))
             (SEQ
              (COND ((< |nrows| |i|) (PROGN (LETT #1# |x| . #2#) (GO #1#))))
              (LETT |rown| (- |minr| 1) . #2#)
              (SEQ (LETT |k| |i| . #2#) G190 (COND ((> |k| |nrows|) #3#))
                   (SEQ
                    (COND
                     ((NULL
                       (SPADCALL (SPADCALL |x| |k| |j| (QREFELT $ 72))
                                 (|spadConstant| $ 18) (QREFELT $ 95)))
                      (COND
                       ((OR (EQL |rown| (- |minr| 1))
                            (<
                             (SPADCALL (SPADCALL |x| |k| |j| (QREFELT $ 72))
                                       (QREFELT $ 76))
                             (SPADCALL (SPADCALL |x| |rown| |j| (QREFELT $ 72))
                                       (QREFELT $ 76))))
                        (LETT |rown| |k| . #2#)))))
                    (EXIT
                     (COND ((EQL |rown| (- |minr| 1)) "enuf")
                           ('T
                            (SEQ
                             (LETT |x| (SPADCALL |x| |i| |rown| (QREFELT $ 99))
                                   . #2#)
                             (EXIT
                              (SPADCALL |w| (+ |i| |offset|)
                                        (+ |rown| |offset|)
                                        (QREFELT $ 101))))))))
                   (LETT |k| (+ |k| 1) . #2#) #4=(GO G190) G191 (EXIT NIL))
              (SEQ (LETT |k| (+ |i| 1) . #2#) G190 (COND ((> |k| |nrows|) #3#))
                   (SEQ
                    (EXIT
                     (COND
                      ((COND
                        ((SPADCALL (SPADCALL |x| |k| |j| (QREFELT $ 72))
                                   (|spadConstant| $ 18) (QREFELT $ 95))
                         'NIL)
                        ('T 'T))
                       (SEQ
                        (LETT |l|
                              (SPADCALL (SPADCALL |x| |i| |j| (QREFELT $ 72))
                                        (SPADCALL |x| |k| |j| (QREFELT $ 72))
                                        (QREFELT $ 102))
                              . #2#)
                        (LETT |a|
                              (SPADCALL |l|
                                        (SPADCALL |x| |i| |j| (QREFELT $ 72))
                                        (QREFELT $ 103))
                              . #2#)
                        (LETT |b|
                              (SPADCALL |l|
                                        (SPADCALL |x| |k| |j| (QREFELT $ 72))
                                        (QREFELT $ 103))
                              . #2#)
                        (SEQ (LETT |k1| (+ |j| 1) . #2#) G190
                             (COND ((> |k1| |ncols|) #3#))
                             (SEQ
                              (EXIT
                               (SPADCALL |x| |k| |k1|
                                         (SPADCALL
                                          (SPADCALL |a|
                                                    (SPADCALL |x| |i| |k1|
                                                              (QREFELT $ 72))
                                                    (QREFELT $ 104))
                                          (SPADCALL |b|
                                                    (SPADCALL |x| |k| |k1|
                                                              (QREFELT $ 72))
                                                    (QREFELT $ 104))
                                          (QREFELT $ 59))
                                         (QREFELT $ 105))))
                             (LETT |k1| (+ |k1| 1) . #2#) #4# G191 (EXIT NIL))
                        (SPADCALL |x| |k| |j| (|spadConstant| $ 18)
                                  (QREFELT $ 105))
                        (EXIT
                         (SPADCALL |w| (+ |k| |offset|)
                                   (SPADCALL
                                    (SPADCALL |a|
                                              (SPADCALL |w| (+ |i| |offset|)
                                                        (QREFELT $ 34))
                                              (QREFELT $ 35))
                                    (SPADCALL |b|
                                              (SPADCALL |w| (+ |k| |offset|)
                                                        (QREFELT $ 34))
                                              (QREFELT $ 35))
                                    (QREFELT $ 37))
                                   (QREFELT $ 33))))))))
                   (LETT |k| (+ |k| 1) . #2#) #4# G191 (EXIT NIL))
              (EXIT (LETT |i| (+ |i| 1) . #2#)))
             (LETT |j| (+ |j| 1) . #2#) #4# G191 (EXIT NIL)))
       #1# (EXIT #1#))
      (EXIT (CONS |x| |w|)))))) 

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

(DEFUN |SystemODESolver;| (|#1| |#2|)
  (PROG (|pv$| $ |dv$| DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|SystemODESolver|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT |dv$| (LIST '|SystemODESolver| DV$1 DV$2) . #1#)
      (LETT $ (GETREFV 106) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|SystemODESolver| (LIST DV$1 DV$2)
                  (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 9 (SPADCALL (QREFELT $ 8)))
      $)))) 

(MAKEPROP '|SystemODESolver| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (0 . D)
              '|diff|
              (|Record| (|:| C 12) (|:| |g| 13) (|:| |eq| 7) (|:| |rh| 6))
              (|Record| (|:| A 12) (|:| |eqs| 31)) (|Matrix| 6) (|Vector| 6)
              |ODESYS;triangulate;MVR;2| (|NonNegativeInteger|) (4 . |nrows|)
              (9 . |Zero|) (13 . |Zero|) (17 . |new|) (|Boolean|) (23 . =)
              (29 . |false|) (33 . |true|) (|Mapping| 20 6) (|List| 6)
              (37 . |count|) (43 . |new|) (50 . |One|) (54 . |One|) (|Integer|)
              (|List| 10) (58 . |elt|) (64 . |setelt|) (71 . |elt|)
              (77 . |elt|) (83 . |setColumn!|) (90 . -) (96 . *) (102 . *)
              (|Record| (|:| |particular| 13) (|:| |basis| 12))
              (|Union| 40 '"failed")
              (|Record| (|:| |particular| 6) (|:| |basis| 25))
              (|Union| 42 '"failed") (|Mapping| 43 7 6) |ODESYS;solve;MVMU;1|
              (|Automorphism| 6) (108 . |One|) (112 . -)
              (|Record| (|:| R 12) (|:| A 12) (|:| |Ainv| 12)) (|Mapping| 6 6)
              (|PseudoLinearNormalForm| 6) (117 . |normalForm|)
              (|Record| (|:| C 12) (|:| |g| 13)) (|List| 53)
              (124 . |companionBlocks|) (130 . |elt|) (137 . |monomial|)
              (143 . +) (149 . -) (155 . +) (161 . *) (|Matrix| 7)
              (167 . |maxRowIndex|) (172 . |minIndex|) (177 . |minRowIndex|)
              (182 . |zero?|) (|Vector| 7) (187 . |row|) (|Mapping| 20 7)
              (193 . |every?|) (199 . |maxColIndex|) (204 . |elt|)
              (211 . |minColIndex|) (216 . |maxColIndex|) (221 . |setelt|)
              (229 . |degree|) (234 . |leadingCoefficient|) (239 . /)
              (245 . |column|) (251 . |nrows|) (256 . |ncols|)
              (261 . |diagonalMatrix|) (266 . -) (272 . |ncols|)
              (|Record| (|:| |mat| 62) (|:| |vec| 13))
              |ODESYS;triangulate;MVR;10| (|Union| 13 '"failed")
              (|Record| (|:| |particular| 87) (|:| |basis| (|List| 13)))
              (|Union| 6 '"failed")
              (|Record| (|:| |particular| 89) (|:| |basis| 25))
              (|Mapping| 90 7 6) |ODESYS;solveInField;MVMR;4|
              (277 . |minColIndex|) (282 . |retractIfCan|) (287 . =)
              (293 . |maxRowIndex|) (298 . |copy|) (303 . |copy|)
              (308 . |swapRows!|) (|Void|) (315 . |swap!|) (322 . |rightLcm|)
              (328 . |rightQuotient|) (334 . *) (340 . |setelt|))
           '#(|triangulate| 348 |solveInField| 360 |solve| 367) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 105
                                                 '(0 7 0 8 1 12 15 0 16 0 6 0
                                                   17 0 7 0 18 2 13 0 15 6 19 2
                                                   6 20 0 0 21 0 20 0 22 0 20 0
                                                   23 2 25 15 24 0 26 3 12 0 15
                                                   15 6 27 0 6 0 28 0 7 0 29 2
                                                   31 10 0 30 32 3 13 6 0 30 6
                                                   33 2 13 6 0 30 34 2 7 6 0 6
                                                   35 3 12 0 0 30 13 36 2 6 0 0
                                                   0 37 2 12 13 0 13 38 2 12 0
                                                   0 0 39 0 46 0 47 1 6 0 0 48
                                                   3 51 49 12 46 50 52 2 51 54
                                                   12 13 55 3 12 6 0 30 30 56 2
                                                   7 0 6 15 57 2 7 0 0 0 58 2 7
                                                   0 0 0 59 2 6 0 0 0 60 2 6 0
                                                   0 0 61 1 62 30 0 63 1 13 30
                                                   0 64 1 62 30 0 65 1 7 20 0
                                                   66 2 62 67 0 30 68 2 67 20
                                                   69 0 70 1 62 30 0 71 3 62 7
                                                   0 30 30 72 1 12 30 0 73 1 12
                                                   30 0 74 4 12 6 0 30 30 6 75
                                                   1 7 15 0 76 1 7 6 0 77 2 6 0
                                                   0 0 78 2 12 13 0 30 79 1 62
                                                   15 0 80 1 62 15 0 81 1 62 0
                                                   67 82 2 62 0 0 0 83 1 12 15
                                                   0 84 1 62 30 0 93 1 7 89 0
                                                   94 2 7 20 0 0 95 1 12 30 0
                                                   96 1 62 0 0 97 1 13 0 0 98 3
                                                   62 0 0 30 30 99 3 13 100 0
                                                   30 30 101 2 7 0 0 0 102 2 7
                                                   0 0 0 103 2 7 0 0 0 104 4 62
                                                   7 0 30 30 7 105 2 0 85 62 13
                                                   86 2 0 11 12 13 14 3 0 88 62
                                                   13 91 92 3 0 41 12 13 44
                                                   45)))))
           '|lookupComplete|)) 
