
(/VERSIONCHECK 2) 

(DEFUN |ODEPRRIC;lambda| (|c| |l| $)
  (PROG ()
    (RETURN
     (|ODEPRRIC;innerlb| |l| (CONS #'|ODEPRRIC;lambda!0| (VECTOR $ |c|)) $)))) 

(DEFUN |ODEPRRIC;lambda!0| (|z| $$)
  (PROG (|c| $)
    (LETT |c| (QREFELT $$ 1) . #1=(|ODEPRRIC;lambda|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL |z| |c| (QREFELT $ 15)))))) 

(DEFUN |ODEPRRIC;infLambda| (|l| $)
  (|ODEPRRIC;innerlb| |l| (CONS #'|ODEPRRIC;infLambda!0| $) $)) 

(DEFUN |ODEPRRIC;infLambda!0| (|z| $)
  (SPADCALL (SPADCALL |z| (QREFELT $ 16)) (QREFELT $ 18))) 

(DEFUN |ODEPRRIC;infmax| (|rec| |l| $)
  (|ODEPRRIC;innermax| |rec| |l| (ELT $ 16) $)) 

(DEFUN |ODEPRRIC;dmax| (|rec| |c| |l| $)
  (PROG ()
    (RETURN
     (|ODEPRRIC;innermax| |rec| |l| (CONS #'|ODEPRRIC;dmax!0| (VECTOR $ |c|))
      $)))) 

(DEFUN |ODEPRRIC;dmax!0| (|z| $$)
  (PROG (|c| $)
    (LETT |c| (QREFELT $$ 1) . #1=(|ODEPRRIC;dmax|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN (SPADCALL (SPADCALL |z| |c| (QREFELT $ 15)) (QREFELT $ 18)))))) 

(DEFUN |ODEPRRIC;tau0| (|p| |q| $)
  (PROG (#1=#:G1829)
    (RETURN
     (SPADCALL
      (PROG2
          (LETT #1#
                (SPADCALL |q|
                          (SPADCALL |p| (SPADCALL |q| |p| (QREFELT $ 15))
                                    (QREFELT $ 19))
                          (QREFELT $ 21))
                |ODEPRRIC;tau0|)
          (QCDR #1#)
        (|check-union| (QEQCAR #1# 0) (QREFELT $ 7) #1#))
      |p| (QREFELT $ 22))))) 

(DEFUN |ODEPRRIC;poly1| (|c| |cp| |i| $)
  (PROG (#1=#:G1834 #2=#:G1833 #3=#:G1835 #4=#:G1840 |j|)
    (RETURN
     (SEQ
      (PROGN
       (LETT #1# NIL . #5=(|ODEPRRIC;poly1|))
       (SEQ (LETT |j| 0 . #5#) (LETT #4# (- |i| 1) . #5#) G190
            (COND ((QSGREATERP |j| #4#) (GO G191)))
            (SEQ
             (EXIT
              (PROGN
               (LETT #3#
                     (SPADCALL
                      (SPADCALL (|spadConstant| $ 24) 1 (QREFELT $ 26))
                      (SPADCALL (SPADCALL |j| |cp| (QREFELT $ 27))
                                (QREFELT $ 28))
                      (QREFELT $ 29))
                     . #5#)
               (COND (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 30)) . #5#))
                     ('T (PROGN (LETT #2# #3# . #5#) (LETT #1# 'T . #5#)))))))
            (LETT |j| (QSADD1 |j|) . #5#) (GO G190) G191 (EXIT NIL))
       (COND (#1# #2#) ('T (|spadConstant| $ 31)))))))) 

(DEFUN |ODEPRRIC;getIndices| (|n| |l| $)
  (PROG (#1=#:G1857 |r| #2=#:G1856)
    (RETURN
     (SEQ
      (SPADCALL
       (SPADCALL
        (PROGN
         (LETT #2# NIL . #3=(|ODEPRRIC;getIndices|))
         (SEQ (LETT |r| NIL . #3#) (LETT #1# |l| . #3#) G190
              (COND
               ((OR (ATOM #1#) (PROGN (LETT |r| (CAR #1#) . #3#) NIL))
                (GO G191)))
              (SEQ
               (EXIT
                (COND
                 ((EQL (QCDR |r|) |n|)
                  (LETT #2# (CONS (QCAR |r|) #2#) . #3#)))))
              (LETT #1# (CDR #1#) . #3#) (GO G190) G191
              (EXIT (NREVERSE0 #2#))))
        (QREFELT $ 34))
       (QREFELT $ 35)))))) 

(DEFUN |ODEPRRIC;denomRicDE;LUP;8| (|l| $)
  (PROG (#1=#:G1859 #2=#:G1858 #3=#:G1860 #4=#:G1862 |c|)
    (RETURN
     (SEQ
      (PROGN
       (LETT #1# NIL . #5=(|ODEPRRIC;denomRicDE;LUP;8|))
       (SEQ (LETT |c| NIL . #5#)
            (LETT #4# (|ODEPRRIC;factoredDenomRicDE| |l| $) . #5#) G190
            (COND
             ((OR (ATOM #4#) (PROGN (LETT |c| (CAR #4#) . #5#) NIL))
              (GO G191)))
            (SEQ
             (EXIT
              (PROGN
               (LETT #3#
                     (SPADCALL |c| (|ODEPRRIC;bound| |c| |l| $) (QREFELT $ 19))
                     . #5#)
               (COND (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 36)) . #5#))
                     ('T (PROGN (LETT #2# #3# . #5#) (LETT #1# 'T . #5#)))))))
            (LETT #4# (CDR #4#) . #5#) (GO G190) G191 (EXIT NIL))
       (COND (#1# #2#) ('T (|spadConstant| $ 24)))))))) 

(DEFUN |ODEPRRIC;polyRicDE;LML;9| (|l| |zeros| $)
  (CONS (CONS (|spadConstant| $ 39) |l|)
        (|ODEPRRIC;polysol| |l| 0 'NIL |zeros| $))) 

(DEFUN |ODEPRRIC;refine| (|l| |ezfactor| $)
  (PROG (#1=#:G1882 |r| #2=#:G1881 #3=#:G1880 |p| #4=#:G1879)
    (RETURN
     (SEQ
      (SPADCALL
       (PROGN
        (LETT #4# NIL . #5=(|ODEPRRIC;refine|))
        (SEQ (LETT |p| NIL . #5#) (LETT #3# |l| . #5#) G190
             (COND
              ((OR (ATOM #3#) (PROGN (LETT |p| (CAR #3#) . #5#) NIL))
               #6=(GO G191)))
             (SEQ
              (EXIT
               (LETT #4#
                     (CONS
                      (PROGN
                       (LETT #2# NIL . #5#)
                       (SEQ (LETT |r| NIL . #5#)
                            (LETT #1#
                                  (SPADCALL (SPADCALL |p| |ezfactor|)
                                            (QREFELT $ 49))
                                  . #5#)
                            G190
                            (COND
                             ((OR (ATOM #1#)
                                  (PROGN (LETT |r| (CAR #1#) . #5#) NIL))
                              #6#))
                            (SEQ (EXIT (LETT #2# (CONS (QCAR |r|) #2#) . #5#)))
                            (LETT #1# (CDR #1#) . #5#) #7=(GO G190) G191
                            (EXIT (NREVERSE0 #2#))))
                      #4#)
                     . #5#)))
             (LETT #3# (CDR #3#) . #5#) #7# G191 (EXIT (NREVERSE0 #4#))))
       (QREFELT $ 51)))))) 

(DEFUN |ODEPRRIC;padicsol| (|c| |op| |b| |finite?| |zeros| $)
  (PROG (|ans| #1=#:G1907 |sol| #2=#:G1906 |sols| #3=#:G1891 |neweq| |rcn|
         #4=#:G1905 |r| #5=#:G1904 |rec| |lc|)
    (RETURN
     (SEQ (LETT |ans| NIL . #6=(|ODEPRRIC;padicsol|))
          (COND (|finite?| (COND ((ZEROP |b|) (EXIT |ans|)))))
          (LETT |lc| (|ODEPRRIC;leadingDenomRicDE| |c| |op| $) . #6#)
          (COND
           (|finite?|
            (LETT |lc|
                  (SPADCALL (CONS #'|ODEPRRIC;padicsol!0| (VECTOR $ |b|)) |lc|
                            (QREFELT $ 59))
                  . #6#)))
          (SEQ (LETT |rec| NIL . #6#) (LETT #5# |lc| . #6#) G190
               (COND
                ((OR (ATOM #5#) (PROGN (LETT |rec| (CAR #5#) . #6#) NIL))
                 #7=(GO G191)))
               (SEQ
                (EXIT
                 (SEQ (LETT |r| NIL . #6#)
                      (LETT #4# (SPADCALL |c| (QCDR |rec|) |zeros|) . #6#) G190
                      (COND
                       ((OR (ATOM #4#) (PROGN (LETT |r| (CAR #4#) . #6#) NIL))
                        #7#))
                      (SEQ
                       (EXIT
                        (COND
                         ((COND
                           ((SPADCALL |r| (|spadConstant| $ 39) (QREFELT $ 60))
                            'NIL)
                           ('T 'T))
                          (SEQ
                           (LETT |rcn|
                                 (SPADCALL |r|
                                           (SPADCALL |c| (QCAR |rec|)
                                                     (QREFELT $ 19))
                                           (QREFELT $ 62))
                                 . #6#)
                           (LETT |neweq| (SPADCALL |op| |rcn| (QREFELT $ 63))
                                 . #6#)
                           (LETT |sols|
                                 (|ODEPRRIC;padicsol| |c| |neweq|
                                  (PROG1 (LETT #3# (- (QCAR |rec|) 1) . #6#)
                                    (|check-subtype| (>= #3# 0)
                                                     '(|NonNegativeInteger|)
                                                     #3#))
                                  'T |zeros| $)
                                 . #6#)
                           (EXIT
                            (LETT |ans|
                                  (COND
                                   ((NULL |sols|)
                                    (CONS (CONS |rcn| |neweq|) |ans|))
                                   ('T
                                    (SPADCALL
                                     (PROGN
                                      (LETT #2# NIL . #6#)
                                      (SEQ (LETT |sol| NIL . #6#)
                                           (LETT #1# |sols| . #6#) G190
                                           (COND
                                            ((OR (ATOM #1#)
                                                 (PROGN
                                                  (LETT |sol| (CAR #1#) . #6#)
                                                  NIL))
                                             #7#))
                                           (SEQ
                                            (EXIT
                                             (LETT #2#
                                                   (CONS
                                                    (CONS
                                                     (SPADCALL |rcn|
                                                               (QCAR |sol|)
                                                               (QREFELT $ 64))
                                                     (QCDR |sol|))
                                                    #2#)
                                                   . #6#)))
                                           (LETT #1# (CDR #1#) . #6#)
                                           #8=(GO G190) G191
                                           (EXIT (NREVERSE0 #2#))))
                                     |ans| (QREFELT $ 67))))
                                  . #6#)))))))
                      (LETT #4# (CDR #4#) . #6#) #8# G191 (EXIT NIL))))
               (LETT #5# (CDR #5#) . #6#) #8# G191 (EXIT NIL))
          (EXIT |ans|))))) 

(DEFUN |ODEPRRIC;padicsol!0| (|z| $$)
  (PROG (|b| $)
    (LETT |b| (QREFELT $$ 1) . #1=(|ODEPRRIC;padicsol|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (COND ((SPADCALL |b| (QCAR |z|) (QREFELT $ 53)) (|spadConstant| $ 54))
            ('T (|spadConstant| $ 55))))))) 

(DEFUN |ODEPRRIC;leadingDenomRicDE| (|c| |l| $)
  (PROG (|done| |ans| |ind| #1=#:G1919 |rec| |lb|)
    (RETURN
     (SEQ
      (LETT |lb| (|ODEPRRIC;lambda| |c| |l| $)
            . #2=(|ODEPRRIC;leadingDenomRicDE|))
      (LETT |done| NIL . #2#) (LETT |ans| NIL . #2#)
      (SEQ (LETT |rec| NIL . #2#) (LETT #1# |lb| . #2#) G190
           (COND
            ((OR (ATOM #1#) (PROGN (LETT |rec| (CAR #1#) . #2#) NIL))
             (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((COND
                ((OR (SPADCALL (QCDR |rec|) |done| (QREFELT $ 69))
                     (NULL
                      (LETT |ind| (|ODEPRRIC;dmax| |rec| |c| |l| $) . #2#)))
                 'NIL)
                ('T 'T))
               (SEQ
                (LETT |ans|
                      (CONS
                       (CONS (QCDR |rec|)
                             (|ODEPRRIC;getPol| |rec| |c| |l| |ind| $))
                       |ans|)
                      . #2#)
                (EXIT (LETT |done| (CONS (QCDR |rec|) |done|) . #2#)))))))
           (LETT #1# (CDR #1#) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT
       (SPADCALL (CONS #'|ODEPRRIC;leadingDenomRicDE!0| $) |ans|
                 (QREFELT $ 71))))))) 

(DEFUN |ODEPRRIC;leadingDenomRicDE!0| (|z1| |z2| $)
  (SPADCALL (QCAR |z2|) (QCAR |z1|) (QREFELT $ 53))) 

(DEFUN |ODEPRRIC;getPol| (|rec| |c| |l| |ind| $)
  (PROG (#1=#:G1922 #2=#:G1921 #3=#:G1923 #4=#:G1925 #5=#:G1924 #6=#:G1928 |i|)
    (RETURN
     (SEQ
      (COND ((EQL (QCDR |rec|) 1) (|ODEPRRIC;getPol1| |ind| |c| |l| $))
            (#7='T
             (PROGN
              (LETT #1# NIL . #8=(|ODEPRRIC;getPol|))
              (SEQ (LETT |i| NIL . #8#) (LETT #6# |ind| . #8#) G190
                   (COND
                    ((OR (ATOM #6#) (PROGN (LETT |i| (CAR #6#) . #8#) NIL))
                     (GO G191)))
                   (SEQ
                    (EXIT
                     (PROGN
                      (LETT #3#
                            (SPADCALL
                             (|ODEPRRIC;tau0| |c|
                              (SPADCALL |l|
                                        (PROG1 (LETT #5# |i| . #8#)
                                          (|check-subtype| (>= #5# 0)
                                                           '(|NonNegativeInteger|)
                                                           #5#))
                                        (QREFELT $ 72))
                              $)
                             (PROG1 (LETT #4# |i| . #8#)
                               (|check-subtype| (>= #4# 0)
                                                '(|NonNegativeInteger|) #4#))
                             (QREFELT $ 26))
                            . #8#)
                      (COND
                       (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 73)) . #8#))
                       ('T
                        (PROGN (LETT #2# #3# . #8#) (LETT #1# 'T . #8#)))))))
                   (LETT #6# (CDR #6#) . #8#) (GO G190) G191 (EXIT NIL))
              (COND (#1# #2#) (#7# (|spadConstant| $ 74)))))))))) 

(DEFUN |ODEPRRIC;getPol1| (|ind| |c| |l| $)
  (PROG (#1=#:G1930 #2=#:G1929 #3=#:G1931 #4=#:G1956 #5=#:G1959 |i| |cp|)
    (RETURN
     (SEQ
      (LETT |cp| (SPADCALL (QREFELT $ 11) |c| (QREFELT $ 75))
            . #6=(|ODEPRRIC;getPol1|))
      (EXIT
       (PROGN
        (LETT #1# NIL . #6#)
        (SEQ (LETT |i| NIL . #6#) (LETT #5# |ind| . #6#) G190
             (COND
              ((OR (ATOM #5#) (PROGN (LETT |i| (CAR #5#) . #6#) NIL))
               (GO G191)))
             (SEQ
              (EXIT
               (PROGN
                (LETT #3#
                      (SPADCALL
                       (|ODEPRRIC;tau0| |c|
                        (SPADCALL |l|
                                  (PROG1 (LETT #4# |i| . #6#)
                                    (|check-subtype| (>= #4# 0)
                                                     '(|NonNegativeInteger|)
                                                     #4#))
                                  (QREFELT $ 72))
                        $)
                       (|ODEPRRIC;poly1| |c| |cp| |i| $) (QREFELT $ 76))
                      . #6#)
                (COND (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 73)) . #6#))
                      ('T (PROGN (LETT #2# #3# . #6#) (LETT #1# 'T . #6#)))))))
             (LETT #5# (CDR #5#) . #6#) (GO G190) G191 (EXIT NIL))
        (COND (#1# #2#) ('T (|spadConstant| $ 74))))))))) 

(DEFUN |ODEPRRIC;constantCoefficientRicDE;LML;15| (|op| |ric| $)
  (PROG (#1=#:G1971 |a| #2=#:G1970 |m| #3=#:G1962 #4=#:G1961 #5=#:G1963
         #6=#:G1969 |p|)
    (RETURN
     (SEQ
      (LETT |m|
            (PROGN
             (LETT #3# NIL . #7=(|ODEPRRIC;constantCoefficientRicDE;LML;15|))
             (SEQ (LETT |p| NIL . #7#)
                  (LETT #6# (SPADCALL |op| (QREFELT $ 77)) . #7#) G190
                  (COND
                   ((OR (ATOM #6#) (PROGN (LETT |p| (CAR #6#) . #7#) NIL))
                    #8=(GO G191)))
                  (SEQ
                   (EXIT
                    (PROGN
                     (LETT #5# (SPADCALL |p| (QREFELT $ 16)) . #7#)
                     (COND (#3# (LETT #4# (MAX #4# #5#) . #7#))
                           ('T
                            (PROGN
                             (LETT #4# #5# . #7#)
                             (LETT #3# 'T . #7#)))))))
                  (LETT #6# (CDR #6#) . #7#) #9=(GO G190) G191 (EXIT NIL))
             (COND (#3# #4#) ('T (|IdentityError| '|max|))))
            . #7#)
      (EXIT
       (PROGN
        (LETT #2# NIL . #7#)
        (SEQ (LETT |a| NIL . #7#)
             (LETT #1#
                   (SPADCALL
                    (|ODEPRRIC;constantCoefficientOperator| |op| |m| $) |ric|)
                   . #7#)
             G190
             (COND
              ((OR (ATOM #1#) (PROGN (LETT |a| (CAR #1#) . #7#) NIL)) #8#))
             (SEQ
              (EXIT
               (LETT #2#
                     (CONS
                      (CONS |a|
                            (SPADCALL |op| (SPADCALL |a| (QREFELT $ 78))
                                      (QREFELT $ 79)))
                      #2#)
                     . #7#)))
             (LETT #1# (CDR #1#) . #7#) #9# G191 (EXIT (NREVERSE0 #2#))))))))) 

(DEFUN |ODEPRRIC;constantCoefficientOperator| (|op| |m| $)
  (PROG (|ans| |p|)
    (RETURN
     (SEQ
      (LETT |ans| (|spadConstant| $ 39)
            . #1=(|ODEPRRIC;constantCoefficientOperator|))
      (SEQ G190
           (COND
            ((NULL
              (COND ((SPADCALL |op| (|spadConstant| $ 40) (QREFELT $ 83)) 'NIL)
                    ('T 'T)))
             (GO G191)))
           (SEQ
            (COND
             ((EQL
               (SPADCALL (LETT |p| (SPADCALL |op| (QREFELT $ 84)) . #1#)
                         (QREFELT $ 16))
               |m|)
              (LETT |ans|
                    (SPADCALL |ans|
                              (SPADCALL (SPADCALL |p| (QREFELT $ 85))
                                        (SPADCALL |op| (QREFELT $ 86))
                                        (QREFELT $ 87))
                              (QREFELT $ 88))
                    . #1#)))
            (EXIT (LETT |op| (SPADCALL |op| (QREFELT $ 89)) . #1#)))
           NIL (GO G190) G191 (EXIT NIL))
      (EXIT |ans|))))) 

(DEFUN |ODEPRRIC;getPoly| (|rec| |l| |ind| $)
  (PROG (#1=#:G1979 #2=#:G1978 #3=#:G1980 #4=#:G1982 #5=#:G1981 #6=#:G1984 |i|)
    (RETURN
     (SEQ
      (PROGN
       (LETT #1# NIL . #7=(|ODEPRRIC;getPoly|))
       (SEQ (LETT |i| NIL . #7#) (LETT #6# |ind| . #7#) G190
            (COND
             ((OR (ATOM #6#) (PROGN (LETT |i| (CAR #6#) . #7#) NIL))
              (GO G191)))
            (SEQ
             (EXIT
              (PROGN
               (LETT #3#
                     (SPADCALL
                      (SPADCALL
                       (SPADCALL |l|
                                 (PROG1 (LETT #5# |i| . #7#)
                                   (|check-subtype| (>= #5# 0)
                                                    '(|NonNegativeInteger|)
                                                    #5#))
                                 (QREFELT $ 72))
                       (QREFELT $ 85))
                      (PROG1 (LETT #4# |i| . #7#)
                        (|check-subtype| (>= #4# 0) '(|NonNegativeInteger|)
                                         #4#))
                      (QREFELT $ 87))
                     . #7#)
               (COND (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 88)) . #7#))
                     ('T (PROGN (LETT #2# #3# . #7#) (LETT #1# 'T . #7#)))))))
            (LETT #6# (CDR #6#) . #7#) (GO G190) G191 (EXIT NIL))
       (COND (#1# #2#) ('T (|spadConstant| $ 39)))))))) 

(DEFUN |ODEPRRIC;innermax| (|rec| |l| |nu| $)
  (PROG (|ans| #1=#:G1991 |k| |f| |j| |m| #2=#:G1986 |d| |i| |n|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |n| (SPADCALL |l| (QREFELT $ 86)) . #3=(|ODEPRRIC;innermax|))
            (LETT |i| (|SPADfirst| (QCAR |rec|)) . #3#)
            (LETT |m|
                  (+ (* |i| (LETT |d| (QCDR |rec|) . #3#))
                     (SPADCALL
                      (SPADCALL |l|
                                (PROG1 (LETT #2# |i| . #3#)
                                  (|check-subtype| (>= #2# 0)
                                                   '(|NonNegativeInteger|)
                                                   #2#))
                                (QREFELT $ 72))
                      |nu|))
                  . #3#)
            (LETT |ans| NIL . #3#)
            (SEQ (LETT |j| 0 . #3#) G190
                 (COND ((QSGREATERP |j| |n|) (GO G191)))
                 (SEQ
                  (EXIT
                   (COND
                    ((SEQ (LETT |f| (SPADCALL |l| |j| (QREFELT $ 72)) . #3#)
                          (EXIT
                           (COND
                            ((SPADCALL |f| (|spadConstant| $ 39)
                                       (QREFELT $ 60))
                             'NIL)
                            ('T 'T))))
                     (SEQ
                      (LETT |k|
                            (+ (SPADCALL |j| |d| (QREFELT $ 90))
                               (SPADCALL |f| |nu|))
                            . #3#)
                      (EXIT
                       (COND
                        ((< |m| |k|) (PROGN (LETT #1# NIL . #3#) (GO #1#)))
                        ((EQL |k| |m|)
                         (LETT |ans| (CONS |j| |ans|) . #3#)))))))))
                 (LETT |j| (QSADD1 |j|) . #3#) (GO G190) G191 (EXIT NIL))
            (EXIT |ans|)))
      #1# (EXIT #1#))))) 

(DEFUN |ODEPRRIC;leadingCoefficientRicDE;LL;19| (|l| $)
  (PROG (|done| |ans| |ind| #1=#:G2005 |rec| |lb|)
    (RETURN
     (SEQ
      (LETT |lb| (|ODEPRRIC;infLambda| |l| $)
            . #2=(|ODEPRRIC;leadingCoefficientRicDE;LL;19|))
      (LETT |done| NIL . #2#) (LETT |ans| NIL . #2#)
      (SEQ (LETT |rec| NIL . #2#) (LETT #1# |lb| . #2#) G190
           (COND
            ((OR (ATOM #1#) (PROGN (LETT |rec| (CAR #1#) . #2#) NIL))
             (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((COND
                ((OR (SPADCALL (QCDR |rec|) |done| (QREFELT $ 69))
                     (NULL (LETT |ind| (|ODEPRRIC;infmax| |rec| |l| $) . #2#)))
                 'NIL)
                ('T 'T))
               (SEQ
                (LETT |ans|
                      (CONS
                       (CONS (QCDR |rec|)
                             (|ODEPRRIC;getPoly| |rec| |l| |ind| $))
                       |ans|)
                      . #2#)
                (EXIT (LETT |done| (CONS (QCDR |rec|) |done|) . #2#)))))))
           (LETT #1# (CDR #1#) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT
       (SPADCALL (CONS #'|ODEPRRIC;leadingCoefficientRicDE;LL;19!0| $) |ans|
                 (QREFELT $ 94))))))) 

(DEFUN |ODEPRRIC;leadingCoefficientRicDE;LL;19!0| (|z1| |z2| $)
  (SPADCALL (QCAR |z2|) (QCAR |z1|) (QREFELT $ 53))) 

(DEFUN |ODEPRRIC;factoredDenomRicDE| (|l| $)
  (PROG (#1=#:G2011 |dd| #2=#:G2010 |bd|)
    (RETURN
     (SEQ
      (LETT |bd|
            (SPADCALL
             (SPADCALL (SPADCALL |l| (QREFELT $ 84))
                       (SPADCALL |l| (QREFELT $ 77)) (QREFELT $ 97))
             (QREFELT $ 49))
            . #3=(|ODEPRRIC;factoredDenomRicDE|))
      (EXIT
       (PROGN
        (LETT #2# NIL . #3#)
        (SEQ (LETT |dd| NIL . #3#) (LETT #1# |bd| . #3#) G190
             (COND
              ((OR (ATOM #1#) (PROGN (LETT |dd| (CAR #1#) . #3#) NIL))
               (GO G191)))
             (SEQ (EXIT (LETT #2# (CONS (QCAR |dd|) #2#) . #3#)))
             (LETT #1# (CDR #1#) . #3#) (GO G190) G191
             (EXIT (NREVERSE0 #2#))))))))) 

(DEFUN |ODEPRRIC;changeVar;LUPL;21| (|l| |a| $)
  (PROG (|dpan| |op| #1=#:G2016 |i| |dpa|)
    (RETURN
     (SEQ
      (LETT |dpa|
            (SPADCALL (QREFELT $ 11) (SPADCALL |a| (QREFELT $ 98))
                      (QREFELT $ 99))
            . #2=(|ODEPRRIC;changeVar;LUPL;21|))
      (LETT |dpan| (|spadConstant| $ 100) . #2#)
      (LETT |op| (|spadConstant| $ 40) . #2#)
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (SPADCALL |l| (QREFELT $ 86)) . #2#)
           G190 (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (LETT |op|
                  (SPADCALL |op|
                            (SPADCALL (SPADCALL |l| |i| (QREFELT $ 72)) |dpan|
                                      (QREFELT $ 101))
                            (QREFELT $ 99))
                  . #2#)
            (EXIT (LETT |dpan| (SPADCALL |dpa| |dpan| (QREFELT $ 102)) . #2#)))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT (SPADCALL |op| (QREFELT $ 103))))))) 

(DEFUN |ODEPRRIC;changeVar;LFL;22| (|l| |a| $)
  (PROG (|dpan| |op| #1=#:G2023 |i| |dpa|)
    (RETURN
     (SEQ
      (LETT |dpa|
            (SPADCALL (QREFELT $ 13) (SPADCALL |a| (QREFELT $ 104))
                      (QREFELT $ 105))
            . #2=(|ODEPRRIC;changeVar;LFL;22|))
      (LETT |dpan| (|spadConstant| $ 106) . #2#)
      (LETT |op| (|spadConstant| $ 41) . #2#)
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (SPADCALL |l| (QREFELT $ 86)) . #2#)
           G190 (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (LETT |op|
                  (SPADCALL |op|
                            (SPADCALL
                             (SPADCALL (SPADCALL |l| |i| (QREFELT $ 72))
                                       (QREFELT $ 107))
                             |dpan| (QREFELT $ 108))
                            (QREFELT $ 105))
                  . #2#)
            (EXIT (LETT |dpan| (SPADCALL |dpa| |dpan| (QREFELT $ 109)) . #2#)))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT (QCAR (SPADCALL |op| NIL (QREFELT $ 113)))))))) 

(DEFUN |ODEPRRIC;bound| (|c| |l| $)
  (PROG (#1=#:G2026 #2=#:G2025 #3=#:G2027 #4=#:G2030 |rec| |lb|)
    (RETURN
     (SEQ
      (COND
       ((NULL
         (LETT |lb| (|ODEPRRIC;lambda| |c| |l| $) . #5=(|ODEPRRIC;bound|)))
        1)
       (#6='T
        (PROGN
         (LETT #1# NIL . #5#)
         (SEQ (LETT |rec| NIL . #5#) (LETT #4# |lb| . #5#) G190
              (COND
               ((OR (ATOM #4#) (PROGN (LETT |rec| (CAR #4#) . #5#) NIL))
                (GO G191)))
              (SEQ
               (EXIT
                (PROGN
                 (LETT #3# (QCDR |rec|) . #5#)
                 (COND (#1# (LETT #2# (MAX #2# #3#) . #5#))
                       ('T
                        (PROGN (LETT #2# #3# . #5#) (LETT #1# 'T . #5#)))))))
              (LETT #4# (CDR #4#) . #5#) (GO G190) G191 (EXIT NIL))
         (COND (#1# #2#) (#6# (|IdentityError| '|max|)))))))))) 

(DEFUN |ODEPRRIC;innerlb| (|l| |nu| $)
  (PROG (|lb| #1=#:G2038 |b| |u| |lj| |j| |li| |i| |n|)
    (RETURN
     (SEQ (LETT |lb| NIL . #2=(|ODEPRRIC;innerlb|))
          (LETT |n| (SPADCALL |l| (QREFELT $ 86)) . #2#)
          (SEQ (LETT |i| 0 . #2#) G190
               (COND ((QSGREATERP |i| |n|) #3=(GO G191)))
               (SEQ
                (EXIT
                 (COND
                  ((SEQ (LETT |li| (SPADCALL |l| |i| (QREFELT $ 72)) . #2#)
                        (EXIT
                         (COND
                          ((SPADCALL |li| (|spadConstant| $ 39) (QREFELT $ 60))
                           'NIL)
                          ('T 'T))))
                   (SEQ (LETT |j| (+ |i| 1) . #2#) G190
                        (COND ((> |j| |n|) #3#))
                        (SEQ
                         (EXIT
                          (COND
                           ((SEQ
                             (LETT |lj| (SPADCALL |l| |j| (QREFELT $ 72))
                                   . #2#)
                             (EXIT
                              (COND
                               ((SPADCALL |lj| (|spadConstant| $ 39)
                                          (QREFELT $ 60))
                                'NIL)
                               ('T 'T))))
                            (SEQ
                             (LETT |u|
                                   (SPADCALL
                                    (- (SPADCALL |li| |nu|)
                                       (SPADCALL |lj| |nu|))
                                    (- |i| |j|) (QREFELT $ 114))
                                   . #2#)
                             (EXIT
                              (COND
                               ((QEQCAR |u| 0)
                                (SEQ (LETT |b| (QCDR |u|) . #2#)
                                     (EXIT
                                      (COND
                                       ((< 0 |b|)
                                        (LETT |lb|
                                              (CONS
                                               (CONS (LIST |i| |j|)
                                                     (PROG1
                                                         (LETT #1# |b| . #2#)
                                                       (|check-subtype|
                                                        (>= #1# 0)
                                                        '(|NonNegativeInteger|)
                                                        #1#)))
                                               |lb|)
                                              . #2#)))))))))))))
                        (LETT |j| (+ |j| 1) . #2#) #4=(GO G190) G191
                        (EXIT NIL))))))
               (LETT |i| (QSADD1 |i|) . #2#) #4# G191 (EXIT NIL))
          (EXIT |lb|))))) 

(DEFUN |ODEPRRIC;singRicDE;LMML;25| (|l| |zeros| |ezfactor| $)
  (CONS (CONS (|spadConstant| $ 115) |l|)
        (|ODEPRRIC;fracsol| |l| |zeros|
         (|ODEPRRIC;refine| (|ODEPRRIC;factoredDenomRicDE| |l| $) |ezfactor| $)
         $))) 

(DEFUN |ODEPRRIC;fracsol| (|l| |zeros| |lc| $)
  (PROG (|ans| #1=#:G2070 |sol| #2=#:G2069 |sols| |neweq| #3=#:G2068 |rec|)
    (RETURN
     (SEQ (LETT |ans| NIL . #4=(|ODEPRRIC;fracsol|))
          (EXIT
           (COND ((NULL |lc|) |ans|)
                 ((NULL
                   (LETT |sols|
                         (|ODEPRRIC;padicsol| (|SPADfirst| |lc|) |l| 0 'NIL
                          |zeros| $)
                         . #4#))
                  (|ODEPRRIC;fracsol| |l| |zeros| (CDR |lc|) $))
                 ('T
                  (SEQ
                   (SEQ (LETT |rec| NIL . #4#) (LETT #3# |sols| . #4#) G190
                        (COND
                         ((OR (ATOM #3#)
                              (PROGN (LETT |rec| (CAR #3#) . #4#) NIL))
                          #5=(GO G191)))
                        (SEQ
                         (LETT |neweq|
                               (SPADCALL |l| (QCAR |rec|) (QREFELT $ 63))
                               . #4#)
                         (LETT |sols|
                               (|ODEPRRIC;fracsol| |neweq| |zeros| (CDR |lc|)
                                $)
                               . #4#)
                         (EXIT
                          (LETT |ans|
                                (COND ((NULL |sols|) (CONS |rec| |ans|))
                                      ('T
                                       (SPADCALL
                                        (PROGN
                                         (LETT #2# NIL . #4#)
                                         (SEQ (LETT |sol| NIL . #4#)
                                              (LETT #1# |sols| . #4#) G190
                                              (COND
                                               ((OR (ATOM #1#)
                                                    (PROGN
                                                     (LETT |sol| (CAR #1#)
                                                           . #4#)
                                                     NIL))
                                                #5#))
                                              (SEQ
                                               (EXIT
                                                (LETT #2#
                                                      (CONS
                                                       (CONS
                                                        (SPADCALL (QCAR |rec|)
                                                                  (QCAR |sol|)
                                                                  (QREFELT $
                                                                           64))
                                                        (QCDR |sol|))
                                                       #2#)
                                                      . #4#)))
                                              (LETT #1# (CDR #1#) . #4#)
                                              #6=(GO G190) G191
                                              (EXIT (NREVERSE0 #2#))))
                                        |ans| (QREFELT $ 67))))
                                . #4#)))
                        (LETT #3# (CDR #3#) . #4#) #6# G191 (EXIT NIL))
                   (EXIT |ans|))))))))) 

(DEFUN |ODEPRRIC;polysol| (|l| |b| |finite?| |zeros| $)
  (PROG (|ans| #1=#:G2090 |sol| #2=#:G2089 |sols| #3=#:G2077 |neweq| |atn|
         #4=#:G2088 |a| #5=#:G2087 |rec| |lc|)
    (RETURN
     (SEQ (LETT |ans| NIL . #6=(|ODEPRRIC;polysol|))
          (COND (|finite?| (COND ((ZEROP |b|) (EXIT |ans|)))))
          (LETT |lc| (SPADCALL |l| (QREFELT $ 95)) . #6#)
          (COND
           (|finite?|
            (LETT |lc|
                  (SPADCALL (CONS #'|ODEPRRIC;polysol!0| (VECTOR $ |b|)) |lc|
                            (QREFELT $ 120))
                  . #6#)))
          (SEQ (LETT |rec| NIL . #6#) (LETT #5# |lc| . #6#) G190
               (COND
                ((OR (ATOM #5#) (PROGN (LETT |rec| (CAR #5#) . #6#) NIL))
                 #7=(GO G191)))
               (SEQ
                (EXIT
                 (SEQ (LETT |a| NIL . #6#)
                      (LETT #4# (SPADCALL (QCDR |rec|) |zeros|) . #6#) G190
                      (COND
                       ((OR (ATOM #4#) (PROGN (LETT |a| (CAR #4#) . #6#) NIL))
                        #7#))
                      (SEQ
                       (EXIT
                        (COND
                         ((COND
                           ((SPADCALL |a| (|spadConstant| $ 38)
                                      (QREFELT $ 121))
                            'NIL)
                           ('T 'T))
                          (SEQ
                           (LETT |atn|
                                 (SPADCALL |a| (QCAR |rec|) (QREFELT $ 87))
                                 . #6#)
                           (LETT |neweq| (SPADCALL |l| |atn| (QREFELT $ 79))
                                 . #6#)
                           (LETT |sols|
                                 (|ODEPRRIC;polysol| |neweq|
                                  (PROG1 (LETT #3# (- (QCAR |rec|) 1) . #6#)
                                    (|check-subtype| (>= #3# 0)
                                                     '(|NonNegativeInteger|)
                                                     #3#))
                                  'T |zeros| $)
                                 . #6#)
                           (EXIT
                            (LETT |ans|
                                  (COND
                                   ((NULL |sols|)
                                    (CONS (CONS |atn| |neweq|) |ans|))
                                   ('T
                                    (SPADCALL
                                     (PROGN
                                      (LETT #2# NIL . #6#)
                                      (SEQ (LETT |sol| NIL . #6#)
                                           (LETT #1# |sols| . #6#) G190
                                           (COND
                                            ((OR (ATOM #1#)
                                                 (PROGN
                                                  (LETT |sol| (CAR #1#) . #6#)
                                                  NIL))
                                             #7#))
                                           (SEQ
                                            (EXIT
                                             (LETT #2#
                                                   (CONS
                                                    (CONS
                                                     (SPADCALL |atn|
                                                               (QCAR |sol|)
                                                               (QREFELT $ 88))
                                                     (QCDR |sol|))
                                                    #2#)
                                                   . #6#)))
                                           (LETT #1# (CDR #1#) . #6#)
                                           #8=(GO G190) G191
                                           (EXIT (NREVERSE0 #2#))))
                                     |ans| (QREFELT $ 122))))
                                  . #6#)))))))
                      (LETT #4# (CDR #4#) . #6#) #8# G191 (EXIT NIL))))
               (LETT #5# (CDR #5#) . #6#) #8# G191 (EXIT NIL))
          (EXIT |ans|))))) 

(DEFUN |ODEPRRIC;polysol!0| (|z| $$)
  (PROG (|b| $)
    (LETT |b| (QREFELT $$ 1) . #1=(|ODEPRRIC;polysol|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (COND ((SPADCALL |b| (QCAR |z|) (QREFELT $ 53)) (|spadConstant| $ 54))
            ('T (|spadConstant| $ 55))))))) 

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

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

(MAKEPROP '|PrimitiveRatRicDE| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|local| |#4|) (0 . D) '|diff| (4 . D) '|diffq|
              (|NonNegativeInteger|) (8 . |order|) (14 . |degree|) (|Integer|)
              (19 . -) (24 . ^) (|Union| $ '"failed") (30 . |exquo|)
              (36 . |rem|) (42 . |One|) (46 . |One|)
              (|SparseUnivariatePolynomial| 7) (50 . |monomial|) (56 . *)
              (62 . |coerce|) (67 . -) (73 . *) (79 . |One|) (|List| $)
              (|List| 17) (83 . |concat|) (88 . |removeDuplicates!|) (93 . *)
              |ODEPRRIC;denomRicDE;LUP;8| (99 . |Zero|) (103 . |Zero|)
              (107 . |Zero|) (111 . |Zero|)
              (|Record| (|:| |poly| 7) (|:| |eq| 8)) (|List| 42)
              (|Mapping| (|List| 6) 7) |ODEPRRIC;polyRicDE;LML;9|
              (|Record| (|:| |factor| 7) (|:| |exponent| 17)) (|List| 46)
              (|Factored| 7) (115 . |factors|) (|List| 7) (120 . |concat|)
              (|Boolean|) (125 . <) (131 . |false|) (135 . |true|)
              (|Record| (|:| |deg| 14) (|:| |eq| 25)) (|Mapping| 52 56)
              (|List| 56) (139 . |select!|) (145 . =) (|Fraction| 7) (151 . /)
              |ODEPRRIC;changeVar;LFL;22| (157 . +)
              (|Record| (|:| |frac| 61) (|:| |eq| 8)) (|List| 65)
              (163 . |concat!|) (|List| 14) (169 . |member?|)
              (|Mapping| 52 56 56) (175 . |sort!|) (181 . |coefficient|)
              (187 . +) (193 . |Zero|) (197 . |elt|) (203 . *)
              (209 . |coefficients|) (214 . |coerce|)
              |ODEPRRIC;changeVar;LUPL;21|
              (|Record| (|:| |constant| 6) (|:| |eq| 8)) (|List| 80)
              |ODEPRRIC;constantCoefficientRicDE;LML;15| (219 . =)
              (225 . |leadingCoefficient|) (230 . |leadingCoefficient|)
              (235 . |degree|) (240 . |monomial|) (246 . +) (252 . |reductum|)
              (257 . *) (|Record| (|:| |deg| 14) (|:| |eq| 7))
              (|Mapping| 52 91 91) (|List| 91) (263 . |sort!|)
              |ODEPRRIC;leadingCoefficientRicDE;LL;19|
              (|BalancedFactorisation| 6 7) (269 . |balancedFactorisation|)
              (275 . |coerce|) (280 . +) (286 . |One|) (290 . *) (296 . *)
              (302 . |primitivePart|) (307 . |coerce|) (312 . +) (318 . |One|)
              (322 . |coerce|) (327 . *) (333 . *)
              (|Record| (|:| |eq| 8) (|:| |rh| 111)) (|List| 61)
              (|PrimitiveRatDE| 6 7 8 9) (339 . |splitDenominator|)
              (345 . |exquo|) (351 . |Zero|) (|Mapping| 50 7 25)
              (|Mapping| 48 7) |ODEPRRIC;singRicDE;LMML;25| (|Mapping| 52 91)
              (355 . |select!|) (361 . =) (367 . |concat!|))
           '#(|singRicDE| 373 |polyRicDE| 380 |leadingCoefficientRicDE| 386
              |denomRicDE| 391 |constantCoefficientRicDE| 396 |changeVar| 402)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 122
                                                 '(0 8 0 10 0 9 0 12 2 7 14 0 0
                                                   15 1 7 14 0 16 1 17 0 0 18 2
                                                   7 0 0 14 19 2 7 20 0 0 21 2
                                                   7 0 0 0 22 0 6 0 23 0 7 0 24
                                                   2 25 0 7 14 26 2 7 0 14 0 27
                                                   1 25 0 7 28 2 25 0 0 0 29 2
                                                   25 0 0 0 30 0 25 0 31 1 33 0
                                                   32 34 1 33 0 0 35 2 7 0 0 0
                                                   36 0 6 0 38 0 7 0 39 0 8 0
                                                   40 0 9 0 41 1 48 47 0 49 1
                                                   50 0 32 51 2 14 52 0 0 53 0
                                                   52 0 54 0 52 0 55 2 58 0 57
                                                   0 59 2 7 52 0 0 60 2 61 0 7
                                                   7 62 2 61 0 0 0 64 2 66 0 0
                                                   0 67 2 68 52 14 0 69 2 58 0
                                                   70 0 71 2 8 7 0 14 72 2 25 0
                                                   0 0 73 0 25 0 74 2 8 7 0 7
                                                   75 2 25 0 7 0 76 1 8 50 0 77
                                                   1 7 0 6 78 2 8 52 0 0 83 1 8
                                                   7 0 84 1 7 6 0 85 1 8 14 0
                                                   86 2 7 0 6 14 87 2 7 0 0 0
                                                   88 1 8 0 0 89 2 17 0 14 0 90
                                                   2 93 0 92 0 94 2 96 48 7 50
                                                   97 1 8 0 7 98 2 8 0 0 0 99 0
                                                   8 0 100 2 8 0 7 0 101 2 8 0
                                                   0 0 102 1 8 0 0 103 1 9 0 61
                                                   104 2 9 0 0 0 105 0 9 0 106
                                                   1 61 0 7 107 2 9 0 61 0 108
                                                   2 9 0 0 0 109 2 112 110 9
                                                   111 113 2 17 20 0 0 114 0 61
                                                   0 115 2 93 0 119 0 120 2 6
                                                   52 0 0 121 2 43 0 0 0 122 3
                                                   0 66 8 116 117 118 2 0 43 8
                                                   44 45 1 0 93 8 95 1 0 7 8 37
                                                   2 0 81 8 44 82 2 0 8 8 61 63
                                                   2 0 8 8 7 79)))))
           '|lookupComplete|)) 
