
(/VERSIONCHECK 2) 

(DEFUN |SOLVESER;unvectorise;VFIF;1| (|vect| |var| |n| $)
  (PROG (Z |i| #0=#:G1824 |vecti| #1=#:G1819 |polyvar|)
    (RETURN
      (SEQ (LETT Z (SPADCALL (QREFELT $ 8))
                 . #2=(|SOLVESER;unvectorise;VFIF;1|))
           (LETT |polyvar| (|spadConstant| $ 10) . #2#)
           (SEQ (LETT |i| 1 . #2#) (LETT #0# (+ |n| 1) . #2#) G190
                (COND ((QSGREATERP |i| #0#) (GO G191)))
                (SEQ (LETT |vecti|
                           (SPADCALL
                               (SPADCALL |vect| |i| (QREFELT $ 17))
                               (|SPADfirst|
                                   (SPADCALL
                                    (SPADCALL Z (QREFELT $ 18))
                                    (QREFELT $ 20)))
                               (QREFELT $ 23)) . #2#)
                     (EXIT (LETT |polyvar|
                                 (SPADCALL |polyvar|
                                     (SPADCALL |vecti|
                                      (SPADCALL |var|
                                       (PROG1
                                        (LETT #1#
                                         (+ (- |n| |i|) 1) . #2#)
                                         (|check-subtype| (>= #1# 0)
                                          '(|NonNegativeInteger|) #1#))
                                       (QREFELT $ 24))
                                      (QREFELT $ 25))
                                     (QREFELT $ 26)) . #2#)))
                (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191
                (EXIT NIL))
           (EXIT |polyvar|))))) 

(DEFUN |SOLVESER;decomposeFunc;4F;2| (|exprf| |exprg| |newH| $)
  (PROG (X |f1| |f2| |g1| |g2| |degF| |degG| N |m| |newF1| |newF2|
           #0=#:G1836 |newF|)
    (RETURN
      (SEQ (EXIT (SEQ (LETT X (SPADCALL (QREFELT $ 8))
                            . #1=(|SOLVESER;decomposeFunc;4F;2|))
                      (LETT |f1|
                            (SPADCALL |exprf| (QREFELT $ 29)) . #1#)
                      (LETT |f2|
                            (SPADCALL |exprf| (QREFELT $ 30)) . #1#)
                      (LETT |g1|
                            (SPADCALL |exprg| (QREFELT $ 29)) . #1#)
                      (LETT |g2|
                            (SPADCALL |exprg| (QREFELT $ 30)) . #1#)
                      (LETT |degF|
                            (MAX (SPADCALL
                                     (SPADCALL |exprf| (QREFELT $ 29))
                                     (QREFELT $ 32))
                                 (SPADCALL
                                     (SPADCALL |exprf| (QREFELT $ 30))
                                     (QREFELT $ 32))) . #1#)
                      (LETT |degG|
                            (MAX (SPADCALL |g1| (QREFELT $ 32))
                                 (SPADCALL |g2| (QREFELT $ 32))) . #1#)
                      (LETT N
                            (SPADCALL |degF| |degG| (QREFELT $ 34)) . #1#)
                      (EXIT (COND
                              ((QEQCAR N 1)
                               (PROGN
                                 (LETT #0# |exprf| . #1#)
                                 (GO #0#)))
                              (#2='T
                               (SEQ (LETT |m| (QCDR N) . #1#)
                                    (LETT |newF1|
                                     (|SOLVESER;subsSolve| |f1| |degF|
                                      |g1| |g2| |m| |newH| $) . #1#)
                                    (COND
                                      ((SPADCALL |f2|
                                        (|spadConstant| $ 35)
                                        (QREFELT $ 37))
                                       (LETT |newF2|
                                        (CONS 0 (|spadConstant| $ 35)) . #1#))
                                      (#2#
                                       (LETT |newF2|
                                        (|SOLVESER;subsSolve| |f2|
                                         |degF| |g1| |g2| |m| |newH| $) . #1#)))
                                    (EXIT
                                     (COND
                                       ((OR (QEQCAR |newF1| 1)
                                         (QEQCAR |newF2| 1))
                                        (PROGN
                                          (LETT #0# |exprf| . #1#)
                                          (GO #0#)))
                                       ('T
                                        (LETT |newF|
                                         (SPADCALL (QCDR |newF1|)
                                          (QCDR |newF2|)
                                          (QREFELT $ 38)) . #1#))))))))))
           #0# (EXIT #0#))))) 

(DEFUN |SOLVESER;subsSolve| (F |DegF| G1 G2 M HH $)
  (PROG (|i| #0=#:G1882 |coeffmat| |vec| |coeffma| |solvar| #1=#:G1894
             #2=#:G1890 |solvevarlist| |resul|)
    (RETURN
      (SEQ (EXIT (SEQ (LETT |coeffmat|
                            (SPADCALL (+ |DegF| 1) 1
                                (|spadConstant| $ 40) (QREFELT $ 42))
                            . #3=(|SOLVESER;subsSolve|))
                      (SEQ (LETT |i| 0 . #3#) G190
                           (COND ((QSGREATERP |i| M) (GO G191)))
                           (SEQ (EXIT (LETT |coeffmat|
                                       (SPADCALL |coeffmat|
                                        (SPADCALL
                                         (SPADCALL
                                          (SPADCALL
                                           (SPADCALL G1
                                            (PROG1
                                             (LETT #0# (- M |i|) . #3#)
                                              (|check-subtype|
                                               (>= #0# 0)
                                               '(|NonNegativeInteger|)
                                               #0#))
                                            (QREFELT $ 43))
                                           (SPADCALL G2 |i|
                                            (QREFELT $ 43))
                                           (QREFELT $ 44))
                                          (+ |DegF| 1) (QREFELT $ 45))
                                         (QREFELT $ 46))
                                        (QREFELT $ 47)) . #3#)))
                           (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
                           (EXIT NIL))
                      (LETT |vec|
                            (SPADCALL F (+ |DegF| 1) (QREFELT $ 45)) . #3#)
                      (LETT |coeffma|
                            (SPADCALL |coeffmat| 1 (+ |DegF| 1) 2
                                (+ M 2) (QREFELT $ 48)) . #3#)
                      (LETT |solvar|
                            (SPADCALL |coeffma| |vec| (QREFELT $ 52)) . #3#)
                      (EXIT (COND
                              ((QEQCAR (QCAR |solvar|) 1)
                               (PROGN
                                 (LETT #1# (CONS 1 "failed") . #3#)
                                 (GO #1#)))
                              ('T
                               (SEQ (LETT |solvevarlist|
                                     (PROG2
                                      (LETT #2# (QCAR |solvar|) . #3#)
                                      (QCDR #2#)
                                       (|check-union| (QEQCAR #2# 0)
                                        (|Vector|
                                         (|Expression| (QREFELT $ 6)))
                                        #2#)) . #3#)
                                    (LETT |resul|
                                     (SPADCALL
                                      (SPADCALL |solvevarlist| HH M
                                       (QREFELT $ 27))
                                      (QREFELT $ 29)) . #3#)
                                    (EXIT (CONS 0 |resul|))))))))
           #1# (EXIT #1#))))) 

(DEFUN |TransSolvePackageService| (#0=#:G1895)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1896)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (LIST (|devaluate| #0#))
                       (HGET |$ConstructorCache|
                             '|TransSolvePackageService|)
                       '|domainEqualList|)
                   . #2=(|TransSolvePackageService|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (|TransSolvePackageService;| #0#)
                 (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache|
                        '|TransSolvePackageService|))))))))))) 

(DEFUN |TransSolvePackageService;| (|#1|)
  (PROG (DV$1 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|TransSolvePackageService|))
        (LETT |dv$| (LIST '|TransSolvePackageService| DV$1) . #0#)
        (LETT $ (GETREFV 53) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|TransSolvePackageService|
            (LIST DV$1) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        $)))) 

(MAKEPROP '|TransSolvePackageService| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|Symbol|)
             (0 . |new|) (|Fraction| 28) (4 . |Zero|) (8 . |One|)
             (|SparseUnivariatePolynomial| 6) (12 . |One|)
             (|Expression| 6) (|Integer|) (|Vector| 14) (16 . |elt|)
             (22 . |coerce|) (|List| 22) (27 . |kernels|)
             (|Fraction| (|SparseUnivariatePolynomial| $)) (|Kernel| $)
             (32 . |univariate|) (38 . **) (44 . *) (50 . +)
             |SOLVESER;unvectorise;VFIF;1|
             (|SparseUnivariatePolynomial| 14) (56 . |numer|)
             (61 . |denom|) (|NonNegativeInteger|) (66 . |degree|)
             (|Union| $ '"failed") (71 . |exquo|) (77 . |One|)
             (|Boolean|) (81 . =) (87 . /)
             |SOLVESER;decomposeFunc;4F;2| (93 . |Zero|) (|Matrix| 14)
             (97 . |new|) (104 . **) (110 . *) (116 . |vectorise|)
             (122 . |coerce|) (127 . |horizConcat|) (133 . |subMatrix|)
             (|Union| 16 '"failed")
             (|Record| (|:| |particular| 49) (|:| |basis| (|List| 16)))
             (|LinearSystemMatrixPackage| 14 16 16 41) (142 . |solve|))
          '#(|unvectorise| 148 |decomposeFunc| 155) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 52
                                '(0 7 0 8 0 9 0 10 0 6 0 11 0 12 0 13 2
                                  16 14 0 15 17 1 14 0 7 18 1 14 19 0
                                  20 2 14 21 0 22 23 2 9 0 0 15 24 2 9
                                  0 0 0 25 2 9 0 0 0 26 1 9 28 0 29 1 9
                                  28 0 30 1 28 31 0 32 2 31 33 0 0 34 0
                                  28 0 35 2 28 36 0 0 37 2 9 0 28 28 38
                                  0 14 0 40 3 41 0 31 31 14 42 2 28 0 0
                                  31 43 2 28 0 0 0 44 2 28 16 0 31 45 1
                                  41 0 16 46 2 41 0 0 0 47 5 41 0 0 15
                                  15 15 15 48 2 51 50 41 16 52 3 0 9 16
                                  9 15 27 3 0 9 9 9 9 39)))))
          '|lookupComplete|)) 
