diff options
| author | dos-reis <gdr@axiomatics.org> | 2008-08-16 06:00:35 +0000 |
|---|---|---|
| committer | dos-reis <gdr@axiomatics.org> | 2008-08-16 06:00:35 +0000 |
| commit | 84db9d8c5349cb8b3e7e2d102867e53e610d7ef2 (patch) | |
| tree | 0a2689194fd9e75ce8925550a4e177f3e5520684 /src/algebra/polycat.spad.pamphlet | |
| parent | 3372c377eded97a0094f63cddd2e039af7066431 (diff) | |
| download | open-axiom-84db9d8c5349cb8b3e7e2d102867e53e610d7ef2.tar.gz | |
* algebra/strap: New. Sequester cached Lisp translation of
algebra bootstrap domains here.
Diffstat (limited to 'src/algebra/polycat.spad.pamphlet')
| -rw-r--r-- | src/algebra/polycat.spad.pamphlet | 3428 |
1 files changed, 0 insertions, 3428 deletions
diff --git a/src/algebra/polycat.spad.pamphlet b/src/algebra/polycat.spad.pamphlet index a3232055..4cdd3572 100644 --- a/src/algebra/polycat.spad.pamphlet +++ b/src/algebra/polycat.spad.pamphlet @@ -607,2023 +607,6 @@ PolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup, VarSet:OrderedSet): p)$PolynomialCategoryLifting(E,VarSet,R,%,InputForm) @ -\section{POLYCAT.lsp BOOTSTRAP} -{\bf POLYCAT} depends on itself. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf POLYCAT} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf POLYCAT.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<<POLYCAT.lsp BOOTSTRAP>>= - -(/VERSIONCHECK 2) - -(DEFPARAMETER |PolynomialCategory;CAT| 'NIL) - -(DEFPARAMETER |PolynomialCategory;AL| 'NIL) - -(DEFUN |PolynomialCategory| (&REST #0=#:G1406 &AUX #1=#:G1404) - (DSETQ #1# #0#) - (LET (#2=#:G1405) - (COND - ((SETQ #2# - (|assoc| (|devaluateList| #1#) |PolynomialCategory;AL|)) - (CDR #2#)) - (T (SETQ |PolynomialCategory;AL| - (|cons5| (CONS (|devaluateList| #1#) - (SETQ #2# - (APPLY #'|PolynomialCategory;| #1#))) - |PolynomialCategory;AL|)) - #2#)))) - -(DEFUN |PolynomialCategory;| (|t#1| |t#2| |t#3|) - (PROG (#0=#:G1403) - (RETURN - (PROG1 (LETT #0# - (|sublisV| - (PAIR '(|t#1| |t#2| |t#3|) - (LIST (|devaluate| |t#1|) - (|devaluate| |t#2|) - (|devaluate| |t#3|))) - (COND - (|PolynomialCategory;CAT|) - ('T - (LETT |PolynomialCategory;CAT| - (|Join| (|PartialDifferentialRing| - '|t#3|) - (|FiniteAbelianMonoidRing| - '|t#1| '|t#2|) - (|Evalable| '$) - (|InnerEvalable| '|t#3| '|t#1|) - (|InnerEvalable| '|t#3| '$) - (|RetractableTo| '|t#3|) - (|FullyLinearlyExplicitRingOver| - '|t#1|) - (|mkCategory| '|domain| - '(((|degree| - ((|NonNegativeInteger|) $ - |t#3|)) - T) - ((|degree| - ((|List| - (|NonNegativeInteger|)) - $ (|List| |t#3|))) - T) - ((|coefficient| - ($ $ |t#3| - (|NonNegativeInteger|))) - T) - ((|coefficient| - ($ $ (|List| |t#3|) - (|List| - (|NonNegativeInteger|)))) - T) - ((|monomials| - ((|List| $) $)) - T) - ((|univariate| - ((|SparseUnivariatePolynomial| - $) - $ |t#3|)) - T) - ((|univariate| - ((|SparseUnivariatePolynomial| - |t#1|) - $)) - T) - ((|mainVariable| - ((|Union| |t#3| "failed") - $)) - T) - ((|minimumDegree| - ((|NonNegativeInteger|) $ - |t#3|)) - T) - ((|minimumDegree| - ((|List| - (|NonNegativeInteger|)) - $ (|List| |t#3|))) - T) - ((|monicDivide| - ((|Record| - (|:| |quotient| $) - (|:| |remainder| $)) - $ $ |t#3|)) - T) - ((|monomial| - ($ $ |t#3| - (|NonNegativeInteger|))) - T) - ((|monomial| - ($ $ (|List| |t#3|) - (|List| - (|NonNegativeInteger|)))) - T) - ((|multivariate| - ($ - (|SparseUnivariatePolynomial| - |t#1|) - |t#3|)) - T) - ((|multivariate| - ($ - (|SparseUnivariatePolynomial| - $) - |t#3|)) - T) - ((|isPlus| - ((|Union| (|List| $) - "failed") - $)) - T) - ((|isTimes| - ((|Union| (|List| $) - "failed") - $)) - T) - ((|isExpt| - ((|Union| - (|Record| - (|:| |var| |t#3|) - (|:| |exponent| - (|NonNegativeInteger|))) - "failed") - $)) - T) - ((|totalDegree| - ((|NonNegativeInteger|) $)) - T) - ((|totalDegree| - ((|NonNegativeInteger|) $ - (|List| |t#3|))) - T) - ((|variables| - ((|List| |t#3|) $)) - T) - ((|primitiveMonomials| - ((|List| $) $)) - T) - ((|resultant| ($ $ $ |t#3|)) - (|has| |t#1| - (|CommutativeRing|))) - ((|discriminant| - ($ $ |t#3|)) - (|has| |t#1| - (|CommutativeRing|))) - ((|content| ($ $ |t#3|)) - (|has| |t#1| (|GcdDomain|))) - ((|primitivePart| ($ $)) - (|has| |t#1| (|GcdDomain|))) - ((|primitivePart| - ($ $ |t#3|)) - (|has| |t#1| (|GcdDomain|))) - ((|squareFree| - ((|Factored| $) $)) - (|has| |t#1| (|GcdDomain|))) - ((|squareFreePart| ($ $)) - (|has| |t#1| (|GcdDomain|)))) - '(((|OrderedSet|) - (|has| |t#1| - (|OrderedSet|))) - ((|ConvertibleTo| - (|InputForm|)) - (AND - (|has| |t#3| - (|ConvertibleTo| - (|InputForm|))) - (|has| |t#1| - (|ConvertibleTo| - (|InputForm|))))) - ((|ConvertibleTo| - (|Pattern| (|Integer|))) - (AND - (|has| |t#3| - (|ConvertibleTo| - (|Pattern| (|Integer|)))) - (|has| |t#1| - (|ConvertibleTo| - (|Pattern| (|Integer|)))))) - ((|ConvertibleTo| - (|Pattern| (|Float|))) - (AND - (|has| |t#3| - (|ConvertibleTo| - (|Pattern| (|Float|)))) - (|has| |t#1| - (|ConvertibleTo| - (|Pattern| (|Float|)))))) - ((|PatternMatchable| - (|Integer|)) - (AND - (|has| |t#3| - (|PatternMatchable| - (|Integer|))) - (|has| |t#1| - (|PatternMatchable| - (|Integer|))))) - ((|PatternMatchable| - (|Float|)) - (AND - (|has| |t#3| - (|PatternMatchable| - (|Float|))) - (|has| |t#1| - (|PatternMatchable| - (|Float|))))) - ((|GcdDomain|) - (|has| |t#1| (|GcdDomain|))) - (|canonicalUnitNormal| - (|has| |t#1| - (ATTRIBUTE - |canonicalUnitNormal|))) - ((|PolynomialFactorizationExplicit|) - (|has| |t#1| - (|PolynomialFactorizationExplicit|)))) - '((|Factored| $) (|List| $) - (|List| |t#3|) - (|NonNegativeInteger|) - (|SparseUnivariatePolynomial| - $) - (|SparseUnivariatePolynomial| - |t#1|) - (|List| - (|NonNegativeInteger|))) - NIL)) - . #1=(|PolynomialCategory|))))) . #1#) - (SETELT #0# 0 - (LIST '|PolynomialCategory| (|devaluate| |t#1|) - (|devaluate| |t#2|) (|devaluate| |t#3|))))))) -@ -\section{POLYCAT-.lsp BOOTSTRAP} -{\bf POLYCAT-} depends on {\bf POLYCAT}. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf POLYCAT-} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf POLYCAT-.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<<POLYCAT-.lsp BOOTSTRAP>>= - -(/VERSIONCHECK 2) - -(DEFUN |POLYCAT-;eval;SLS;1| (|p| |l| $) - (PROG (#0=#:G1427 #1=#:G1421 #2=#:G1428 #3=#:G1429 |lvar| #4=#:G1430 - |e| #5=#:G1431) - (RETURN - (SEQ (COND - ((NULL |l|) |p|) - ('T - (SEQ (SEQ (EXIT (SEQ (LETT |e| NIL |POLYCAT-;eval;SLS;1|) - (LETT #0# |l| |POLYCAT-;eval;SLS;1|) - G190 - (COND - ((OR (ATOM #0#) - (PROGN - (LETT |e| (CAR #0#) - |POLYCAT-;eval;SLS;1|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (COND - ((QEQCAR - (SPADCALL - (SPADCALL |e| - (|getShellEntry| $ 11)) - (|getShellEntry| $ 13)) - 1) - (PROGN - (LETT #1# - (|error| - "cannot find a variable to evaluate") - |POLYCAT-;eval;SLS;1|) - (GO #1#)))))) - (LETT #0# (CDR #0#) - |POLYCAT-;eval;SLS;1|) - (GO G190) G191 (EXIT NIL))) - #1# (EXIT #1#)) - (LETT |lvar| - (PROGN - (LETT #2# NIL |POLYCAT-;eval;SLS;1|) - (SEQ (LETT |e| NIL |POLYCAT-;eval;SLS;1|) - (LETT #3# |l| |POLYCAT-;eval;SLS;1|) - G190 - (COND - ((OR (ATOM #3#) - (PROGN - (LETT |e| (CAR #3#) - |POLYCAT-;eval;SLS;1|) - NIL)) - (GO G191))) - (SEQ (EXIT - (LETT #2# - (CONS - (SPADCALL - (SPADCALL |e| - (|getShellEntry| $ 11)) - (|getShellEntry| $ 14)) - #2#) - |POLYCAT-;eval;SLS;1|))) - (LETT #3# (CDR #3#) - |POLYCAT-;eval;SLS;1|) - (GO G190) G191 (EXIT (NREVERSE0 #2#)))) - |POLYCAT-;eval;SLS;1|) - (EXIT (SPADCALL |p| |lvar| - (PROGN - (LETT #4# NIL |POLYCAT-;eval;SLS;1|) - (SEQ (LETT |e| NIL - |POLYCAT-;eval;SLS;1|) - (LETT #5# |l| - |POLYCAT-;eval;SLS;1|) - G190 - (COND - ((OR (ATOM #5#) - (PROGN - (LETT |e| (CAR #5#) - |POLYCAT-;eval;SLS;1|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #4# - (CONS - (SPADCALL |e| - (|getShellEntry| $ 15)) - #4#) - |POLYCAT-;eval;SLS;1|))) - (LETT #5# (CDR #5#) - |POLYCAT-;eval;SLS;1|) - (GO G190) G191 - (EXIT (NREVERSE0 #4#)))) - (|getShellEntry| $ 18)))))))))) - -(DEFUN |POLYCAT-;monomials;SL;2| (|p| $) - (PROG (|ml|) - (RETURN - (SEQ (LETT |ml| NIL |POLYCAT-;monomials;SL;2|) - (SEQ G190 - (COND - ((NULL (SPADCALL |p| (|spadConstant| $ 22) - (|getShellEntry| $ 25))) - (GO G191))) - (SEQ (LETT |ml| - (CONS (SPADCALL |p| (|getShellEntry| $ 26)) - |ml|) - |POLYCAT-;monomials;SL;2|) - (EXIT (LETT |p| - (SPADCALL |p| (|getShellEntry| $ 27)) - |POLYCAT-;monomials;SL;2|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT (REVERSE |ml|)))))) - -(DEFUN |POLYCAT-;isPlus;SU;3| (|p| $) - (PROG (|l|) - (RETURN - (COND - ((NULL (CDR (LETT |l| (SPADCALL |p| (|getShellEntry| $ 29)) - |POLYCAT-;isPlus;SU;3|))) - (CONS 1 "failed")) - ('T (CONS 0 |l|)))))) - -(DEFUN |POLYCAT-;isTimes;SU;4| (|p| $) - (PROG (|lv| #0=#:G1453 |v| #1=#:G1454 |l| |r|) - (RETURN - (SEQ (COND - ((OR (NULL (LETT |lv| - (SPADCALL |p| (|getShellEntry| $ 32)) - |POLYCAT-;isTimes;SU;4|)) - (NULL (SPADCALL |p| (|getShellEntry| $ 33)))) - (CONS 1 "failed")) - ('T - (SEQ (LETT |l| - (PROGN - (LETT #0# NIL |POLYCAT-;isTimes;SU;4|) - (SEQ (LETT |v| NIL |POLYCAT-;isTimes;SU;4|) - (LETT #1# |lv| |POLYCAT-;isTimes;SU;4|) - G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |v| (CAR #1#) - |POLYCAT-;isTimes;SU;4|) - NIL)) - (GO G191))) - (SEQ (EXIT - (LETT #0# - (CONS - (SPADCALL (|spadConstant| $ 34) - |v| - (SPADCALL |p| |v| - (|getShellEntry| $ 37)) - (|getShellEntry| $ 38)) - #0#) - |POLYCAT-;isTimes;SU;4|))) - (LETT #1# (CDR #1#) - |POLYCAT-;isTimes;SU;4|) - (GO G190) G191 (EXIT (NREVERSE0 #0#)))) - |POLYCAT-;isTimes;SU;4|) - (LETT |r| (SPADCALL |p| (|getShellEntry| $ 39)) - |POLYCAT-;isTimes;SU;4|) - (EXIT (COND - ((SPADCALL |r| (|spadConstant| $ 35) - (|getShellEntry| $ 40)) - (COND - ((NULL (CDR |lv|)) (CONS 1 "failed")) - ('T (CONS 0 |l|)))) - ('T - (CONS 0 - (CONS (SPADCALL |r| - (|getShellEntry| $ 41)) - |l|)))))))))))) - -(DEFUN |POLYCAT-;isExpt;SU;5| (|p| $) - (PROG (|u| |d|) - (RETURN - (SEQ (LETT |u| (SPADCALL |p| (|getShellEntry| $ 43)) - |POLYCAT-;isExpt;SU;5|) - (EXIT (COND - ((OR (QEQCAR |u| 1) - (NULL (SPADCALL |p| - (SPADCALL (|spadConstant| $ 34) - (QCDR |u|) - (LETT |d| - (SPADCALL |p| (QCDR |u|) - (|getShellEntry| $ 37)) - |POLYCAT-;isExpt;SU;5|) - (|getShellEntry| $ 38)) - (|getShellEntry| $ 44)))) - (CONS 1 "failed")) - ('T (CONS 0 (CONS (QCDR |u|) |d|))))))))) - -(DEFUN |POLYCAT-;coefficient;SVarSetNniS;6| (|p| |v| |n| $) - (SPADCALL (SPADCALL |p| |v| (|getShellEntry| $ 49)) |n| - (|getShellEntry| $ 51))) - -(DEFUN |POLYCAT-;coefficient;SLLS;7| (|p| |lv| |ln| $) - (COND - ((NULL |lv|) - (COND - ((NULL |ln|) |p|) - ('T (|error| "mismatched lists in coefficient")))) - ((NULL |ln|) (|error| "mismatched lists in coefficient")) - ('T - (SPADCALL - (SPADCALL - (SPADCALL |p| (|SPADfirst| |lv|) (|getShellEntry| $ 49)) - (|SPADfirst| |ln|) (|getShellEntry| $ 51)) - (CDR |lv|) (CDR |ln|) (|getShellEntry| $ 54))))) - -(DEFUN |POLYCAT-;monomial;SLLS;8| (|p| |lv| |ln| $) - (COND - ((NULL |lv|) - (COND - ((NULL |ln|) |p|) - ('T (|error| "mismatched lists in monomial")))) - ((NULL |ln|) (|error| "mismatched lists in monomial")) - ('T - (SPADCALL - (SPADCALL |p| (|SPADfirst| |lv|) (|SPADfirst| |ln|) - (|getShellEntry| $ 38)) - (CDR |lv|) (CDR |ln|) (|getShellEntry| $ 56))))) - -(DEFUN |POLYCAT-;retract;SVarSet;9| (|p| $) - (PROG (#0=#:G1479 |q|) - (RETURN - (SEQ (LETT |q| - (PROG2 (LETT #0# (SPADCALL |p| (|getShellEntry| $ 43)) - |POLYCAT-;retract;SVarSet;9|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) (|getShellEntry| $ 9) - #0#)) - |POLYCAT-;retract;SVarSet;9|) - (EXIT (COND - ((SPADCALL (SPADCALL |q| (|getShellEntry| $ 58)) |p| - (|getShellEntry| $ 44)) - |q|) - ('T (|error| "Polynomial is not a single variable")))))))) - -(DEFUN |POLYCAT-;retractIfCan;SU;10| (|p| $) - (PROG (|q| #0=#:G1487) - (RETURN - (SEQ (EXIT (SEQ (SEQ (LETT |q| - (SPADCALL |p| (|getShellEntry| $ 43)) - |POLYCAT-;retractIfCan;SU;10|) - (EXIT (COND - ((QEQCAR |q| 0) - (COND - ((SPADCALL - (SPADCALL (QCDR |q|) - (|getShellEntry| $ 58)) - |p| (|getShellEntry| $ 44)) - (PROGN - (LETT #0# |q| - |POLYCAT-;retractIfCan;SU;10|) - (GO #0#)))))))) - (EXIT (CONS 1 "failed")))) - #0# (EXIT #0#))))) - -(DEFUN |POLYCAT-;mkPrim| (|p| $) - (SPADCALL (|spadConstant| $ 35) (SPADCALL |p| (|getShellEntry| $ 61)) - (|getShellEntry| $ 62))) - -(DEFUN |POLYCAT-;primitiveMonomials;SL;12| (|p| $) - (PROG (#0=#:G1492 |q| #1=#:G1493) - (RETURN - (SEQ (PROGN - (LETT #0# NIL |POLYCAT-;primitiveMonomials;SL;12|) - (SEQ (LETT |q| NIL |POLYCAT-;primitiveMonomials;SL;12|) - (LETT #1# (SPADCALL |p| (|getShellEntry| $ 29)) - |POLYCAT-;primitiveMonomials;SL;12|) - G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |q| (CAR #1#) - |POLYCAT-;primitiveMonomials;SL;12|) - NIL)) - (GO G191))) - (SEQ (EXIT (LETT #0# - (CONS (|POLYCAT-;mkPrim| |q| $) #0#) - |POLYCAT-;primitiveMonomials;SL;12|))) - (LETT #1# (CDR #1#) - |POLYCAT-;primitiveMonomials;SL;12|) - (GO G190) G191 (EXIT (NREVERSE0 #0#)))))))) - -(DEFUN |POLYCAT-;totalDegree;SNni;13| (|p| $) - (PROG (#0=#:G1495 |d| |u|) - (RETURN - (SEQ (COND - ((SPADCALL |p| (|getShellEntry| $ 64)) 0) - ('T - (SEQ (LETT |u| - (SPADCALL |p| - (PROG2 (LETT #0# - (SPADCALL |p| - (|getShellEntry| $ 43)) - |POLYCAT-;totalDegree;SNni;13|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) - (|getShellEntry| $ 9) #0#)) - (|getShellEntry| $ 49)) - |POLYCAT-;totalDegree;SNni;13|) - (LETT |d| 0 |POLYCAT-;totalDegree;SNni;13|) - (SEQ G190 - (COND - ((NULL (SPADCALL |u| (|spadConstant| $ 65) - (|getShellEntry| $ 66))) - (GO G191))) - (SEQ (LETT |d| - (MAX |d| - (+ - (SPADCALL |u| - (|getShellEntry| $ 67)) - (SPADCALL - (SPADCALL |u| - (|getShellEntry| $ 68)) - (|getShellEntry| $ 69)))) - |POLYCAT-;totalDegree;SNni;13|) - (EXIT (LETT |u| - (SPADCALL |u| - (|getShellEntry| $ 70)) - |POLYCAT-;totalDegree;SNni;13|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT |d|)))))))) - -(DEFUN |POLYCAT-;totalDegree;SLNni;14| (|p| |lv| $) - (PROG (#0=#:G1503 |v| |w| |d| |u|) - (RETURN - (SEQ (COND - ((SPADCALL |p| (|getShellEntry| $ 64)) 0) - ('T - (SEQ (LETT |u| - (SPADCALL |p| - (LETT |v| - (PROG2 - (LETT #0# - (SPADCALL |p| - (|getShellEntry| $ 43)) - |POLYCAT-;totalDegree;SLNni;14|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) - (|getShellEntry| $ 9) #0#)) - |POLYCAT-;totalDegree;SLNni;14|) - (|getShellEntry| $ 49)) - |POLYCAT-;totalDegree;SLNni;14|) - (LETT |d| 0 |POLYCAT-;totalDegree;SLNni;14|) - (LETT |w| 0 |POLYCAT-;totalDegree;SLNni;14|) - (COND - ((SPADCALL |v| |lv| (|getShellEntry| $ 72)) - (LETT |w| 1 |POLYCAT-;totalDegree;SLNni;14|))) - (SEQ G190 - (COND - ((NULL (SPADCALL |u| (|spadConstant| $ 65) - (|getShellEntry| $ 66))) - (GO G191))) - (SEQ (LETT |d| - (MAX |d| - (+ - (* |w| - (SPADCALL |u| - (|getShellEntry| $ 67))) - (SPADCALL - (SPADCALL |u| - (|getShellEntry| $ 68)) - |lv| (|getShellEntry| $ 73)))) - |POLYCAT-;totalDegree;SLNni;14|) - (EXIT (LETT |u| - (SPADCALL |u| - (|getShellEntry| $ 70)) - |POLYCAT-;totalDegree;SLNni;14|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT |d|)))))))) - -(DEFUN |POLYCAT-;resultant;2SVarSetS;15| (|p1| |p2| |mvar| $) - (SPADCALL (SPADCALL |p1| |mvar| (|getShellEntry| $ 49)) - (SPADCALL |p2| |mvar| (|getShellEntry| $ 49)) - (|getShellEntry| $ 75))) - -(DEFUN |POLYCAT-;discriminant;SVarSetS;16| (|p| |var| $) - (SPADCALL (SPADCALL |p| |var| (|getShellEntry| $ 49)) - (|getShellEntry| $ 77))) - -(DEFUN |POLYCAT-;allMonoms| (|l| $) - (PROG (#0=#:G1515 |p| #1=#:G1516) - (RETURN - (SEQ (SPADCALL - (SPADCALL - (PROGN - (LETT #0# NIL |POLYCAT-;allMonoms|) - (SEQ (LETT |p| NIL |POLYCAT-;allMonoms|) - (LETT #1# |l| |POLYCAT-;allMonoms|) G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |p| (CAR #1#) - |POLYCAT-;allMonoms|) - NIL)) - (GO G191))) - (SEQ (EXIT (LETT #0# - (CONS - (SPADCALL |p| - (|getShellEntry| $ 79)) - #0#) - |POLYCAT-;allMonoms|))) - (LETT #1# (CDR #1#) |POLYCAT-;allMonoms|) - (GO G190) G191 (EXIT (NREVERSE0 #0#)))) - (|getShellEntry| $ 81)) - (|getShellEntry| $ 82)))))) - -(DEFUN |POLYCAT-;P2R| (|p| |b| |n| $) - (PROG (|w| |bj| #0=#:G1521 |i| #1=#:G1520) - (RETURN - (SEQ (LETT |w| - (SPADCALL |n| (|spadConstant| $ 23) - (|getShellEntry| $ 84)) - |POLYCAT-;P2R|) - (SEQ (LETT |bj| NIL |POLYCAT-;P2R|) - (LETT #0# |b| |POLYCAT-;P2R|) - (LETT |i| (SPADCALL |w| (|getShellEntry| $ 86)) - |POLYCAT-;P2R|) - (LETT #1# (QVSIZE |w|) |POLYCAT-;P2R|) G190 - (COND - ((OR (> |i| #1#) (ATOM #0#) - (PROGN - (LETT |bj| (CAR #0#) |POLYCAT-;P2R|) - NIL)) - (GO G191))) - (SEQ (EXIT (SPADCALL |w| |i| - (SPADCALL |p| |bj| - (|getShellEntry| $ 87)) - (|getShellEntry| $ 88)))) - (LETT |i| - (PROG1 (+ |i| 1) - (LETT #0# (CDR #0#) |POLYCAT-;P2R|)) - |POLYCAT-;P2R|) - (GO G190) G191 (EXIT NIL)) - (EXIT |w|))))) - -(DEFUN |POLYCAT-;eq2R| (|l| |b| $) - (PROG (#0=#:G1525 |bj| #1=#:G1526 #2=#:G1527 |p| #3=#:G1528) - (RETURN - (SEQ (SPADCALL - (PROGN - (LETT #0# NIL |POLYCAT-;eq2R|) - (SEQ (LETT |bj| NIL |POLYCAT-;eq2R|) - (LETT #1# |b| |POLYCAT-;eq2R|) G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |bj| (CAR #1#) |POLYCAT-;eq2R|) - NIL)) - (GO G191))) - (SEQ (EXIT (LETT #0# - (CONS - (PROGN - (LETT #2# NIL - |POLYCAT-;eq2R|) - (SEQ - (LETT |p| NIL - |POLYCAT-;eq2R|) - (LETT #3# |l| - |POLYCAT-;eq2R|) - G190 - (COND - ((OR (ATOM #3#) - (PROGN - (LETT |p| (CAR #3#) - |POLYCAT-;eq2R|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #2# - (CONS - (SPADCALL |p| |bj| - (|getShellEntry| $ 87)) - #2#) - |POLYCAT-;eq2R|))) - (LETT #3# (CDR #3#) - |POLYCAT-;eq2R|) - (GO G190) G191 - (EXIT (NREVERSE0 #2#)))) - #0#) - |POLYCAT-;eq2R|))) - (LETT #1# (CDR #1#) |POLYCAT-;eq2R|) (GO G190) - G191 (EXIT (NREVERSE0 #0#)))) - (|getShellEntry| $ 92)))))) - -(DEFUN |POLYCAT-;reducedSystem;MM;20| (|m| $) - (PROG (#0=#:G1537 |r| #1=#:G1538 |b| #2=#:G1539 |bj| #3=#:G1540 |d| - |mm| |l|) - (RETURN - (SEQ (LETT |l| (SPADCALL |m| (|getShellEntry| $ 95)) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |b| - (SPADCALL - (SPADCALL - (PROGN - (LETT #0# NIL - |POLYCAT-;reducedSystem;MM;20|) - (SEQ (LETT |r| NIL - |POLYCAT-;reducedSystem;MM;20|) - (LETT #1# |l| - |POLYCAT-;reducedSystem;MM;20|) - G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |r| (CAR #1#) - |POLYCAT-;reducedSystem;MM;20|) - NIL)) - (GO G191))) - (SEQ (EXIT - (LETT #0# - (CONS - (|POLYCAT-;allMonoms| |r| $) - #0#) - |POLYCAT-;reducedSystem;MM;20|))) - (LETT #1# (CDR #1#) - |POLYCAT-;reducedSystem;MM;20|) - (GO G190) G191 (EXIT (NREVERSE0 #0#)))) - (|getShellEntry| $ 81)) - (|getShellEntry| $ 82)) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |d| - (PROGN - (LETT #2# NIL |POLYCAT-;reducedSystem;MM;20|) - (SEQ (LETT |bj| NIL |POLYCAT-;reducedSystem;MM;20|) - (LETT #3# |b| |POLYCAT-;reducedSystem;MM;20|) - G190 - (COND - ((OR (ATOM #3#) - (PROGN - (LETT |bj| (CAR #3#) - |POLYCAT-;reducedSystem;MM;20|) - NIL)) - (GO G191))) - (SEQ (EXIT (LETT #2# - (CONS - (SPADCALL |bj| - (|getShellEntry| $ 61)) - #2#) - |POLYCAT-;reducedSystem;MM;20|))) - (LETT #3# (CDR #3#) - |POLYCAT-;reducedSystem;MM;20|) - (GO G190) G191 (EXIT (NREVERSE0 #2#)))) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |mm| (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) - |POLYCAT-;reducedSystem;MM;20|) - (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MM;20|) - (SEQ G190 - (COND - ((NULL (SPADCALL (NULL |l|) (|getShellEntry| $ 96))) - (GO G191))) - (SEQ (LETT |mm| - (SPADCALL |mm| - (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| - $) - (|getShellEntry| $ 97)) - |POLYCAT-;reducedSystem;MM;20|) - (EXIT (LETT |l| (CDR |l|) - |POLYCAT-;reducedSystem;MM;20|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT |mm|))))) - -(DEFUN |POLYCAT-;reducedSystem;MVR;21| (|m| |v| $) - (PROG (#0=#:G1551 |s| #1=#:G1552 |b| #2=#:G1553 |bj| #3=#:G1554 |d| - |n| |mm| |w| |l| |r|) - (RETURN - (SEQ (LETT |l| (SPADCALL |m| (|getShellEntry| $ 95)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |r| (SPADCALL |v| (|getShellEntry| $ 101)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |b| - (SPADCALL - (SPADCALL (|POLYCAT-;allMonoms| |r| $) - (SPADCALL - (PROGN - (LETT #0# NIL - |POLYCAT-;reducedSystem;MVR;21|) - (SEQ (LETT |s| NIL - |POLYCAT-;reducedSystem;MVR;21|) - (LETT #1# |l| - |POLYCAT-;reducedSystem;MVR;21|) - G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |s| (CAR #1#) - |POLYCAT-;reducedSystem;MVR;21|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #0# - (CONS - (|POLYCAT-;allMonoms| |s| $) - #0#) - |POLYCAT-;reducedSystem;MVR;21|))) - (LETT #1# (CDR #1#) - |POLYCAT-;reducedSystem;MVR;21|) - (GO G190) G191 - (EXIT (NREVERSE0 #0#)))) - (|getShellEntry| $ 81)) - (|getShellEntry| $ 102)) - (|getShellEntry| $ 82)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |d| - (PROGN - (LETT #2# NIL |POLYCAT-;reducedSystem;MVR;21|) - (SEQ (LETT |bj| NIL |POLYCAT-;reducedSystem;MVR;21|) - (LETT #3# |b| |POLYCAT-;reducedSystem;MVR;21|) - G190 - (COND - ((OR (ATOM #3#) - (PROGN - (LETT |bj| (CAR #3#) - |POLYCAT-;reducedSystem;MVR;21|) - NIL)) - (GO G191))) - (SEQ (EXIT (LETT #2# - (CONS - (SPADCALL |bj| - (|getShellEntry| $ 61)) - #2#) - |POLYCAT-;reducedSystem;MVR;21|))) - (LETT #3# (CDR #3#) - |POLYCAT-;reducedSystem;MVR;21|) - (GO G190) G191 (EXIT (NREVERSE0 #2#)))) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |n| (LENGTH |d|) |POLYCAT-;reducedSystem;MVR;21|) - (LETT |mm| (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |w| (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| |n| $) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MVR;21|) - (LETT |r| (CDR |r|) |POLYCAT-;reducedSystem;MVR;21|) - (SEQ G190 - (COND - ((NULL (SPADCALL (NULL |l|) (|getShellEntry| $ 96))) - (GO G191))) - (SEQ (LETT |mm| - (SPADCALL |mm| - (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| - $) - (|getShellEntry| $ 97)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |w| - (SPADCALL |w| - (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| - |n| $) - (|getShellEntry| $ 103)) - |POLYCAT-;reducedSystem;MVR;21|) - (LETT |l| (CDR |l|) - |POLYCAT-;reducedSystem;MVR;21|) - (EXIT (LETT |r| (CDR |r|) - |POLYCAT-;reducedSystem;MVR;21|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT (CONS |mm| |w|)))))) - -(DEFUN |POLYCAT-;gcdPolynomial;3Sup;22| (|pp| |qq| $) - (SPADCALL |pp| |qq| (|getShellEntry| $ 108))) - -(DEFUN |POLYCAT-;solveLinearPolynomialEquation;LSupU;23| (|lpp| |pp| $) - (SPADCALL |lpp| |pp| (|getShellEntry| $ 113))) - -(DEFUN |POLYCAT-;factorPolynomial;SupF;24| (|pp| $) - (SPADCALL |pp| (|getShellEntry| $ 118))) - -(DEFUN |POLYCAT-;factorSquareFreePolynomial;SupF;25| (|pp| $) - (SPADCALL |pp| (|getShellEntry| $ 121))) - -(DEFUN |POLYCAT-;factor;SF;26| (|p| $) - (PROG (|v| |ansR| #0=#:G1596 |w| #1=#:G1597 |up| |ansSUP| #2=#:G1598 - |ww| #3=#:G1599) - (RETURN - (SEQ (LETT |v| (SPADCALL |p| (|getShellEntry| $ 43)) - |POLYCAT-;factor;SF;26|) - (EXIT (COND - ((QEQCAR |v| 1) - (SEQ (LETT |ansR| - (SPADCALL - (SPADCALL |p| - (|getShellEntry| $ 39)) - (|getShellEntry| $ 124)) - |POLYCAT-;factor;SF;26|) - (EXIT (SPADCALL - (SPADCALL - (SPADCALL |ansR| - (|getShellEntry| $ 126)) - (|getShellEntry| $ 41)) - (PROGN - (LETT #0# NIL - |POLYCAT-;factor;SF;26|) - (SEQ - (LETT |w| NIL - |POLYCAT-;factor;SF;26|) - (LETT #1# - (SPADCALL |ansR| - (|getShellEntry| $ 130)) - |POLYCAT-;factor;SF;26|) - G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |w| (CAR #1#) - |POLYCAT-;factor;SF;26|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #0# - (CONS - (VECTOR (QVELT |w| 0) - (SPADCALL (QVELT |w| 1) - (|getShellEntry| $ 41)) - (QVELT |w| 2)) - #0#) - |POLYCAT-;factor;SF;26|))) - (LETT #1# (CDR #1#) - |POLYCAT-;factor;SF;26|) - (GO G190) G191 - (EXIT (NREVERSE0 #0#)))) - (|getShellEntry| $ 134))))) - ('T - (SEQ (LETT |up| - (SPADCALL |p| (QCDR |v|) - (|getShellEntry| $ 49)) - |POLYCAT-;factor;SF;26|) - (LETT |ansSUP| - (SPADCALL |up| (|getShellEntry| $ 118)) - |POLYCAT-;factor;SF;26|) - (EXIT (SPADCALL - (SPADCALL - (SPADCALL |ansSUP| - (|getShellEntry| $ 135)) - (QCDR |v|) (|getShellEntry| $ 136)) - (PROGN - (LETT #2# NIL - |POLYCAT-;factor;SF;26|) - (SEQ - (LETT |ww| NIL - |POLYCAT-;factor;SF;26|) - (LETT #3# - (SPADCALL |ansSUP| - (|getShellEntry| $ 139)) - |POLYCAT-;factor;SF;26|) - G190 - (COND - ((OR (ATOM #3#) - (PROGN - (LETT |ww| (CAR #3#) - |POLYCAT-;factor;SF;26|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #2# - (CONS - (VECTOR (QVELT |ww| 0) - (SPADCALL (QVELT |ww| 1) - (QCDR |v|) - (|getShellEntry| $ 136)) - (QVELT |ww| 2)) - #2#) - |POLYCAT-;factor;SF;26|))) - (LETT #3# (CDR #3#) - |POLYCAT-;factor;SF;26|) - (GO G190) G191 - (EXIT (NREVERSE0 #2#)))) - (|getShellEntry| $ 134))))))))))) - -(DEFUN |POLYCAT-;conditionP;MU;27| (|mat| $) - (PROG (|ll| #0=#:G1634 |z| #1=#:G1635 |ch| |l| #2=#:G1636 #3=#:G1637 - #4=#:G1606 #5=#:G1604 #6=#:G1605 #7=#:G1638 |vars| |degs| - #8=#:G1639 |d| #9=#:G1640 |nd| #10=#:G1633 #11=#:G1613 - |deg1| |redmons| #12=#:G1641 |v| #13=#:G1643 |u| - #14=#:G1642 |llR| |monslist| |ans| #15=#:G1644 - #16=#:G1645 |mons| #17=#:G1646 |m| #18=#:G1647 |i| - #19=#:G1629 #20=#:G1627 #21=#:G1628) - (RETURN - (SEQ (EXIT (SEQ (LETT |ll| - (SPADCALL - (SPADCALL |mat| - (|getShellEntry| $ 141)) - (|getShellEntry| $ 95)) - |POLYCAT-;conditionP;MU;27|) - (LETT |llR| - (PROGN - (LETT #0# NIL - |POLYCAT-;conditionP;MU;27|) - (SEQ (LETT |z| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #1# (|SPADfirst| |ll|) - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |z| (CAR #1#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #0# (CONS NIL #0#) - |POLYCAT-;conditionP;MU;27|))) - (LETT #1# (CDR #1#) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 - (EXIT (NREVERSE0 #0#)))) - |POLYCAT-;conditionP;MU;27|) - (LETT |monslist| NIL |POLYCAT-;conditionP;MU;27|) - (LETT |ch| (SPADCALL (|getShellEntry| $ 142)) - |POLYCAT-;conditionP;MU;27|) - (SEQ (LETT |l| NIL |POLYCAT-;conditionP;MU;27|) - (LETT #2# |ll| |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #2#) - (PROGN - (LETT |l| (CAR #2#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ (LETT |mons| - (PROGN - (LETT #6# NIL - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |u| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #3# |l| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #3#) - (PROGN - (LETT |u| (CAR #3#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (PROGN - (LETT #4# - (SPADCALL |u| - (|getShellEntry| $ 79)) - |POLYCAT-;conditionP;MU;27|) - (COND - (#6# - (LETT #5# - (SPADCALL #5# #4# - (|getShellEntry| $ - 143)) - |POLYCAT-;conditionP;MU;27|)) - ('T - (PROGN - (LETT #5# #4# - |POLYCAT-;conditionP;MU;27|) - (LETT #6# 'T - |POLYCAT-;conditionP;MU;27|))))))) - (LETT #3# (CDR #3#) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 (EXIT NIL)) - (COND - (#6# #5#) - ('T - (|IdentityError| - '|setUnion|)))) - |POLYCAT-;conditionP;MU;27|) - (LETT |redmons| NIL - |POLYCAT-;conditionP;MU;27|) - (SEQ (LETT |m| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #7# |mons| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #7#) - (PROGN - (LETT |m| (CAR #7#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (LETT |vars| - (SPADCALL |m| - (|getShellEntry| $ 32)) - |POLYCAT-;conditionP;MU;27|) - (LETT |degs| - (SPADCALL |m| |vars| - (|getShellEntry| $ 144)) - |POLYCAT-;conditionP;MU;27|) - (LETT |deg1| - (PROGN - (LETT #8# NIL - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |d| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #9# |degs| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #9#) - (PROGN - (LETT |d| (CAR #9#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #8# - (CONS - (SEQ - (LETT |nd| - (SPADCALL |d| |ch| - (|getShellEntry| $ - 146)) - |POLYCAT-;conditionP;MU;27|) - (EXIT - (COND - ((QEQCAR |nd| 1) - (PROGN - (LETT #10# - (CONS 1 "failed") - |POLYCAT-;conditionP;MU;27|) - (GO #10#))) - ('T - (PROG1 - (LETT #11# - (QCDR |nd|) - |POLYCAT-;conditionP;MU;27|) - (|check-subtype| - (>= #11# 0) - '(|NonNegativeInteger|) - #11#)))))) - #8#) - |POLYCAT-;conditionP;MU;27|))) - (LETT #9# (CDR #9#) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 - (EXIT (NREVERSE0 #8#)))) - |POLYCAT-;conditionP;MU;27|) - (LETT |redmons| - (CONS - (SPADCALL (|spadConstant| $ 34) - |vars| |deg1| - (|getShellEntry| $ 56)) - |redmons|) - |POLYCAT-;conditionP;MU;27|) - (EXIT - (LETT |llR| - (PROGN - (LETT #12# NIL - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |v| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #13# |llR| - |POLYCAT-;conditionP;MU;27|) - (LETT |u| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #14# |l| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #14#) - (PROGN - (LETT |u| (CAR #14#) - |POLYCAT-;conditionP;MU;27|) - NIL) - (ATOM #13#) - (PROGN - (LETT |v| (CAR #13#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #12# - (CONS - (CONS - (SPADCALL - (SPADCALL |u| |vars| - |degs| - (|getShellEntry| $ - 54)) - (|getShellEntry| $ - 147)) - |v|) - #12#) - |POLYCAT-;conditionP;MU;27|))) - (LETT #14# - (PROG1 (CDR #14#) - (LETT #13# (CDR #13#) - |POLYCAT-;conditionP;MU;27|)) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 - (EXIT (NREVERSE0 #12#)))) - |POLYCAT-;conditionP;MU;27|))) - (LETT #7# (CDR #7#) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 (EXIT NIL)) - (EXIT (LETT |monslist| - (CONS |redmons| |monslist|) - |POLYCAT-;conditionP;MU;27|))) - (LETT #2# (CDR #2#) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 (EXIT NIL)) - (LETT |ans| - (SPADCALL - (SPADCALL - (SPADCALL |llR| - (|getShellEntry| $ 92)) - (|getShellEntry| $ 148)) - (|getShellEntry| $ 150)) - |POLYCAT-;conditionP;MU;27|) - (EXIT (COND - ((QEQCAR |ans| 1) (CONS 1 "failed")) - ('T - (SEQ (LETT |i| 0 - |POLYCAT-;conditionP;MU;27|) - (EXIT - (CONS 0 - (PRIMVEC2ARR - (PROGN - (LETT #15# - (GETREFV (SIZE |monslist|)) - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT #16# 0 - |POLYCAT-;conditionP;MU;27|) - (LETT |mons| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #17# |monslist| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #17#) - (PROGN - (LETT |mons| (CAR #17#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (SETELT #15# #16# - (PROGN - (LETT #21# NIL - |POLYCAT-;conditionP;MU;27|) - (SEQ - (LETT |m| NIL - |POLYCAT-;conditionP;MU;27|) - (LETT #18# |mons| - |POLYCAT-;conditionP;MU;27|) - G190 - (COND - ((OR (ATOM #18#) - (PROGN - (LETT |m| - (CAR #18#) - |POLYCAT-;conditionP;MU;27|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (PROGN - (LETT #19# - (SPADCALL |m| - (SPADCALL - (SPADCALL - (QCDR |ans|) - (LETT |i| - (+ |i| 1) - |POLYCAT-;conditionP;MU;27|) - (|getShellEntry| - $ 151)) - (|getShellEntry| - $ 41)) - (|getShellEntry| - $ 152)) - |POLYCAT-;conditionP;MU;27|) - (COND - (#21# - (LETT #20# - (SPADCALL #20# - #19# - (|getShellEntry| - $ 153)) - |POLYCAT-;conditionP;MU;27|)) - ('T - (PROGN - (LETT #20# - #19# - |POLYCAT-;conditionP;MU;27|) - (LETT #21# 'T - |POLYCAT-;conditionP;MU;27|))))))) - (LETT #18# (CDR #18#) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 - (EXIT NIL)) - (COND - (#21# #20#) - ('T - (|spadConstant| $ 22))))))) - (LETT #17# - (PROG1 (CDR #17#) - (LETT #16# (QSADD1 #16#) - |POLYCAT-;conditionP;MU;27|)) - |POLYCAT-;conditionP;MU;27|) - (GO G190) G191 (EXIT NIL)) - #15#)))))))))) - #10# (EXIT #10#))))) - -(DEFUN |POLYCAT-;charthRoot;SU;28| (|p| $) - (PROG (|vars| |ans| |ch|) - (RETURN - (SEQ (LETT |vars| (SPADCALL |p| (|getShellEntry| $ 32)) - |POLYCAT-;charthRoot;SU;28|) - (EXIT (COND - ((NULL |vars|) - (SEQ (LETT |ans| - (SPADCALL - (SPADCALL |p| - (|getShellEntry| $ 147)) - (|getShellEntry| $ 155)) - |POLYCAT-;charthRoot;SU;28|) - (EXIT (COND - ((QEQCAR |ans| 1) (CONS 1 "failed")) - ('T - (CONS 0 - (SPADCALL (QCDR |ans|) - (|getShellEntry| $ 41)))))))) - ('T - (SEQ (LETT |ch| (SPADCALL (|getShellEntry| $ 142)) - |POLYCAT-;charthRoot;SU;28|) - (EXIT (|POLYCAT-;charthRootlv| |p| |vars| |ch| - $)))))))))) - -(DEFUN |POLYCAT-;charthRootlv| (|p| |vars| |ch| $) - (PROG (|v| |dd| |cp| |d| #0=#:G1668 |ans| |ansx| #1=#:G1675) - (RETURN - (SEQ (EXIT (COND - ((NULL |vars|) - (SEQ (LETT |ans| - (SPADCALL - (SPADCALL |p| - (|getShellEntry| $ 147)) - (|getShellEntry| $ 155)) - |POLYCAT-;charthRootlv|) - (EXIT (COND - ((QEQCAR |ans| 1) (CONS 1 "failed")) - ('T - (CONS 0 - (SPADCALL (QCDR |ans|) - (|getShellEntry| $ 41)))))))) - ('T - (SEQ (LETT |v| (|SPADfirst| |vars|) - |POLYCAT-;charthRootlv|) - (LETT |vars| (CDR |vars|) - |POLYCAT-;charthRootlv|) - (LETT |d| - (SPADCALL |p| |v| - (|getShellEntry| $ 37)) - |POLYCAT-;charthRootlv|) - (LETT |ans| (|spadConstant| $ 22) - |POLYCAT-;charthRootlv|) - (SEQ G190 (COND ((NULL (< 0 |d|)) (GO G191))) - (SEQ (LETT |dd| - (SPADCALL |d| |ch| - (|getShellEntry| $ 146)) - |POLYCAT-;charthRootlv|) - (EXIT - (COND - ((QEQCAR |dd| 1) - (PROGN - (LETT #1# (CONS 1 "failed") - |POLYCAT-;charthRootlv|) - (GO #1#))) - ('T - (SEQ - (LETT |cp| - (SPADCALL |p| |v| |d| - (|getShellEntry| $ 158)) - |POLYCAT-;charthRootlv|) - (LETT |p| - (SPADCALL |p| - (SPADCALL |cp| |v| |d| - (|getShellEntry| $ 38)) - (|getShellEntry| $ 159)) - |POLYCAT-;charthRootlv|) - (LETT |ansx| - (|POLYCAT-;charthRootlv| |cp| - |vars| |ch| $) - |POLYCAT-;charthRootlv|) - (EXIT - (COND - ((QEQCAR |ansx| 1) - (PROGN - (LETT #1# - (CONS 1 "failed") - |POLYCAT-;charthRootlv|) - (GO #1#))) - ('T - (SEQ - (LETT |d| - (SPADCALL |p| |v| - (|getShellEntry| $ 37)) - |POLYCAT-;charthRootlv|) - (EXIT - (LETT |ans| - (SPADCALL |ans| - (SPADCALL (QCDR |ansx|) - |v| - (PROG1 - (LETT #0# (QCDR |dd|) - |POLYCAT-;charthRootlv|) - (|check-subtype| - (>= #0# 0) - '(|NonNegativeInteger|) - #0#)) - (|getShellEntry| $ 38)) - (|getShellEntry| $ 153)) - |POLYCAT-;charthRootlv|))))))))))) - NIL (GO G190) G191 (EXIT NIL)) - (LETT |ansx| - (|POLYCAT-;charthRootlv| |p| |vars| |ch| - $) - |POLYCAT-;charthRootlv|) - (EXIT (COND - ((QEQCAR |ansx| 1) - (PROGN - (LETT #1# (CONS 1 "failed") - |POLYCAT-;charthRootlv|) - (GO #1#))) - ('T - (PROGN - (LETT #1# - (CONS 0 - (SPADCALL |ans| (QCDR |ansx|) - (|getShellEntry| $ 153))) - |POLYCAT-;charthRootlv|) - (GO #1#))))))))) - #1# (EXIT #1#))))) - -(DEFUN |POLYCAT-;monicDivide;2SVarSetR;30| (|p1| |p2| |mvar| $) - (PROG (|result|) - (RETURN - (SEQ (LETT |result| - (SPADCALL - (SPADCALL |p1| |mvar| (|getShellEntry| $ 49)) - (SPADCALL |p2| |mvar| (|getShellEntry| $ 49)) - (|getShellEntry| $ 161)) - |POLYCAT-;monicDivide;2SVarSetR;30|) - (EXIT (CONS (SPADCALL (QCAR |result|) |mvar| - (|getShellEntry| $ 136)) - (SPADCALL (QCDR |result|) |mvar| - (|getShellEntry| $ 136)))))))) - -(DEFUN |POLYCAT-;squareFree;SF;31| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 164))) - -(DEFUN |POLYCAT-;squareFree;SF;32| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 167))) - -(DEFUN |POLYCAT-;squareFree;SF;33| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 167))) - -(DEFUN |POLYCAT-;squareFreePart;2S;34| (|p| $) - (PROG (|s| |f| #0=#:G1691 #1=#:G1689 #2=#:G1687 #3=#:G1688) - (RETURN - (SEQ (SPADCALL - (SPADCALL - (LETT |s| (SPADCALL |p| (|getShellEntry| $ 168)) - |POLYCAT-;squareFreePart;2S;34|) - (|getShellEntry| $ 169)) - (PROGN - (LETT #3# NIL |POLYCAT-;squareFreePart;2S;34|) - (SEQ (LETT |f| NIL |POLYCAT-;squareFreePart;2S;34|) - (LETT #0# (SPADCALL |s| (|getShellEntry| $ 172)) - |POLYCAT-;squareFreePart;2S;34|) - G190 - (COND - ((OR (ATOM #0#) - (PROGN - (LETT |f| (CAR #0#) - |POLYCAT-;squareFreePart;2S;34|) - NIL)) - (GO G191))) - (SEQ (EXIT (PROGN - (LETT #1# (QCAR |f|) - |POLYCAT-;squareFreePart;2S;34|) - (COND - (#3# - (LETT #2# - (SPADCALL #2# #1# - (|getShellEntry| $ 152)) - |POLYCAT-;squareFreePart;2S;34|)) - ('T - (PROGN - (LETT #2# #1# - |POLYCAT-;squareFreePart;2S;34|) - (LETT #3# 'T - |POLYCAT-;squareFreePart;2S;34|))))))) - (LETT #0# (CDR #0#) - |POLYCAT-;squareFreePart;2S;34|) - (GO G190) G191 (EXIT NIL)) - (COND (#3# #2#) ('T (|spadConstant| $ 34)))) - (|getShellEntry| $ 152)))))) - -(DEFUN |POLYCAT-;content;SVarSetS;35| (|p| |v| $) - (SPADCALL (SPADCALL |p| |v| (|getShellEntry| $ 49)) - (|getShellEntry| $ 174))) - -(DEFUN |POLYCAT-;primitivePart;2S;36| (|p| $) - (PROG (#0=#:G1694) - (RETURN - (QVELT (SPADCALL - (PROG2 (LETT #0# - (SPADCALL |p| - (SPADCALL |p| - (|getShellEntry| $ 176)) - (|getShellEntry| $ 177)) - |POLYCAT-;primitivePart;2S;36|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) (|getShellEntry| $ 6) - #0#)) - (|getShellEntry| $ 179)) - 1)))) - -(DEFUN |POLYCAT-;primitivePart;SVarSetS;37| (|p| |v| $) - (PROG (#0=#:G1700) - (RETURN - (QVELT (SPADCALL - (PROG2 (LETT #0# - (SPADCALL |p| - (SPADCALL |p| |v| - (|getShellEntry| $ 181)) - (|getShellEntry| $ 182)) - |POLYCAT-;primitivePart;SVarSetS;37|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) (|getShellEntry| $ 6) - #0#)) - (|getShellEntry| $ 179)) - 1)))) - -(DEFUN |POLYCAT-;<;2SB;38| (|p| |q| $) - (PROG (|dp| |dq|) - (RETURN - (SEQ (LETT |dp| (SPADCALL |p| (|getShellEntry| $ 61)) - |POLYCAT-;<;2SB;38|) - (LETT |dq| (SPADCALL |q| (|getShellEntry| $ 61)) - |POLYCAT-;<;2SB;38|) - (EXIT (COND - ((SPADCALL |dp| |dq| (|getShellEntry| $ 184)) - (SPADCALL (|spadConstant| $ 23) - (SPADCALL |q| (|getShellEntry| $ 39)) - (|getShellEntry| $ 185))) - ((SPADCALL |dq| |dp| (|getShellEntry| $ 184)) - (SPADCALL (SPADCALL |p| (|getShellEntry| $ 39)) - (|spadConstant| $ 23) (|getShellEntry| $ 185))) - ('T - (SPADCALL - (SPADCALL (SPADCALL |p| |q| - (|getShellEntry| $ 159)) - (|getShellEntry| $ 39)) - (|spadConstant| $ 23) (|getShellEntry| $ 185))))))))) - -(DEFUN |POLYCAT-;patternMatch;SP2Pmr;39| (|p| |pat| |l| $) - (SPADCALL |p| |pat| |l| (|getShellEntry| $ 190))) - -(DEFUN |POLYCAT-;patternMatch;SP2Pmr;40| (|p| |pat| |l| $) - (SPADCALL |p| |pat| |l| (|getShellEntry| $ 197))) - -(DEFUN |POLYCAT-;convert;SP;41| (|x| $) - (SPADCALL (ELT $ 200) (ELT $ 201) |x| (|getShellEntry| $ 205))) - -(DEFUN |POLYCAT-;convert;SP;42| (|x| $) - (SPADCALL (ELT $ 207) (ELT $ 208) |x| (|getShellEntry| $ 212))) - -(DEFUN |POLYCAT-;convert;SIf;43| (|p| $) - (SPADCALL (ELT $ 215) (ELT $ 216) |p| (|getShellEntry| $ 220))) - -(DEFUN |PolynomialCategory&| (|#1| |#2| |#3| |#4|) - (PROG (|dv$1| |dv$2| |dv$3| |dv$4| |dv$| $ |pv$|) - (RETURN - (PROGN - (LETT |dv$1| (|devaluate| |#1|) . #0=(|PolynomialCategory&|)) - (LETT |dv$2| (|devaluate| |#2|) . #0#) - (LETT |dv$3| (|devaluate| |#3|) . #0#) - (LETT |dv$4| (|devaluate| |#4|) . #0#) - (LETT |dv$| - (LIST '|PolynomialCategory&| |dv$1| |dv$2| |dv$3| |dv$4|) . #0#) - (LETT $ (|newShell| 229) . #0#) - (|setShellEntry| $ 0 |dv$|) - (|setShellEntry| $ 3 - (LETT |pv$| - (|buildPredVector| 0 0 - (LIST (|HasCategory| |#2| - '(|PolynomialFactorizationExplicit|)) - (|HasAttribute| |#2| - '|canonicalUnitNormal|) - (|HasCategory| |#2| '(|GcdDomain|)) - (|HasCategory| |#2| '(|CommutativeRing|)) - (|HasCategory| |#4| - '(|PatternMatchable| (|Float|))) - (|HasCategory| |#2| - '(|PatternMatchable| (|Float|))) - (|HasCategory| |#4| - '(|PatternMatchable| (|Integer|))) - (|HasCategory| |#2| - '(|PatternMatchable| (|Integer|))) - (|HasCategory| |#4| - '(|ConvertibleTo| - (|Pattern| (|Float|)))) - (|HasCategory| |#2| - '(|ConvertibleTo| - (|Pattern| (|Float|)))) - (|HasCategory| |#4| - '(|ConvertibleTo| - (|Pattern| (|Integer|)))) - (|HasCategory| |#2| - '(|ConvertibleTo| - (|Pattern| (|Integer|)))) - (|HasCategory| |#4| - '(|ConvertibleTo| (|InputForm|))) - (|HasCategory| |#2| - '(|ConvertibleTo| (|InputForm|))) - (|HasCategory| |#2| '(|OrderedSet|)))) . #0#)) - (|stuffDomainSlots| $) - (|setShellEntry| $ 6 |#1|) - (|setShellEntry| $ 7 |#2|) - (|setShellEntry| $ 8 |#3|) - (|setShellEntry| $ 9 |#4|) - (COND - ((|testBitVector| |pv$| 4) - (PROGN - (|setShellEntry| $ 76 - (CONS (|dispatchFunction| - |POLYCAT-;resultant;2SVarSetS;15|) - $)) - (|setShellEntry| $ 78 - (CONS (|dispatchFunction| - |POLYCAT-;discriminant;SVarSetS;16|) - $))))) - (COND - ((|HasCategory| |#2| '(|IntegralDomain|)) - (PROGN - (|setShellEntry| $ 99 - (CONS (|dispatchFunction| - |POLYCAT-;reducedSystem;MM;20|) - $)) - (|setShellEntry| $ 106 - (CONS (|dispatchFunction| - |POLYCAT-;reducedSystem;MVR;21|) - $))))) - (COND - ((|testBitVector| |pv$| 1) - (PROGN - (|setShellEntry| $ 109 - (CONS (|dispatchFunction| - |POLYCAT-;gcdPolynomial;3Sup;22|) - $)) - (|setShellEntry| $ 116 - (CONS (|dispatchFunction| - |POLYCAT-;solveLinearPolynomialEquation;LSupU;23|) - $)) - (|setShellEntry| $ 120 - (CONS (|dispatchFunction| - |POLYCAT-;factorPolynomial;SupF;24|) - $)) - (|setShellEntry| $ 122 - (CONS (|dispatchFunction| - |POLYCAT-;factorSquareFreePolynomial;SupF;25|) - $)) - (|setShellEntry| $ 140 - (CONS (|dispatchFunction| |POLYCAT-;factor;SF;26|) $)) - (COND - ((|HasCategory| |#2| '(|CharacteristicNonZero|)) - (PROGN - (|setShellEntry| $ 154 - (CONS (|dispatchFunction| - |POLYCAT-;conditionP;MU;27|) - $)))))))) - (COND - ((|HasCategory| |#2| '(|CharacteristicNonZero|)) - (PROGN - (|setShellEntry| $ 156 - (CONS (|dispatchFunction| |POLYCAT-;charthRoot;SU;28|) - $))))) - (COND - ((|testBitVector| |pv$| 3) - (PROGN - (COND - ((|HasCategory| |#2| '(|EuclideanDomain|)) - (COND - ((|HasCategory| |#2| '(|CharacteristicZero|)) - (|setShellEntry| $ 165 - (CONS (|dispatchFunction| - |POLYCAT-;squareFree;SF;31|) - $))) - ('T - (|setShellEntry| $ 165 - (CONS (|dispatchFunction| - |POLYCAT-;squareFree;SF;32|) - $))))) - ('T - (|setShellEntry| $ 165 - (CONS (|dispatchFunction| - |POLYCAT-;squareFree;SF;33|) - $)))) - (|setShellEntry| $ 173 - (CONS (|dispatchFunction| - |POLYCAT-;squareFreePart;2S;34|) - $)) - (|setShellEntry| $ 175 - (CONS (|dispatchFunction| - |POLYCAT-;content;SVarSetS;35|) - $)) - (|setShellEntry| $ 180 - (CONS (|dispatchFunction| - |POLYCAT-;primitivePart;2S;36|) - $)) - (|setShellEntry| $ 183 - (CONS (|dispatchFunction| - |POLYCAT-;primitivePart;SVarSetS;37|) - $))))) - (COND - ((|testBitVector| |pv$| 15) - (PROGN - (|setShellEntry| $ 186 - (CONS (|dispatchFunction| |POLYCAT-;<;2SB;38|) $)) - (COND - ((|testBitVector| |pv$| 8) - (COND - ((|testBitVector| |pv$| 7) - (|setShellEntry| $ 192 - (CONS (|dispatchFunction| - |POLYCAT-;patternMatch;SP2Pmr;39|) - $)))))) - (COND - ((|testBitVector| |pv$| 6) - (COND - ((|testBitVector| |pv$| 5) - (|setShellEntry| $ 199 - (CONS (|dispatchFunction| - |POLYCAT-;patternMatch;SP2Pmr;40|) - $))))))))) - (COND - ((|testBitVector| |pv$| 12) - (COND - ((|testBitVector| |pv$| 11) - (|setShellEntry| $ 206 - (CONS (|dispatchFunction| |POLYCAT-;convert;SP;41|) - $)))))) - (COND - ((|testBitVector| |pv$| 10) - (COND - ((|testBitVector| |pv$| 9) - (|setShellEntry| $ 213 - (CONS (|dispatchFunction| |POLYCAT-;convert;SP;42|) - $)))))) - (COND - ((|testBitVector| |pv$| 14) - (COND - ((|testBitVector| |pv$| 13) - (|setShellEntry| $ 221 - (CONS (|dispatchFunction| |POLYCAT-;convert;SIf;43|) - $)))))) - $)))) - -(MAKEPROP '|PolynomialCategory&| '|infovec| - (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) - (|local| |#3|) (|local| |#4|) (|Equation| 6) (0 . |lhs|) - (|Union| 9 '"failed") (5 . |retractIfCan|) - (10 . |retract|) (15 . |rhs|) (|List| 9) (|List| $) - (20 . |eval|) (|Equation| $) (|List| 19) - |POLYCAT-;eval;SLS;1| (27 . |Zero|) (31 . |Zero|) - (|Boolean|) (35 . ~=) (41 . |leadingMonomial|) - (46 . |reductum|) |POLYCAT-;monomials;SL;2| - (51 . |monomials|) (|Union| 17 '"failed") - |POLYCAT-;isPlus;SU;3| (56 . |variables|) - (61 . |monomial?|) (66 . |One|) (70 . |One|) - (|NonNegativeInteger|) (74 . |degree|) (80 . |monomial|) - (87 . |leadingCoefficient|) (92 . =) (98 . |coerce|) - |POLYCAT-;isTimes;SU;4| (103 . |mainVariable|) (108 . =) - (|Record| (|:| |var| 9) (|:| |exponent| 36)) - (|Union| 45 '"failed") |POLYCAT-;isExpt;SU;5| - (|SparseUnivariatePolynomial| $) (114 . |univariate|) - (|SparseUnivariatePolynomial| 6) (120 . |coefficient|) - |POLYCAT-;coefficient;SVarSetNniS;6| (|List| 36) - (126 . |coefficient|) |POLYCAT-;coefficient;SLLS;7| - (133 . |monomial|) |POLYCAT-;monomial;SLLS;8| - (140 . |coerce|) |POLYCAT-;retract;SVarSet;9| - |POLYCAT-;retractIfCan;SU;10| (145 . |degree|) - (150 . |monomial|) |POLYCAT-;primitiveMonomials;SL;12| - (156 . |ground?|) (161 . |Zero|) (165 . ~=) - (171 . |degree|) (176 . |leadingCoefficient|) - (181 . |totalDegree|) (186 . |reductum|) - |POLYCAT-;totalDegree;SNni;13| (191 . |member?|) - (197 . |totalDegree|) |POLYCAT-;totalDegree;SLNni;14| - (203 . |resultant|) (209 . |resultant|) - (216 . |discriminant|) (221 . |discriminant|) - (227 . |primitiveMonomials|) (|List| 6) (232 . |concat|) - (237 . |removeDuplicates!|) (|Vector| 7) (242 . |new|) - (|Integer|) (248 . |minIndex|) (253 . |coefficient|) - (259 . |qsetelt!|) (|List| 7) (|List| 89) (|Matrix| 7) - (266 . |matrix|) (|List| 80) (|Matrix| 6) - (271 . |listOfLists|) (276 . |not|) (281 . |vertConcat|) - (|Matrix| $) (287 . |reducedSystem|) (|Vector| 6) - (292 . |entries|) (297 . |concat|) (303 . |concat|) - (|Record| (|:| |mat| 91) (|:| |vec| 83)) (|Vector| $) - (309 . |reducedSystem|) - (|GeneralPolynomialGcdPackage| 8 9 7 6) - (315 . |gcdPolynomial|) (321 . |gcdPolynomial|) - (|List| 50) (|Union| 110 '"failed") - (|PolynomialFactorizationByRecursion| 7 8 9 6) - (327 . |solveLinearPolynomialEquationByRecursion|) - (|List| 48) (|Union| 114 '"failed") - (333 . |solveLinearPolynomialEquation|) (|Factored| 50) - (339 . |factorByRecursion|) (|Factored| 48) - (344 . |factorPolynomial|) - (349 . |factorSquareFreeByRecursion|) - (354 . |factorSquareFreePolynomial|) (|Factored| $) - (359 . |factor|) (|Factored| 7) (364 . |unit|) - (|Union| '"nil" '"sqfr" '"irred" '"prime") - (|Record| (|:| |flg| 127) (|:| |fctr| 7) (|:| |xpnt| 85)) - (|List| 128) (369 . |factorList|) - (|Record| (|:| |flg| 127) (|:| |fctr| 6) (|:| |xpnt| 85)) - (|List| 131) (|Factored| 6) (374 . |makeFR|) - (380 . |unit|) (385 . |multivariate|) - (|Record| (|:| |flg| 127) (|:| |fctr| 50) (|:| |xpnt| 85)) - (|List| 137) (391 . |factorList|) (396 . |factor|) - (401 . |transpose|) (406 . |characteristic|) - (410 . |setUnion|) (416 . |degree|) (|Union| $ '"failed") - (422 . |exquo|) (428 . |ground|) (433 . |transpose|) - (|Union| 105 '"failed") (438 . |conditionP|) (443 . |elt|) - (449 . *) (455 . +) (461 . |conditionP|) - (466 . |charthRoot|) (471 . |charthRoot|) (476 . |Zero|) - (480 . |coefficient|) (487 . -) - (|Record| (|:| |quotient| $) (|:| |remainder| $)) - (493 . |monicDivide|) |POLYCAT-;monicDivide;2SVarSetR;30| - (|MultivariateSquareFree| 8 9 7 6) (499 . |squareFree|) - (504 . |squareFree|) (|PolynomialSquareFree| 9 8 7 6) - (509 . |squareFree|) (514 . |squareFree|) (519 . |unit|) - (|Record| (|:| |factor| 6) (|:| |exponent| 85)) - (|List| 170) (524 . |factors|) (529 . |squareFreePart|) - (534 . |content|) (539 . |content|) (545 . |content|) - (550 . |exquo|) - (|Record| (|:| |unit| $) (|:| |canonical| $) - (|:| |associate| $)) - (556 . |unitNormal|) (561 . |primitivePart|) - (566 . |content|) (572 . |exquo|) (578 . |primitivePart|) - (584 . <) (590 . <) (596 . <) (|PatternMatchResult| 85 6) - (|Pattern| 85) - (|PatternMatchPolynomialCategory| 85 8 9 7 6) - (602 . |patternMatch|) (|PatternMatchResult| 85 $) - (609 . |patternMatch|) (|Float|) - (|PatternMatchResult| 193 6) (|Pattern| 193) - (|PatternMatchPolynomialCategory| 193 8 9 7 6) - (616 . |patternMatch|) (|PatternMatchResult| 193 $) - (623 . |patternMatch|) (630 . |convert|) (635 . |convert|) - (|Mapping| 188 9) (|Mapping| 188 7) - (|PolynomialCategoryLifting| 8 9 7 6 188) (640 . |map|) - (647 . |convert|) (652 . |convert|) (657 . |convert|) - (|Mapping| 195 9) (|Mapping| 195 7) - (|PolynomialCategoryLifting| 8 9 7 6 195) (662 . |map|) - (669 . |convert|) (|InputForm|) (674 . |convert|) - (679 . |convert|) (|Mapping| 214 9) (|Mapping| 214 7) - (|PolynomialCategoryLifting| 8 9 7 6 214) (684 . |map|) - (691 . |convert|) (|Matrix| 85) (|Vector| 85) - (|Record| (|:| |mat| 222) (|:| |vec| 223)) - (|Union| 85 '"failed") (|Fraction| 85) - (|Union| 226 '"failed") (|Union| 7 '"failed")) - '#(|totalDegree| 696 |squareFreePart| 707 |squareFree| 712 - |solveLinearPolynomialEquation| 717 |retractIfCan| 723 - |retract| 728 |resultant| 733 |reducedSystem| 740 - |primitivePart| 751 |primitiveMonomials| 762 - |patternMatch| 767 |monomials| 781 |monomial| 786 - |monicDivide| 793 |isTimes| 800 |isPlus| 805 |isExpt| 810 - |gcdPolynomial| 815 |factorSquareFreePolynomial| 821 - |factorPolynomial| 826 |factor| 831 |eval| 836 - |discriminant| 842 |convert| 848 |content| 863 - |conditionP| 869 |coefficient| 874 |charthRoot| 888 < 893) - 'NIL - (CONS (|makeByteWordVec2| 1 'NIL) - (CONS '#() - (CONS '#() - (|makeByteWordVec2| 221 - '(1 10 6 0 11 1 6 12 0 13 1 6 9 0 14 1 - 10 6 0 15 3 6 0 0 16 17 18 0 6 0 22 0 - 7 0 23 2 6 24 0 0 25 1 6 0 0 26 1 6 0 - 0 27 1 6 17 0 29 1 6 16 0 32 1 6 24 0 - 33 0 6 0 34 0 7 0 35 2 6 36 0 9 37 3 - 6 0 0 9 36 38 1 6 7 0 39 2 7 24 0 0 - 40 1 6 0 7 41 1 6 12 0 43 2 6 24 0 0 - 44 2 6 48 0 9 49 2 50 6 0 36 51 3 6 0 - 0 16 53 54 3 6 0 0 16 53 56 1 6 0 9 - 58 1 6 8 0 61 2 6 0 7 8 62 1 6 24 0 - 64 0 50 0 65 2 50 24 0 0 66 1 50 36 0 - 67 1 50 6 0 68 1 6 36 0 69 1 50 0 0 - 70 2 16 24 9 0 72 2 6 36 0 16 73 2 50 - 6 0 0 75 3 0 0 0 0 9 76 1 50 6 0 77 2 - 0 0 0 9 78 1 6 17 0 79 1 80 0 17 81 1 - 80 0 0 82 2 83 0 36 7 84 1 83 85 0 86 - 2 6 7 0 8 87 3 83 7 0 85 7 88 1 91 0 - 90 92 1 94 93 0 95 1 24 0 0 96 2 91 0 - 0 0 97 1 0 91 98 99 1 100 80 0 101 2 - 80 0 0 0 102 2 83 0 0 0 103 2 0 104 - 98 105 106 2 107 50 50 50 108 2 0 48 - 48 48 109 2 112 111 110 50 113 2 0 - 115 114 48 116 1 112 117 50 118 1 0 - 119 48 120 1 112 117 50 121 1 0 119 - 48 122 1 7 123 0 124 1 125 7 0 126 1 - 125 129 0 130 2 133 0 6 132 134 1 117 - 50 0 135 2 6 0 48 9 136 1 117 138 0 - 139 1 0 123 0 140 1 94 0 0 141 0 6 36 - 142 2 80 0 0 0 143 2 6 53 0 16 144 2 - 85 145 0 0 146 1 6 7 0 147 1 91 0 0 - 148 1 7 149 98 150 2 83 7 0 85 151 2 - 6 0 0 0 152 2 6 0 0 0 153 1 0 149 98 - 154 1 7 145 0 155 1 0 145 0 156 0 8 0 - 157 3 6 0 0 9 36 158 2 6 0 0 0 159 2 - 50 160 0 0 161 1 163 133 6 164 1 0 - 123 0 165 1 166 133 6 167 1 6 123 0 - 168 1 133 6 0 169 1 133 171 0 172 1 0 - 0 0 173 1 50 6 0 174 2 0 0 0 9 175 1 - 6 7 0 176 2 6 145 0 7 177 1 6 178 0 - 179 1 0 0 0 180 2 6 0 0 9 181 2 6 145 - 0 0 182 2 0 0 0 9 183 2 8 24 0 0 184 - 2 7 24 0 0 185 2 0 24 0 0 186 3 189 - 187 6 188 187 190 3 0 191 0 188 191 - 192 3 196 194 6 195 194 197 3 0 198 0 - 195 198 199 1 9 188 0 200 1 7 188 0 - 201 3 204 188 202 203 6 205 1 0 188 0 - 206 1 9 195 0 207 1 7 195 0 208 3 211 - 195 209 210 6 212 1 0 195 0 213 1 9 - 214 0 215 1 7 214 0 216 3 219 214 217 - 218 6 220 1 0 214 0 221 2 0 36 0 16 - 74 1 0 36 0 71 1 0 0 0 173 1 0 123 0 - 165 2 0 115 114 48 116 1 0 12 0 60 1 - 0 9 0 59 3 0 0 0 0 9 76 1 0 91 98 99 - 2 0 104 98 105 106 2 0 0 0 9 183 1 0 - 0 0 180 1 0 17 0 63 3 0 191 0 188 191 - 192 3 0 198 0 195 198 199 1 0 17 0 28 - 3 0 0 0 16 53 57 3 0 160 0 0 9 162 1 - 0 30 0 42 1 0 30 0 31 1 0 46 0 47 2 0 - 48 48 48 109 1 0 119 48 122 1 0 119 - 48 120 1 0 123 0 140 2 0 0 0 20 21 2 - 0 0 0 9 78 1 0 214 0 221 1 0 188 0 - 206 1 0 195 0 213 2 0 0 0 9 175 1 0 - 149 98 154 3 0 0 0 16 53 55 3 0 0 0 9 - 36 52 1 0 145 0 156 2 0 24 0 0 186))))) - '|lookupComplete|)) -@ \section{package POLYLIFT PolynomialCategoryLifting} @@ -3024,1417 +1007,6 @@ UnivariatePolynomialCategory(R:Ring): Category == ans @ -\section{UPOLYC.lsp BOOTSTRAP} -{\bf UPOLYC} depends on itself. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf UPOLYC} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf UPOLYC.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<<UPOLYC.lsp BOOTSTRAP>>= - -(/VERSIONCHECK 2) - -(DEFPARAMETER |UnivariatePolynomialCategory;CAT| 'NIL) - -(DEFPARAMETER |UnivariatePolynomialCategory;AL| 'NIL) - -(DEFUN |UnivariatePolynomialCategory| (#0=#:G1424) - (LET (#1=#:G1425) - (COND - ((SETQ #1# - (|assoc| (|devaluate| #0#) - |UnivariatePolynomialCategory;AL|)) - (CDR #1#)) - (T (SETQ |UnivariatePolynomialCategory;AL| - (|cons5| (CONS (|devaluate| #0#) - (SETQ #1# - (|UnivariatePolynomialCategory;| - #0#))) - |UnivariatePolynomialCategory;AL|)) - #1#)))) - -(DEFUN |UnivariatePolynomialCategory;| (|t#1|) - (PROG (#0=#:G1423) - (RETURN - (PROG1 (LETT #0# - (|sublisV| - (PAIR '(|t#1|) (LIST (|devaluate| |t#1|))) - (|sublisV| - (PAIR '(#1=#:G1421 #2=#:G1422) - (LIST '(|NonNegativeInteger|) - '(|SingletonAsOrderedSet|))) - (COND - (|UnivariatePolynomialCategory;CAT|) - ('T - (LETT |UnivariatePolynomialCategory;CAT| - (|Join| - (|PolynomialCategory| '|t#1| '#1# - '#2#) - (|Eltable| '|t#1| '|t#1|) - (|Eltable| '$ '$) - (|DifferentialRing|) - (|DifferentialExtension| '|t#1|) - (|mkCategory| '|domain| - '(((|vectorise| - ((|Vector| |t#1|) $ - (|NonNegativeInteger|))) - T) - ((|makeSUP| - ((|SparseUnivariatePolynomial| - |t#1|) - $)) - T) - ((|unmakeSUP| - ($ - (|SparseUnivariatePolynomial| - |t#1|))) - T) - ((|multiplyExponents| - ($ $ (|NonNegativeInteger|))) - T) - ((|divideExponents| - ((|Union| $ "failed") $ - (|NonNegativeInteger|))) - T) - ((|monicDivide| - ((|Record| (|:| |quotient| $) - (|:| |remainder| $)) - $ $)) - T) - ((|karatsubaDivide| - ((|Record| (|:| |quotient| $) - (|:| |remainder| $)) - $ (|NonNegativeInteger|))) - T) - ((|shiftRight| - ($ $ (|NonNegativeInteger|))) - T) - ((|shiftLeft| - ($ $ (|NonNegativeInteger|))) - T) - ((|pseudoRemainder| ($ $ $)) T) - ((|differentiate| - ($ $ (|Mapping| |t#1| |t#1|) - $)) - T) - ((|discriminant| (|t#1| $)) - (|has| |t#1| - (|CommutativeRing|))) - ((|resultant| (|t#1| $ $)) - (|has| |t#1| - (|CommutativeRing|))) - ((|elt| - ((|Fraction| $) - (|Fraction| $) - (|Fraction| $))) - (|has| |t#1| - (|IntegralDomain|))) - ((|order| - ((|NonNegativeInteger|) $ $)) - (|has| |t#1| - (|IntegralDomain|))) - ((|subResultantGcd| ($ $ $)) - (|has| |t#1| - (|IntegralDomain|))) - ((|composite| - ((|Union| $ "failed") $ $)) - (|has| |t#1| - (|IntegralDomain|))) - ((|composite| - ((|Union| (|Fraction| $) - "failed") - (|Fraction| $) $)) - (|has| |t#1| - (|IntegralDomain|))) - ((|pseudoQuotient| ($ $ $)) - (|has| |t#1| - (|IntegralDomain|))) - ((|pseudoDivide| - ((|Record| (|:| |coef| |t#1|) - (|:| |quotient| $) - (|:| |remainder| $)) - $ $)) - (|has| |t#1| - (|IntegralDomain|))) - ((|separate| - ((|Record| - (|:| |primePart| $) - (|:| |commonPart| $)) - $ $)) - (|has| |t#1| (|GcdDomain|))) - ((|elt| - (|t#1| (|Fraction| $) |t#1|)) - (|has| |t#1| (|Field|))) - ((|integrate| ($ $)) - (|has| |t#1| - (|Algebra| - (|Fraction| (|Integer|)))))) - '(((|StepThrough|) - (|has| |t#1| (|StepThrough|))) - ((|Eltable| (|Fraction| $) - (|Fraction| $)) - (|has| |t#1| - (|IntegralDomain|))) - ((|EuclideanDomain|) - (|has| |t#1| (|Field|))) - (|additiveValuation| - (|has| |t#1| (|Field|)))) - '((|Fraction| $) - (|NonNegativeInteger|) - (|SparseUnivariatePolynomial| - |t#1|) - (|Vector| |t#1|)) - NIL)) - . #3=(|UnivariatePolynomialCategory|)))))) . #3#) - (SETELT #0# 0 - (LIST '|UnivariatePolynomialCategory| - (|devaluate| |t#1|))))))) -@ -\section{UPOLYC-.lsp BOOTSTRAP} -{\bf UPOLYC-} depends on {\bf UPOLYC}. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf UPOLYC-} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf UPOLYC-.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<<UPOLYC-.lsp BOOTSTRAP>>= - -(/VERSIONCHECK 2) - -(DEFUN |UPOLYC-;variables;SL;1| (|p| $) - (COND - ((OR (SPADCALL |p| (|getShellEntry| $ 9)) - (ZEROP (SPADCALL |p| (|getShellEntry| $ 11)))) - NIL) - ('T (LIST (SPADCALL (|getShellEntry| $ 13)))))) - -(DEFUN |UPOLYC-;degree;SSaosNni;2| (|p| |v| $) - (SPADCALL |p| (|getShellEntry| $ 11))) - -(DEFUN |UPOLYC-;totalDegree;SLNni;3| (|p| |lv| $) - (COND ((NULL |lv|) 0) ('T (SPADCALL |p| (|getShellEntry| $ 17))))) - -(DEFUN |UPOLYC-;degree;SLL;4| (|p| |lv| $) - (COND - ((NULL |lv|) NIL) - ('T (LIST (SPADCALL |p| (|getShellEntry| $ 11)))))) - -(DEFUN |UPOLYC-;eval;SLLS;5| (|p| |lv| |lq| $) - (COND - ((NULL |lv|) |p|) - ((NULL (NULL (CDR |lv|))) - (|error| "can only eval a univariate polynomial once")) - ('T - (SPADCALL |p| (|SPADfirst| |lv|) (|SPADfirst| |lq|) - (|getShellEntry| $ 21))))) - -(DEFUN |UPOLYC-;eval;SSaos2S;6| (|p| |v| |q| $) - (SPADCALL |p| |q| (|getShellEntry| $ 24))) - -(DEFUN |UPOLYC-;eval;SLLS;7| (|p| |lv| |lr| $) - (COND - ((NULL |lv|) |p|) - ((NULL (NULL (CDR |lv|))) - (|error| "can only eval a univariate polynomial once")) - ('T - (SPADCALL |p| (|SPADfirst| |lv|) (|SPADfirst| |lr|) - (|getShellEntry| $ 26))))) - -(DEFUN |UPOLYC-;eval;SSaosRS;8| (|p| |v| |r| $) - (SPADCALL (SPADCALL |p| |r| (|getShellEntry| $ 29)) - (|getShellEntry| $ 30))) - -(DEFUN |UPOLYC-;eval;SLS;9| (|p| |le| $) - (COND - ((NULL |le|) |p|) - ((NULL (NULL (CDR |le|))) - (|error| "can only eval a univariate polynomial once")) - ('T - (COND - ((QEQCAR (SPADCALL - (SPADCALL (|SPADfirst| |le|) - (|getShellEntry| $ 33)) - (|getShellEntry| $ 35)) - 1) - |p|) - ('T - (SPADCALL |p| - (SPADCALL (|SPADfirst| |le|) (|getShellEntry| $ 36)) - (|getShellEntry| $ 24))))))) - -(DEFUN |UPOLYC-;mainVariable;SU;10| (|p| $) - (COND - ((ZEROP (SPADCALL |p| (|getShellEntry| $ 11))) (CONS 1 "failed")) - ('T (CONS 0 (SPADCALL (|getShellEntry| $ 13)))))) - -(DEFUN |UPOLYC-;minimumDegree;SSaosNni;11| (|p| |v| $) - (SPADCALL |p| (|getShellEntry| $ 41))) - -(DEFUN |UPOLYC-;minimumDegree;SLL;12| (|p| |lv| $) - (COND - ((NULL |lv|) NIL) - ('T (LIST (SPADCALL |p| (|getShellEntry| $ 41)))))) - -(DEFUN |UPOLYC-;monomial;SSaosNniS;13| (|p| |v| |n| $) - (SPADCALL (CONS #'|UPOLYC-;monomial;SSaosNniS;13!0| (VECTOR $ |n|)) - |p| (|getShellEntry| $ 46))) - -(DEFUN |UPOLYC-;monomial;SSaosNniS;13!0| (|#1| $$) - (SPADCALL |#1| (|getShellEntry| $$ 1) - (|getShellEntry| (|getShellEntry| $$ 0) 44))) - -(DEFUN |UPOLYC-;coerce;SaosS;14| (|v| $) - (SPADCALL (|spadConstant| $ 49) 1 (|getShellEntry| $ 50))) - -(DEFUN |UPOLYC-;makeSUP;SSup;15| (|p| $) - (COND - ((SPADCALL |p| (|getShellEntry| $ 9)) (|spadConstant| $ 53)) - ('T - (SPADCALL - (SPADCALL (SPADCALL |p| (|getShellEntry| $ 54)) - (SPADCALL |p| (|getShellEntry| $ 11)) - (|getShellEntry| $ 55)) - (SPADCALL (SPADCALL |p| (|getShellEntry| $ 56)) - (|getShellEntry| $ 57)) - (|getShellEntry| $ 58))))) - -(DEFUN |UPOLYC-;unmakeSUP;SupS;16| (|sp| $) - (COND - ((SPADCALL |sp| (|getShellEntry| $ 60)) (|spadConstant| $ 61)) - ('T - (SPADCALL - (SPADCALL (SPADCALL |sp| (|getShellEntry| $ 62)) - (SPADCALL |sp| (|getShellEntry| $ 63)) - (|getShellEntry| $ 50)) - (SPADCALL (SPADCALL |sp| (|getShellEntry| $ 64)) - (|getShellEntry| $ 65)) - (|getShellEntry| $ 66))))) - -(DEFUN |UPOLYC-;karatsubaDivide;SNniR;17| (|p| |n| $) - (SPADCALL |p| - (SPADCALL (|spadConstant| $ 49) |n| (|getShellEntry| $ 50)) - (|getShellEntry| $ 69))) - -(DEFUN |UPOLYC-;shiftRight;SNniS;18| (|p| |n| $) - (QCAR (SPADCALL |p| - (SPADCALL (|spadConstant| $ 49) |n| (|getShellEntry| $ 50)) - (|getShellEntry| $ 69)))) - -(DEFUN |UPOLYC-;shiftLeft;SNniS;19| (|p| |n| $) - (SPADCALL |p| - (SPADCALL (|spadConstant| $ 49) |n| (|getShellEntry| $ 50)) - (|getShellEntry| $ 72))) - -(DEFUN |UPOLYC-;solveLinearPolynomialEquation;LSupU;20| (|lpp| |pp| $) - (SPADCALL |lpp| |pp| (|getShellEntry| $ 78))) - -(DEFUN |UPOLYC-;factorPolynomial;SupF;21| (|pp| $) - (SPADCALL |pp| (|getShellEntry| $ 84))) - -(DEFUN |UPOLYC-;factorSquareFreePolynomial;SupF;22| (|pp| $) - (SPADCALL |pp| (|getShellEntry| $ 87))) - -(DEFUN |UPOLYC-;factor;SF;23| (|p| $) - (PROG (|ansR| #0=#:G1516 |w| #1=#:G1517) - (RETURN - (SEQ (COND - ((ZEROP (SPADCALL |p| (|getShellEntry| $ 11))) - (SEQ (LETT |ansR| - (SPADCALL - (SPADCALL |p| (|getShellEntry| $ 54)) - (|getShellEntry| $ 90)) - |UPOLYC-;factor;SF;23|) - (EXIT (SPADCALL - (SPADCALL - (SPADCALL |ansR| - (|getShellEntry| $ 92)) - (|getShellEntry| $ 30)) - (PROGN - (LETT #0# NIL |UPOLYC-;factor;SF;23|) - (SEQ (LETT |w| NIL - |UPOLYC-;factor;SF;23|) - (LETT #1# - (SPADCALL |ansR| - (|getShellEntry| $ 97)) - |UPOLYC-;factor;SF;23|) - G190 - (COND - ((OR (ATOM #1#) - (PROGN - (LETT |w| (CAR #1#) - |UPOLYC-;factor;SF;23|) - NIL)) - (GO G191))) - (SEQ - (EXIT - (LETT #0# - (CONS - (VECTOR (QVELT |w| 0) - (SPADCALL (QVELT |w| 1) - (|getShellEntry| $ 30)) - (QVELT |w| 2)) - #0#) - |UPOLYC-;factor;SF;23|))) - (LETT #1# (CDR #1#) - |UPOLYC-;factor;SF;23|) - (GO G190) G191 - (EXIT (NREVERSE0 #0#)))) - (|getShellEntry| $ 101))))) - ('T - (SPADCALL (ELT $ 65) - (SPADCALL (SPADCALL |p| (|getShellEntry| $ 57)) - (|getShellEntry| $ 102)) - (|getShellEntry| $ 106)))))))) - -(DEFUN |UPOLYC-;vectorise;SNniV;24| (|p| |n| $) - (PROG (|v| |m| |i| #0=#:G1522 #1=#:G1518) - (RETURN - (SEQ (LETT |m| - (SPADCALL - (LETT |v| - (SPADCALL |n| (|spadConstant| $ 108) - (|getShellEntry| $ 110)) - |UPOLYC-;vectorise;SNniV;24|) - (|getShellEntry| $ 111)) - |UPOLYC-;vectorise;SNniV;24|) - (SEQ (LETT |i| (SPADCALL |v| (|getShellEntry| $ 111)) - |UPOLYC-;vectorise;SNniV;24|) - (LETT #0# (QVSIZE |v|) |UPOLYC-;vectorise;SNniV;24|) - G190 (COND ((> |i| #0#) (GO G191))) - (SEQ (EXIT (SPADCALL |v| |i| - (SPADCALL |p| - (PROG1 - (LETT #1# (- |i| |m|) - |UPOLYC-;vectorise;SNniV;24|) - (|check-subtype| (>= #1# 0) - '(|NonNegativeInteger|) - #1#)) - (|getShellEntry| $ 112)) - (|getShellEntry| $ 113)))) - (LETT |i| (+ |i| 1) |UPOLYC-;vectorise;SNniV;24|) - (GO G190) G191 (EXIT NIL)) - (EXIT |v|))))) - -(DEFUN |UPOLYC-;retract;SR;25| (|p| $) - (COND - ((SPADCALL |p| (|getShellEntry| $ 9)) (|spadConstant| $ 108)) - ((ZEROP (SPADCALL |p| (|getShellEntry| $ 11))) - (SPADCALL |p| (|getShellEntry| $ 54))) - ('T (|error| "Polynomial is not of degree 0")))) - -(DEFUN |UPOLYC-;retractIfCan;SU;26| (|p| $) - (COND - ((SPADCALL |p| (|getShellEntry| $ 9)) - (CONS 0 (|spadConstant| $ 108))) - ((ZEROP (SPADCALL |p| (|getShellEntry| $ 11))) - (CONS 0 (SPADCALL |p| (|getShellEntry| $ 54)))) - ('T (CONS 1 "failed")))) - -(DEFUN |UPOLYC-;init;S;27| ($) - (SPADCALL (|spadConstant| $ 118) (|getShellEntry| $ 30))) - -(DEFUN |UPOLYC-;nextItemInner| (|n| $) - (PROG (|nn| |n1| |n2| #0=#:G1543 |n3|) - (RETURN - (SEQ (COND - ((SPADCALL |n| (|getShellEntry| $ 9)) - (CONS 0 - (SPADCALL - (PROG2 (LETT #0# - (SPADCALL (|spadConstant| $ 108) - (|getShellEntry| $ 121)) - |UPOLYC-;nextItemInner|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) - (|getShellEntry| $ 7) #0#)) - (|getShellEntry| $ 30)))) - ((ZEROP (SPADCALL |n| (|getShellEntry| $ 11))) - (SEQ (LETT |nn| - (SPADCALL - (SPADCALL |n| (|getShellEntry| $ 54)) - (|getShellEntry| $ 121)) - |UPOLYC-;nextItemInner|) - (EXIT (COND - ((QEQCAR |nn| 1) (CONS 1 "failed")) - ('T - (CONS 0 - (SPADCALL (QCDR |nn|) - (|getShellEntry| $ 30)))))))) - ('T - (SEQ (LETT |n1| (SPADCALL |n| (|getShellEntry| $ 56)) - |UPOLYC-;nextItemInner|) - (LETT |n2| (|UPOLYC-;nextItemInner| |n1| $) - |UPOLYC-;nextItemInner|) - (EXIT (COND - ((QEQCAR |n2| 0) - (CONS 0 - (SPADCALL - (SPADCALL - (SPADCALL |n| - (|getShellEntry| $ 54)) - (SPADCALL |n| - (|getShellEntry| $ 11)) - (|getShellEntry| $ 50)) - (QCDR |n2|) - (|getShellEntry| $ 66)))) - ((< (+ 1 - (SPADCALL |n1| - (|getShellEntry| $ 11))) - (SPADCALL |n| (|getShellEntry| $ 11))) - (CONS 0 - (SPADCALL - (SPADCALL - (SPADCALL |n| - (|getShellEntry| $ 54)) - (SPADCALL |n| - (|getShellEntry| $ 11)) - (|getShellEntry| $ 50)) - (SPADCALL - (PROG2 - (LETT #0# - (SPADCALL - (|spadConstant| $ 118) - (|getShellEntry| $ 121)) - |UPOLYC-;nextItemInner|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) - (|getShellEntry| $ 7) #0#)) - (+ 1 - (SPADCALL |n1| - (|getShellEntry| $ 11))) - (|getShellEntry| $ 50)) - (|getShellEntry| $ 66)))) - ('T - (SEQ (LETT |n3| - (SPADCALL - (SPADCALL |n| - (|getShellEntry| $ 54)) - (|getShellEntry| $ 121)) - |UPOLYC-;nextItemInner|) - (EXIT (COND - ((QEQCAR |n3| 1) - (CONS 1 "failed")) - ('T - (CONS 0 - (SPADCALL (QCDR |n3|) - (SPADCALL |n| - (|getShellEntry| $ 11)) - (|getShellEntry| $ 50))))))))))))))))) - -(DEFUN |UPOLYC-;nextItem;SU;29| (|n| $) - (PROG (|n1| #0=#:G1556) - (RETURN - (SEQ (LETT |n1| (|UPOLYC-;nextItemInner| |n| $) - |UPOLYC-;nextItem;SU;29|) - (EXIT (COND - ((QEQCAR |n1| 1) - (CONS 0 - (SPADCALL - (PROG2 (LETT #0# - (SPADCALL (|spadConstant| $ 118) - (|getShellEntry| $ 121)) - |UPOLYC-;nextItem;SU;29|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) - (|getShellEntry| $ 7) #0#)) - (+ 1 - (SPADCALL |n| (|getShellEntry| $ 11))) - (|getShellEntry| $ 50)))) - ('T |n1|))))))) - -(DEFUN |UPOLYC-;content;SSaosS;30| (|p| |v| $) - (SPADCALL (SPADCALL |p| (|getShellEntry| $ 124)) - (|getShellEntry| $ 30))) - -(DEFUN |UPOLYC-;primeFactor| (|p| |q| $) - (PROG (#0=#:G1562 |p1|) - (RETURN - (SEQ (LETT |p1| - (PROG2 (LETT #0# - (SPADCALL |p| - (SPADCALL |p| |q| - (|getShellEntry| $ 126)) - (|getShellEntry| $ 127)) - |UPOLYC-;primeFactor|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) (|getShellEntry| $ 6) - #0#)) - |UPOLYC-;primeFactor|) - (EXIT (COND - ((SPADCALL |p1| |p| (|getShellEntry| $ 128)) |p|) - ('T (|UPOLYC-;primeFactor| |p1| |q| $)))))))) - -(DEFUN |UPOLYC-;separate;2SR;32| (|p| |q| $) - (PROG (|a| #0=#:G1568) - (RETURN - (SEQ (LETT |a| (|UPOLYC-;primeFactor| |p| |q| $) - |UPOLYC-;separate;2SR;32|) - (EXIT (CONS |a| - (PROG2 (LETT #0# - (SPADCALL |p| |a| - (|getShellEntry| $ 127)) - |UPOLYC-;separate;2SR;32|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) - (|getShellEntry| $ 6) #0#)))))))) - -(DEFUN |UPOLYC-;differentiate;SM2S;33| (|x| |deriv| |x'| $) - (PROG (|dg| |lc| #0=#:G1573 |d|) - (RETURN - (SEQ (LETT |d| (|spadConstant| $ 61) - |UPOLYC-;differentiate;SM2S;33|) - (SEQ G190 - (COND - ((NULL (< 0 - (LETT |dg| - (SPADCALL |x| (|getShellEntry| $ 11)) - |UPOLYC-;differentiate;SM2S;33|))) - (GO G191))) - (SEQ (LETT |lc| (SPADCALL |x| (|getShellEntry| $ 54)) - |UPOLYC-;differentiate;SM2S;33|) - (LETT |d| - (SPADCALL - (SPADCALL |d| - (SPADCALL |x'| - (SPADCALL - (SPADCALL |dg| |lc| - (|getShellEntry| $ 132)) - (PROG1 - (LETT #0# (- |dg| 1) - |UPOLYC-;differentiate;SM2S;33|) - (|check-subtype| (>= #0# 0) - '(|NonNegativeInteger|) #0#)) - (|getShellEntry| $ 50)) - (|getShellEntry| $ 72)) - (|getShellEntry| $ 66)) - (SPADCALL (SPADCALL |lc| |deriv|) |dg| - (|getShellEntry| $ 50)) - (|getShellEntry| $ 66)) - |UPOLYC-;differentiate;SM2S;33|) - (EXIT (LETT |x| - (SPADCALL |x| (|getShellEntry| $ 56)) - |UPOLYC-;differentiate;SM2S;33|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT (SPADCALL |d| - (SPADCALL - (SPADCALL - (SPADCALL |x| (|getShellEntry| $ 54)) - |deriv|) - (|getShellEntry| $ 30)) - (|getShellEntry| $ 66))))))) - -(DEFUN |UPOLYC-;ncdiff| (|n| |x'| $) - (PROG (#0=#:G1591 |n1|) - (RETURN - (COND - ((ZEROP |n|) (|spadConstant| $ 61)) - ((ZEROP (LETT |n1| - (PROG1 (LETT #0# (- |n| 1) |UPOLYC-;ncdiff|) - (|check-subtype| (>= #0# 0) - '(|NonNegativeInteger|) #0#)) - |UPOLYC-;ncdiff|)) - |x'|) - ('T - (SPADCALL - (SPADCALL |x'| - (SPADCALL (|spadConstant| $ 49) |n1| - (|getShellEntry| $ 50)) - (|getShellEntry| $ 72)) - (SPADCALL - (SPADCALL (|spadConstant| $ 49) 1 - (|getShellEntry| $ 50)) - (|UPOLYC-;ncdiff| |n1| |x'| $) (|getShellEntry| $ 72)) - (|getShellEntry| $ 66))))))) - -(DEFUN |UPOLYC-;differentiate;SM2S;35| (|x| |deriv| |x'| $) - (PROG (|dg| |lc| |d|) - (RETURN - (SEQ (LETT |d| (|spadConstant| $ 61) - |UPOLYC-;differentiate;SM2S;35|) - (SEQ G190 - (COND - ((NULL (< 0 - (LETT |dg| - (SPADCALL |x| (|getShellEntry| $ 11)) - |UPOLYC-;differentiate;SM2S;35|))) - (GO G191))) - (SEQ (LETT |lc| (SPADCALL |x| (|getShellEntry| $ 54)) - |UPOLYC-;differentiate;SM2S;35|) - (LETT |d| - (SPADCALL - (SPADCALL |d| - (SPADCALL (SPADCALL |lc| |deriv|) - |dg| (|getShellEntry| $ 50)) - (|getShellEntry| $ 66)) - (SPADCALL |lc| - (|UPOLYC-;ncdiff| |dg| |x'| $) - (|getShellEntry| $ 135)) - (|getShellEntry| $ 66)) - |UPOLYC-;differentiate;SM2S;35|) - (EXIT (LETT |x| - (SPADCALL |x| (|getShellEntry| $ 56)) - |UPOLYC-;differentiate;SM2S;35|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT (SPADCALL |d| - (SPADCALL - (SPADCALL - (SPADCALL |x| (|getShellEntry| $ 54)) - |deriv|) - (|getShellEntry| $ 30)) - (|getShellEntry| $ 66))))))) - -(DEFUN |UPOLYC-;differentiate;SMS;36| (|x| |deriv| $) - (SPADCALL |x| |deriv| (|spadConstant| $ 48) (|getShellEntry| $ 136))) - -(DEFUN |UPOLYC-;differentiate;2S;37| (|x| $) - (PROG (|dg| #0=#:G1600 |d|) - (RETURN - (SEQ (LETT |d| (|spadConstant| $ 61) - |UPOLYC-;differentiate;2S;37|) - (SEQ G190 - (COND - ((NULL (< 0 - (LETT |dg| - (SPADCALL |x| (|getShellEntry| $ 11)) - |UPOLYC-;differentiate;2S;37|))) - (GO G191))) - (SEQ (LETT |d| - (SPADCALL |d| - (SPADCALL - (SPADCALL |dg| - (SPADCALL |x| - (|getShellEntry| $ 54)) - (|getShellEntry| $ 132)) - (PROG1 - (LETT #0# (- |dg| 1) - |UPOLYC-;differentiate;2S;37|) - (|check-subtype| (>= #0# 0) - '(|NonNegativeInteger|) #0#)) - (|getShellEntry| $ 50)) - (|getShellEntry| $ 66)) - |UPOLYC-;differentiate;2S;37|) - (EXIT (LETT |x| - (SPADCALL |x| (|getShellEntry| $ 56)) - |UPOLYC-;differentiate;2S;37|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT |d|))))) - -(DEFUN |UPOLYC-;differentiate;SSaosS;38| (|x| |v| $) - (SPADCALL |x| (|getShellEntry| $ 139))) - -(DEFUN |UPOLYC-;elt;3F;39| (|g| |f| $) - (SPADCALL - (SPADCALL (SPADCALL |g| (|getShellEntry| $ 142)) |f| - (|getShellEntry| $ 144)) - (SPADCALL (SPADCALL |g| (|getShellEntry| $ 145)) |f| - (|getShellEntry| $ 144)) - (|getShellEntry| $ 146))) - -(DEFUN |UPOLYC-;pseudoQuotient;3S;40| (|p| |q| $) - (PROG (|n| #0=#:G1646 #1=#:G1648) - (RETURN - (SEQ (LETT |n| - (+ (- (SPADCALL |p| (|getShellEntry| $ 11)) - (SPADCALL |q| (|getShellEntry| $ 11))) - 1) - |UPOLYC-;pseudoQuotient;3S;40|) - (EXIT (COND - ((< |n| 1) (|spadConstant| $ 61)) - ('T - (PROG2 (LETT #1# - (SPADCALL - (SPADCALL - (SPADCALL - (SPADCALL - (SPADCALL |q| - (|getShellEntry| $ 54)) - (PROG1 - (LETT #0# |n| - |UPOLYC-;pseudoQuotient;3S;40|) - (|check-subtype| (>= #0# 0) - '(|NonNegativeInteger|) #0#)) - (|getShellEntry| $ 148)) - |p| (|getShellEntry| $ 135)) - (SPADCALL |p| |q| - (|getShellEntry| $ 149)) - (|getShellEntry| $ 150)) - |q| (|getShellEntry| $ 127)) - |UPOLYC-;pseudoQuotient;3S;40|) - (QCDR #1#) - (|check-union| (QEQCAR #1# 0) - (|getShellEntry| $ 6) #1#))))))))) - -(DEFUN |UPOLYC-;pseudoDivide;2SR;41| (|p| |q| $) - (PROG (|n| |prem| #0=#:G1654 |lc| #1=#:G1656) - (RETURN - (SEQ (LETT |n| - (+ (- (SPADCALL |p| (|getShellEntry| $ 11)) - (SPADCALL |q| (|getShellEntry| $ 11))) - 1) - |UPOLYC-;pseudoDivide;2SR;41|) - (EXIT (COND - ((< |n| 1) - (VECTOR (|spadConstant| $ 49) (|spadConstant| $ 61) - |p|)) - ('T - (SEQ (LETT |prem| - (SPADCALL |p| |q| - (|getShellEntry| $ 149)) - |UPOLYC-;pseudoDivide;2SR;41|) - (LETT |lc| - (SPADCALL - (SPADCALL |q| - (|getShellEntry| $ 54)) - (PROG1 - (LETT #0# |n| - |UPOLYC-;pseudoDivide;2SR;41|) - (|check-subtype| (>= #0# 0) - '(|NonNegativeInteger|) #0#)) - (|getShellEntry| $ 148)) - |UPOLYC-;pseudoDivide;2SR;41|) - (EXIT (VECTOR |lc| - (PROG2 - (LETT #1# - (SPADCALL - (SPADCALL - (SPADCALL |lc| |p| - (|getShellEntry| $ 135)) - |prem| - (|getShellEntry| $ 150)) - |q| (|getShellEntry| $ 127)) - |UPOLYC-;pseudoDivide;2SR;41|) - (QCDR #1#) - (|check-union| (QEQCAR #1# 0) - (|getShellEntry| $ 6) #1#)) - |prem|)))))))))) - -(DEFUN |UPOLYC-;composite;FSU;42| (|f| |q| $) - (PROG (|n| |d|) - (RETURN - (SEQ (LETT |n| - (SPADCALL (SPADCALL |f| (|getShellEntry| $ 142)) |q| - (|getShellEntry| $ 154)) - |UPOLYC-;composite;FSU;42|) - (EXIT (COND - ((QEQCAR |n| 1) (CONS 1 "failed")) - ('T - (SEQ (LETT |d| - (SPADCALL - (SPADCALL |f| - (|getShellEntry| $ 145)) - |q| (|getShellEntry| $ 154)) - |UPOLYC-;composite;FSU;42|) - (EXIT (COND - ((QEQCAR |d| 1) (CONS 1 "failed")) - ('T - (CONS 0 - (SPADCALL (QCDR |n|) (QCDR |d|) - (|getShellEntry| $ 155)))))))))))))) - -(DEFUN |UPOLYC-;composite;2SU;43| (|p| |q| $) - (PROG (|cqr| |v| |u| |w| #0=#:G1682) - (RETURN - (SEQ (COND - ((SPADCALL |p| (|getShellEntry| $ 158)) (CONS 0 |p|)) - ('T - (SEQ (EXIT (SEQ (LETT |cqr| - (SPADCALL |p| |q| - (|getShellEntry| $ 159)) - |UPOLYC-;composite;2SU;43|) - (COND - ((SPADCALL (QVELT |cqr| 2) - (|getShellEntry| $ 158)) - (SEQ (LETT |v| - (SPADCALL (QVELT |cqr| 2) - (QVELT |cqr| 0) - (|getShellEntry| $ 160)) - |UPOLYC-;composite;2SU;43|) - (EXIT - (COND - ((QEQCAR |v| 0) - (SEQ - (LETT |u| - (SPADCALL (QVELT |cqr| 1) - |q| - (|getShellEntry| $ 154)) - |UPOLYC-;composite;2SU;43|) - (EXIT - (COND - ((QEQCAR |u| 0) - (SEQ - (LETT |w| - (SPADCALL (QCDR |u|) - (QVELT |cqr| 0) - (|getShellEntry| $ - 160)) - |UPOLYC-;composite;2SU;43|) - (EXIT - (COND - ((QEQCAR |w| 0) - (PROGN - (LETT #0# - (CONS 0 - (SPADCALL - (QCDR |v|) - (SPADCALL - (SPADCALL - (|spadConstant| - $ 49) - 1 - (|getShellEntry| - $ 50)) - (QCDR |w|) - (|getShellEntry| - $ 72)) - (|getShellEntry| - $ 66))) - |UPOLYC-;composite;2SU;43|) - (GO #0#)))))))))))))))) - (EXIT (CONS 1 "failed")))) - #0# (EXIT #0#)))))))) - -(DEFUN |UPOLYC-;elt;S2F;44| (|p| |f| $) - (PROG (|n| #0=#:G1688 |ans|) - (RETURN - (SEQ (COND - ((SPADCALL |p| (|getShellEntry| $ 9)) - (|spadConstant| $ 162)) - ('T - (SEQ (LETT |ans| - (SPADCALL - (SPADCALL - (SPADCALL |p| (|getShellEntry| $ 54)) - (|getShellEntry| $ 30)) - (|getShellEntry| $ 163)) - |UPOLYC-;elt;S2F;44|) - (LETT |n| (SPADCALL |p| (|getShellEntry| $ 11)) - |UPOLYC-;elt;S2F;44|) - (SEQ G190 - (COND - ((NULL (SPADCALL - (SPADCALL - (LETT |p| - (SPADCALL |p| - (|getShellEntry| $ 56)) - |UPOLYC-;elt;S2F;44|) - (|getShellEntry| $ 9)) - (|getShellEntry| $ 164))) - (GO G191))) - (SEQ (EXIT (LETT |ans| - (SPADCALL - (SPADCALL |ans| - (SPADCALL |f| - (PROG1 - (LETT #0# - (- |n| - (LETT |n| - (SPADCALL |p| - (|getShellEntry| $ 11)) - |UPOLYC-;elt;S2F;44|)) - |UPOLYC-;elt;S2F;44|) - (|check-subtype| (>= #0# 0) - '(|NonNegativeInteger|) #0#)) - (|getShellEntry| $ 165)) - (|getShellEntry| $ 166)) - (SPADCALL - (SPADCALL - (SPADCALL |p| - (|getShellEntry| $ 54)) - (|getShellEntry| $ 30)) - (|getShellEntry| $ 163)) - (|getShellEntry| $ 167)) - |UPOLYC-;elt;S2F;44|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT (COND - ((ZEROP |n|) |ans|) - ('T - (SPADCALL |ans| - (SPADCALL |f| |n| - (|getShellEntry| $ 168)) - (|getShellEntry| $ 166)))))))))))) - -(DEFUN |UPOLYC-;order;2SNni;45| (|p| |q| $) - (PROG (|u| #0=#:G1702 |ans|) - (RETURN - (SEQ (EXIT (COND - ((SPADCALL |p| (|getShellEntry| $ 9)) - (|error| "order: arguments must be nonzero")) - ((< (SPADCALL |q| (|getShellEntry| $ 11)) 1) - (|error| "order: place must be non-trivial")) - ('T - (SEQ (LETT |ans| 0 |UPOLYC-;order;2SNni;45|) - (EXIT (SEQ G190 NIL - (SEQ - (LETT |u| - (SPADCALL |p| |q| - (|getShellEntry| $ 127)) - |UPOLYC-;order;2SNni;45|) - (EXIT - (COND - ((QEQCAR |u| 1) - (PROGN - (LETT #0# |ans| - |UPOLYC-;order;2SNni;45|) - (GO #0#))) - ('T - (SEQ - (LETT |p| (QCDR |u|) - |UPOLYC-;order;2SNni;45|) - (EXIT - (LETT |ans| (+ |ans| 1) - |UPOLYC-;order;2SNni;45|))))))) - NIL (GO G190) G191 (EXIT NIL))))))) - #0# (EXIT #0#))))) - -(DEFUN |UPOLYC-;squareFree;SF;46| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 172))) - -(DEFUN |UPOLYC-;squareFreePart;2S;47| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 174))) - -(DEFUN |UPOLYC-;gcdPolynomial;3Sup;48| (|pp| |qq| $) - (COND - ((SPADCALL |pp| (|getShellEntry| $ 176)) - (SPADCALL |qq| (|getShellEntry| $ 177))) - ((SPADCALL |qq| (|getShellEntry| $ 176)) - (SPADCALL |pp| (|getShellEntry| $ 177))) - ('T - (SPADCALL - (SPADCALL - (SPADCALL (SPADCALL |pp| (|getShellEntry| $ 178)) - (SPADCALL |qq| (|getShellEntry| $ 178)) - (|getShellEntry| $ 126)) - (SPADCALL - (SPADCALL (SPADCALL |pp| (|getShellEntry| $ 179)) - (SPADCALL |qq| (|getShellEntry| $ 179)) - (|getShellEntry| $ 180)) - (|getShellEntry| $ 179)) - (|getShellEntry| $ 181)) - (|getShellEntry| $ 177))))) - -(DEFUN |UPOLYC-;squareFreePolynomial;SupF;49| (|pp| $) - (SPADCALL |pp| (|getShellEntry| $ 184))) - -(DEFUN |UPOLYC-;elt;F2R;50| (|f| |r| $) - (SPADCALL - (SPADCALL (SPADCALL |f| (|getShellEntry| $ 142)) |r| - (|getShellEntry| $ 29)) - (SPADCALL (SPADCALL |f| (|getShellEntry| $ 145)) |r| - (|getShellEntry| $ 29)) - (|getShellEntry| $ 186))) - -(DEFUN |UPOLYC-;euclideanSize;SNni;51| (|x| $) - (COND - ((SPADCALL |x| (|getShellEntry| $ 9)) - (|error| "euclideanSize called on 0 in Univariate Polynomial")) - ('T (SPADCALL |x| (|getShellEntry| $ 11))))) - -(DEFUN |UPOLYC-;divide;2SR;52| (|x| |y| $) - (PROG (|lc| |f| #0=#:G1714 |n| |quot|) - (RETURN - (SEQ (COND - ((SPADCALL |y| (|getShellEntry| $ 9)) - (|error| "division by 0 in Univariate Polynomials")) - ('T - (SEQ (LETT |quot| (|spadConstant| $ 61) - |UPOLYC-;divide;2SR;52|) - (LETT |lc| - (SPADCALL - (SPADCALL |y| (|getShellEntry| $ 54)) - (|getShellEntry| $ 189)) - |UPOLYC-;divide;2SR;52|) - (SEQ G190 - (COND - ((NULL (COND - ((SPADCALL |x| - (|getShellEntry| $ 9)) - 'NIL) - ('T - (SPADCALL - (< - (SPADCALL |x| - (|getShellEntry| $ 11)) - (SPADCALL |y| - (|getShellEntry| $ 11))) - (|getShellEntry| $ 164))))) - (GO G191))) - (SEQ (LETT |f| - (SPADCALL |lc| - (SPADCALL |x| - (|getShellEntry| $ 54)) - (|getShellEntry| $ 190)) - |UPOLYC-;divide;2SR;52|) - (LETT |n| - (PROG1 - (LETT #0# - (- - (SPADCALL |x| - (|getShellEntry| $ 11)) - (SPADCALL |y| - (|getShellEntry| $ 11))) - |UPOLYC-;divide;2SR;52|) - (|check-subtype| (>= #0# 0) - '(|NonNegativeInteger|) #0#)) - |UPOLYC-;divide;2SR;52|) - (LETT |quot| - (SPADCALL |quot| - (SPADCALL |f| |n| - (|getShellEntry| $ 50)) - (|getShellEntry| $ 66)) - |UPOLYC-;divide;2SR;52|) - (EXIT (LETT |x| - (SPADCALL |x| - (SPADCALL - (SPADCALL |f| |n| - (|getShellEntry| $ 50)) - |y| (|getShellEntry| $ 72)) - (|getShellEntry| $ 150)) - |UPOLYC-;divide;2SR;52|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT (CONS |quot| |x|))))))))) - -(DEFUN |UPOLYC-;integrate;2S;53| (|p| $) - (PROG (|l| |d| |ans|) - (RETURN - (SEQ (LETT |ans| (|spadConstant| $ 61) |UPOLYC-;integrate;2S;53|) - (SEQ G190 - (COND - ((NULL (SPADCALL |p| (|spadConstant| $ 61) - (|getShellEntry| $ 192))) - (GO G191))) - (SEQ (LETT |l| (SPADCALL |p| (|getShellEntry| $ 54)) - |UPOLYC-;integrate;2S;53|) - (LETT |d| - (+ 1 (SPADCALL |p| (|getShellEntry| $ 11))) - |UPOLYC-;integrate;2S;53|) - (LETT |ans| - (SPADCALL |ans| - (SPADCALL - (SPADCALL - (SPADCALL |d| - (|getShellEntry| $ 194)) - (|getShellEntry| $ 195)) - (SPADCALL |l| |d| - (|getShellEntry| $ 50)) - (|getShellEntry| $ 196)) - (|getShellEntry| $ 66)) - |UPOLYC-;integrate;2S;53|) - (EXIT (LETT |p| - (SPADCALL |p| (|getShellEntry| $ 56)) - |UPOLYC-;integrate;2S;53|))) - NIL (GO G190) G191 (EXIT NIL)) - (EXIT |ans|))))) - -(DEFUN |UnivariatePolynomialCategory&| (|#1| |#2|) - (PROG (|dv$1| |dv$2| |dv$| $ |pv$|) - (RETURN - (PROGN - (LETT |dv$1| (|devaluate| |#1|) - . #0=(|UnivariatePolynomialCategory&|)) - (LETT |dv$2| (|devaluate| |#2|) . #0#) - (LETT |dv$| - (LIST '|UnivariatePolynomialCategory&| |dv$1| |dv$2|) . #0#) - (LETT $ (|newShell| 203) . #0#) - (|setShellEntry| $ 0 |dv$|) - (|setShellEntry| $ 3 - (LETT |pv$| - (|buildPredVector| 0 0 - (LIST (|HasCategory| |#2| - '(|Algebra| (|Fraction| (|Integer|)))) - (|HasCategory| |#2| '(|Field|)) - (|HasCategory| |#2| '(|GcdDomain|)) - (|HasCategory| |#2| '(|IntegralDomain|)) - (|HasCategory| |#2| '(|CommutativeRing|)) - (|HasCategory| |#2| '(|StepThrough|)))) . #0#)) - (|stuffDomainSlots| $) - (|setShellEntry| $ 6 |#1|) - (|setShellEntry| $ 7 |#2|) - (COND - ((|HasCategory| |#2| '(|PolynomialFactorizationExplicit|)) - (PROGN - (|setShellEntry| $ 82 - (CONS (|dispatchFunction| - |UPOLYC-;solveLinearPolynomialEquation;LSupU;20|) - $)) - (|setShellEntry| $ 86 - (CONS (|dispatchFunction| - |UPOLYC-;factorPolynomial;SupF;21|) - $)) - (|setShellEntry| $ 88 - (CONS (|dispatchFunction| - |UPOLYC-;factorSquareFreePolynomial;SupF;22|) - $)) - (|setShellEntry| $ 107 - (CONS (|dispatchFunction| |UPOLYC-;factor;SF;23|) $))))) - (COND - ((|testBitVector| |pv$| 6) - (PROGN - (|setShellEntry| $ 119 - (CONS (|dispatchFunction| |UPOLYC-;init;S;27|) $)) - NIL - (|setShellEntry| $ 123 - (CONS (|dispatchFunction| |UPOLYC-;nextItem;SU;29|) $))))) - (COND - ((|testBitVector| |pv$| 3) - (PROGN - (|setShellEntry| $ 125 - (CONS (|dispatchFunction| |UPOLYC-;content;SSaosS;30|) - $)) - NIL - (|setShellEntry| $ 130 - (CONS (|dispatchFunction| |UPOLYC-;separate;2SR;32|) - $))))) - (COND - ((|testBitVector| |pv$| 5) - (|setShellEntry| $ 134 - (CONS (|dispatchFunction| - |UPOLYC-;differentiate;SM2S;33|) - $))) - ('T - (PROGN - (|setShellEntry| $ 134 - (CONS (|dispatchFunction| - |UPOLYC-;differentiate;SM2S;35|) - $))))) - (COND - ((|testBitVector| |pv$| 4) - (PROGN - (|setShellEntry| $ 147 - (CONS (|dispatchFunction| |UPOLYC-;elt;3F;39|) $)) - (|setShellEntry| $ 151 - (CONS (|dispatchFunction| - |UPOLYC-;pseudoQuotient;3S;40|) - $)) - (|setShellEntry| $ 153 - (CONS (|dispatchFunction| - |UPOLYC-;pseudoDivide;2SR;41|) - $)) - (|setShellEntry| $ 157 - (CONS (|dispatchFunction| |UPOLYC-;composite;FSU;42|) - $)) - (|setShellEntry| $ 161 - (CONS (|dispatchFunction| |UPOLYC-;composite;2SU;43|) - $)) - (|setShellEntry| $ 169 - (CONS (|dispatchFunction| |UPOLYC-;elt;S2F;44|) $)) - (|setShellEntry| $ 170 - (CONS (|dispatchFunction| |UPOLYC-;order;2SNni;45|) $))))) - (COND - ((|testBitVector| |pv$| 3) - (PROGN - (|setShellEntry| $ 173 - (CONS (|dispatchFunction| |UPOLYC-;squareFree;SF;46|) - $)) - (|setShellEntry| $ 175 - (CONS (|dispatchFunction| - |UPOLYC-;squareFreePart;2S;47|) - $))))) - (COND - ((|HasCategory| |#2| '(|PolynomialFactorizationExplicit|)) - (PROGN - (|setShellEntry| $ 182 - (CONS (|dispatchFunction| - |UPOLYC-;gcdPolynomial;3Sup;48|) - $)) - (|setShellEntry| $ 185 - (CONS (|dispatchFunction| - |UPOLYC-;squareFreePolynomial;SupF;49|) - $))))) - (COND - ((|testBitVector| |pv$| 2) - (PROGN - (|setShellEntry| $ 187 - (CONS (|dispatchFunction| |UPOLYC-;elt;F2R;50|) $)) - (|setShellEntry| $ 188 - (CONS (|dispatchFunction| - |UPOLYC-;euclideanSize;SNni;51|) - $)) - (|setShellEntry| $ 191 - (CONS (|dispatchFunction| |UPOLYC-;divide;2SR;52|) $))))) - (COND - ((|testBitVector| |pv$| 1) - (|setShellEntry| $ 197 - (CONS (|dispatchFunction| |UPOLYC-;integrate;2S;53|) $)))) - $)))) - -(MAKEPROP '|UnivariatePolynomialCategory&| '|infovec| - (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) - (|Boolean|) (0 . |zero?|) (|NonNegativeInteger|) - (5 . |degree|) (|SingletonAsOrderedSet|) (10 . |create|) - (|List| 12) |UPOLYC-;variables;SL;1| - |UPOLYC-;degree;SSaosNni;2| (14 . |totalDegree|) - |UPOLYC-;totalDegree;SLNni;3| (|List| 10) - |UPOLYC-;degree;SLL;4| (19 . |eval|) (|List| $) - |UPOLYC-;eval;SLLS;5| (26 . |elt|) - |UPOLYC-;eval;SSaos2S;6| (32 . |eval|) (|List| 7) - |UPOLYC-;eval;SLLS;7| (39 . |elt|) (45 . |coerce|) - |UPOLYC-;eval;SSaosRS;8| (|Equation| 6) (50 . |lhs|) - (|Union| 12 '"failed") (55 . |mainVariable|) (60 . |rhs|) - (|Equation| $) (|List| 37) |UPOLYC-;eval;SLS;9| - |UPOLYC-;mainVariable;SU;10| (65 . |minimumDegree|) - |UPOLYC-;minimumDegree;SSaosNni;11| - |UPOLYC-;minimumDegree;SLL;12| (70 . +) (|Mapping| 10 10) - (76 . |mapExponents|) |UPOLYC-;monomial;SSaosNniS;13| - (82 . |One|) (86 . |One|) (90 . |monomial|) - |UPOLYC-;coerce;SaosS;14| (|SparseUnivariatePolynomial| 7) - (96 . |Zero|) (100 . |leadingCoefficient|) - (105 . |monomial|) (111 . |reductum|) (116 . |makeSUP|) - (121 . +) |UPOLYC-;makeSUP;SSup;15| (127 . |zero?|) - (132 . |Zero|) (136 . |leadingCoefficient|) - (141 . |degree|) (146 . |reductum|) (151 . |unmakeSUP|) - (156 . +) |UPOLYC-;unmakeSUP;SupS;16| - (|Record| (|:| |quotient| $) (|:| |remainder| $)) - (162 . |monicDivide|) |UPOLYC-;karatsubaDivide;SNniR;17| - |UPOLYC-;shiftRight;SNniS;18| (168 . *) - |UPOLYC-;shiftLeft;SNniS;19| - (|SparseUnivariatePolynomial| 6) (|List| 74) - (|Union| 75 '"failed") - (|PolynomialFactorizationByRecursionUnivariate| 7 6) - (174 . |solveLinearPolynomialEquationByRecursion|) - (|SparseUnivariatePolynomial| $) (|List| 79) - (|Union| 80 '"failed") - (180 . |solveLinearPolynomialEquation|) (|Factored| 74) - (186 . |factorByRecursion|) (|Factored| 79) - (191 . |factorPolynomial|) - (196 . |factorSquareFreeByRecursion|) - (201 . |factorSquareFreePolynomial|) (|Factored| $) - (206 . |factor|) (|Factored| 7) (211 . |unit|) - (|Union| '"nil" '"sqfr" '"irred" '"prime") (|Integer|) - (|Record| (|:| |flg| 93) (|:| |fctr| 7) (|:| |xpnt| 94)) - (|List| 95) (216 . |factorList|) - (|Record| (|:| |flg| 93) (|:| |fctr| 6) (|:| |xpnt| 94)) - (|List| 98) (|Factored| 6) (221 . |makeFR|) - (227 . |factorPolynomial|) (|Mapping| 6 52) - (|Factored| 52) (|FactoredFunctions2| 52 6) (232 . |map|) - (238 . |factor|) (243 . |Zero|) (|Vector| 7) (247 . |new|) - (253 . |minIndex|) (258 . |coefficient|) - (264 . |qsetelt!|) |UPOLYC-;vectorise;SNniV;24| - |UPOLYC-;retract;SR;25| (|Union| 7 '"failed") - |UPOLYC-;retractIfCan;SU;26| (271 . |init|) (275 . |init|) - (|Union| $ '"failed") (279 . |nextItem|) (284 . |One|) - (288 . |nextItem|) (293 . |content|) (298 . |content|) - (304 . |gcd|) (310 . |exquo|) (316 . =) - (|Record| (|:| |primePart| $) (|:| |commonPart| $)) - (322 . |separate|) (328 . |Zero|) (332 . *) - (|Mapping| 7 7) (338 . |differentiate|) (345 . *) - (351 . |differentiate|) |UPOLYC-;differentiate;SMS;36| - |UPOLYC-;differentiate;2S;37| (358 . |differentiate|) - |UPOLYC-;differentiate;SSaosS;38| (|Fraction| 6) - (363 . |numer|) (|Fraction| $) (368 . |elt|) - (374 . |denom|) (379 . /) (385 . |elt|) (391 . **) - (397 . |pseudoRemainder|) (403 . -) - (409 . |pseudoQuotient|) - (|Record| (|:| |coef| 7) (|:| |quotient| $) - (|:| |remainder| $)) - (415 . |pseudoDivide|) (421 . |composite|) (427 . /) - (|Union| 143 '"failed") (433 . |composite|) - (439 . |ground?|) (444 . |pseudoDivide|) (450 . |exquo|) - (456 . |composite|) (462 . |Zero|) (466 . |coerce|) - (471 . |not|) (476 . **) (482 . *) (488 . +) (494 . **) - (500 . |elt|) (506 . |order|) - (|UnivariatePolynomialSquareFree| 7 6) - (512 . |squareFree|) (517 . |squareFree|) - (522 . |squareFreePart|) (527 . |squareFreePart|) - (532 . |zero?|) (537 . |unitCanonical|) (542 . |content|) - (547 . |primitivePart|) (552 . |subResultantGcd|) - (558 . *) (564 . |gcdPolynomial|) - (|UnivariatePolynomialSquareFree| 6 74) - (570 . |squareFree|) (575 . |squareFreePolynomial|) - (580 . /) (586 . |elt|) (592 . |euclideanSize|) - (597 . |inv|) (602 . *) (608 . |divide|) (614 . ~=) - (|Fraction| 94) (620 . |coerce|) (625 . |inv|) (630 . *) - (636 . |integrate|) (|Symbol|) (|List| 198) - (|Union| 94 '"failed") (|Union| 193 '"failed") - (|OutputForm|)) - '#(|vectorise| 641 |variables| 647 |unmakeSUP| 652 - |totalDegree| 657 |squareFreePolynomial| 663 - |squareFreePart| 668 |squareFree| 673 - |solveLinearPolynomialEquation| 678 |shiftRight| 684 - |shiftLeft| 690 |separate| 696 |retractIfCan| 702 - |retract| 707 |pseudoQuotient| 712 |pseudoDivide| 718 - |order| 724 |nextItem| 730 |monomial| 735 |minimumDegree| - 742 |makeSUP| 754 |mainVariable| 759 |karatsubaDivide| 764 - |integrate| 770 |init| 775 |gcdPolynomial| 779 - |factorSquareFreePolynomial| 785 |factorPolynomial| 790 - |factor| 795 |eval| 800 |euclideanSize| 834 |elt| 839 - |divide| 857 |differentiate| 863 |degree| 887 |content| - 899 |composite| 905 |coerce| 917) - 'NIL - (CONS (|makeByteWordVec2| 1 'NIL) - (CONS '#() - (CONS '#() - (|makeByteWordVec2| 197 - '(1 6 8 0 9 1 6 10 0 11 0 12 0 13 1 6 - 10 0 17 3 6 0 0 12 0 21 2 6 0 0 0 24 - 3 6 0 0 12 7 26 2 6 7 0 7 29 1 6 0 7 - 30 1 32 6 0 33 1 6 34 0 35 1 32 6 0 - 36 1 6 10 0 41 2 10 0 0 0 44 2 6 0 45 - 0 46 0 6 0 48 0 7 0 49 2 6 0 7 10 50 - 0 52 0 53 1 6 7 0 54 2 52 0 7 10 55 1 - 6 0 0 56 1 6 52 0 57 2 52 0 0 0 58 1 - 52 8 0 60 0 6 0 61 1 52 7 0 62 1 52 - 10 0 63 1 52 0 0 64 1 6 0 52 65 2 6 0 - 0 0 66 2 6 68 0 0 69 2 6 0 0 0 72 2 - 77 76 75 74 78 2 0 81 80 79 82 1 77 - 83 74 84 1 0 85 79 86 1 77 83 74 87 1 - 0 85 79 88 1 7 89 0 90 1 91 7 0 92 1 - 91 96 0 97 2 100 0 6 99 101 1 7 85 79 - 102 2 105 100 103 104 106 1 0 89 0 - 107 0 7 0 108 2 109 0 10 7 110 1 109 - 94 0 111 2 6 7 0 10 112 3 109 7 0 94 - 7 113 0 7 0 118 0 0 0 119 1 7 120 0 - 121 0 74 0 122 1 0 120 0 123 1 6 7 0 - 124 2 0 0 0 12 125 2 6 0 0 0 126 2 6 - 120 0 0 127 2 6 8 0 0 128 2 0 129 0 0 - 130 0 74 0 131 2 7 0 10 0 132 3 0 0 0 - 133 0 134 2 6 0 7 0 135 3 6 0 0 133 0 - 136 1 6 0 0 139 1 141 6 0 142 2 6 143 - 0 143 144 1 141 6 0 145 2 141 0 0 0 - 146 2 0 143 143 143 147 2 7 0 0 10 - 148 2 6 0 0 0 149 2 6 0 0 0 150 2 0 0 - 0 0 151 2 0 152 0 0 153 2 6 120 0 0 - 154 2 141 0 6 6 155 2 0 156 143 0 157 - 1 6 8 0 158 2 6 152 0 0 159 2 6 120 0 - 7 160 2 0 120 0 0 161 0 141 0 162 1 - 141 0 6 163 1 8 0 0 164 2 141 0 0 94 - 165 2 141 0 0 0 166 2 141 0 0 0 167 2 - 141 0 0 10 168 2 0 143 0 143 169 2 0 - 10 0 0 170 1 171 100 6 172 1 0 89 0 - 173 1 171 6 6 174 1 0 0 0 175 1 74 8 - 0 176 1 74 0 0 177 1 74 6 0 178 1 74 - 0 0 179 2 74 0 0 0 180 2 74 0 6 0 181 - 2 0 79 79 79 182 1 183 83 74 184 1 0 - 85 79 185 2 7 0 0 0 186 2 0 7 143 7 - 187 1 0 10 0 188 1 7 0 0 189 2 7 0 0 - 0 190 2 0 68 0 0 191 2 6 8 0 0 192 1 - 193 0 94 194 1 193 0 0 195 2 6 0 193 - 0 196 1 0 0 0 197 2 0 109 0 10 114 1 - 0 14 0 15 1 0 0 52 67 2 0 10 0 14 18 - 1 0 85 79 185 1 0 0 0 175 1 0 89 0 - 173 2 0 81 80 79 82 2 0 0 0 10 71 2 0 - 0 0 10 73 2 0 129 0 0 130 1 0 116 0 - 117 1 0 7 0 115 2 0 0 0 0 151 2 0 152 - 0 0 153 2 0 10 0 0 170 1 0 120 0 123 - 3 0 0 0 12 10 47 2 0 19 0 14 43 2 0 - 10 0 12 42 1 0 52 0 59 1 0 34 0 40 2 - 0 68 0 10 70 1 0 0 0 197 0 0 0 119 2 - 0 79 79 79 182 1 0 85 79 88 1 0 85 79 - 86 1 0 89 0 107 3 0 0 0 12 0 25 3 0 0 - 0 14 22 23 3 0 0 0 14 27 28 3 0 0 0 - 12 7 31 2 0 0 0 38 39 1 0 10 0 188 2 - 0 143 0 143 169 2 0 7 143 7 187 2 0 - 143 143 143 147 2 0 68 0 0 191 3 0 0 - 0 133 0 134 2 0 0 0 133 137 1 0 0 0 - 138 2 0 0 0 12 140 2 0 10 0 12 16 2 0 - 19 0 14 20 2 0 0 0 12 125 2 0 120 0 0 - 161 2 0 156 143 0 157 1 0 0 12 51))))) - '|lookupComplete|)) -@ \section{package UPOLYC2 UnivariatePolynomialCategoryFunctions2} |
