[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] 20070916.01.tpd.patch (bug 103 fix)
From: |
daly |
Subject: |
[Axiom-developer] 20070916.01.tpd.patch (bug 103 fix) |
Date: |
Sun, 16 Sep 2007 17:52:37 -0500 |
The call
solve(z=z,z)
fails with:
>> Error detected within library code:
(1 . failed) cannot be coerced to mode (Polynomial (Integer))
The bug fix, proposed by William, changes exquo in EuclideanDomain
to add the zero? x test.
x exquo y ==
zero? x => 0
zero? y => "failed"
qr:=divide(x,y)
zero?(qr.remainder) => qr.quotient
"failed"
This change was made but does not affect the behavior of the bug.
This fix, proposed by Martin, changes primitivePart in
PolynomialCategory to add the zero? test.
primitivePart p ==
zero? p => p
unitNormal((p exquo content p) ::%).canonical
primitivePart(p,v) ==
zero? p => p
unitNormal((p exquo content(p,v)) ::%).canonical
succeeds with:
[0= 0]
Type: List Equation Fraction Polynomial Integer
========================================================================
diff --git a/changelog b/changelog
index 9baab4b..48493c1 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+20070916 tpd src/input/Makefile add bug103.input regression test
+20070916 tpd src/input/bug103.input test solve(z=z,z) bug fix
+20070916 tpd src/algebra/polycat.spad solve(z=z,z) bug fix
+20070916 tpd src/algebra/catdef.spad add zero? to exquo
20070915 tpd merge bug100 branch
20070915 tpd src/input/Makefile add bug100.input regression test
20070915 tpd src/input/bug100.input test integrate((z^a+1)^b,z) infinite loop
diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet
index d7b7274..38c9a1c 100644
--- a/src/algebra/catdef.spad.pamphlet
+++ b/src/algebra/catdef.spad.pamphlet
@@ -1319,6 +1319,7 @@ EuclideanDomain(): Category == PrincipalIdealDomain with
x quo y == divide(x,y).quotient --divide must be user-supplied
x rem y == divide(x,y).remainder
x exquo y ==
+ zero? x => 0
zero? y => "failed"
qr:=divide(x,y)
zero?(qr.remainder) => qr.quotient
@@ -1544,601 +1545,507 @@ recompiling.
@
\subsubsection{EUCDOM-;sizeLess?;2SB;1}
<<EUCDOM-;sizeLess?;2SB;1>>=
-(DEFUN |EUCDOM-;sizeLess?;2SB;1| (|x| |y| |$|)
- (COND
- ((SPADCALL |y| (QREFELT |$| 8)) (QUOTE NIL))
- ((SPADCALL |x| (QREFELT |$| 8)) (QUOTE T))
- ((QUOTE T)
- (|<| (SPADCALL |x| (QREFELT |$| 10)) (SPADCALL |y| (QREFELT |$| 10))))))
+(DEFUN |EUCDOM-;sizeLess?;2SB;1| (|x| |y| $)
+ (COND
+ ((SPADCALL |y| (QREFELT $ 8)) (QUOTE NIL))
+ ((SPADCALL |x| (QREFELT $ 8)) (QUOTE T))
+ ((QUOTE T)
+ (< (SPADCALL |x| (QREFELT $ 10)) (SPADCALL |y| (QREFELT $ 10))))))
@
\subsubsection{EUCDOM-;quo;3S;2}
<<EUCDOM-;quo;3S;2>>=
-(DEFUN |EUCDOM-;quo;3S;2| (|x| |y| |$|)
- (QCAR (SPADCALL |x| |y| (QREFELT |$| 13))))
+(DEFUN |EUCDOM-;quo;3S;2| (|x| |y| $)
+ (QCAR (SPADCALL |x| |y| (QREFELT $ 13))))
@
\subsubsection{EUCDOM-;rem;3S;3}
<<EUCDOM-;rem;3S;3>>=
-(DEFUN |EUCDOM-;rem;3S;3| (|x| |y| |$|)
- (QCDR (SPADCALL |x| |y| (QREFELT |$| 13))))
+(DEFUN |EUCDOM-;rem;3S;3| (|x| |y| $)
+ (QCDR (SPADCALL |x| |y| (QREFELT $ 13))))
@
\subsubsection{EUCDOM-;exquo;2SU;4}
<<EUCDOM-;exquo;2SU;4>>=
-(DEFUN |EUCDOM-;exquo;2SU;4| (|x| |y| |$|)
- (PROG (|qr|)
- (RETURN
- (SEQ
- (COND
- ((SPADCALL |y| (QREFELT |$| 8)) (CONS 1 "failed"))
- ((QUOTE T)
- (SEQ
- (LETT |qr|
- (SPADCALL |x| |y| (QREFELT |$| 13))
- |EUCDOM-;exquo;2SU;4|)
- (EXIT
- (COND
- ((SPADCALL (QCDR |qr|) (QREFELT |$| 8)) (CONS 0 (QCAR |qr|)))
- ((QUOTE T) (CONS 1 "failed")))))))))))
+(DEFUN |EUCDOM-;exquo;2SU;4| (|x| |y| $)
+ (PROG (|qr|)
+ (RETURN
+ (SEQ
+ (COND
+ ((SPADCALL |x| (QREFELT $ 8)) (CONS 0 (|spadConstant| $ 16)))
+ ((SPADCALL |y| (QREFELT $ 8)) (CONS 1 "failed"))
+ ((QUOTE T)
+ (SEQ
+ (LETT |qr|
+ (SPADCALL |x| |y| (QREFELT $ 13))
+ |EUCDOM-;exquo;2SU;4|)
+ (EXIT
+ (COND
+ ((SPADCALL (QCDR |qr|) (QREFELT $ 8)) (CONS 0 (QCAR |qr|)))
+ ((QUOTE T) (CONS 1 "failed")))))))))))
@
\subsubsection{EUCDOM-;gcd;3S;5}
<<EUCDOM-;gcd;3S;5>>=
-(DEFUN |EUCDOM-;gcd;3S;5| (|x| |y| |$|)
- (PROG (|#G13| |#G14|)
- (RETURN
- (SEQ
- (LETT |x| (SPADCALL |x| (QREFELT |$| 18)) |EUCDOM-;gcd;3S;5|)
- (LETT |y| (SPADCALL |y| (QREFELT |$| 18)) |EUCDOM-;gcd;3S;5|)
- (SEQ G190
- (COND
- ((NULL
- (COND
- ((SPADCALL |y| (QREFELT |$| 8)) (QUOTE NIL))
- ((QUOTE T) (QUOTE T))))
- (GO G191)))
- (SEQ
- (PROGN
- (LETT |#G13| |y| |EUCDOM-;gcd;3S;5|)
- (LETT |#G14| (SPADCALL |x| |y| (QREFELT |$| 19))
|EUCDOM-;gcd;3S;5|)
- (LETT |x| |#G13| |EUCDOM-;gcd;3S;5|)
- (LETT |y| |#G14| |EUCDOM-;gcd;3S;5|))
- (EXIT
- (LETT |y| (SPADCALL |y| (QREFELT |$| 18)) |EUCDOM-;gcd;3S;5|)))
- NIL
- (GO G190)
- G191
- (EXIT NIL))
- (EXIT |x|)))))
+(DEFUN |EUCDOM-;gcd;3S;5| (|x| |y| $)
+ (PROG (|#G13| |#G14|)
+ (RETURN
+ (SEQ
+ (LETT |x| (SPADCALL |x| (QREFELT $ 19)) |EUCDOM-;gcd;3S;5|)
+ (LETT |y| (SPADCALL |y| (QREFELT $ 19)) |EUCDOM-;gcd;3S;5|)
+ (SEQ G190
+ (COND
+ ((NULL
+ (COND
+ ((SPADCALL |y| (QREFELT $ 8)) (QUOTE NIL))
+ ((QUOTE T) (QUOTE T))))
+ (GO G191)))
+ (SEQ
+ (PROGN
+ (LETT |#G13| |y| |EUCDOM-;gcd;3S;5|)
+ (LETT |#G14| (SPADCALL |x| |y| (QREFELT $ 20)) |EUCDOM-;gcd;3S;5|)
+ (LETT |x| |#G13| |EUCDOM-;gcd;3S;5|)
+ (LETT |y| |#G14| |EUCDOM-;gcd;3S;5|))
+ (EXIT
+ (LETT |y| (SPADCALL |y| (QREFELT $ 19)) |EUCDOM-;gcd;3S;5|)))
+ NIL
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (EXIT |x|)))))
@
\subsubsection{EUCDOM-;unitNormalizeIdealElt}
<<EUCDOM-;unitNormalizeIdealElt>>=
-(DEFUN |EUCDOM-;unitNormalizeIdealElt| (|s| |$|)
- (PROG (|#G16| |u| |c| |a|)
- (RETURN
- (SEQ
- (PROGN
- (LETT |#G16| (SPADCALL (QVELT |s| 2) (QREFELT |$| 22))
|EUCDOM-;unitNormalizeIdealElt|)
- (LETT |u| (QVELT |#G16| 0) |EUCDOM-;unitNormalizeIdealElt|)
- (LETT |c| (QVELT |#G16| 1) |EUCDOM-;unitNormalizeIdealElt|)
- (LETT |a| (QVELT |#G16| 2) |EUCDOM-;unitNormalizeIdealElt|)
- |#G16|)
- (EXIT
- (COND
- ((SPADCALL |a| (QREFELT |$| 23)) |s|)
- ((QUOTE T)
- (VECTOR
- (SPADCALL |a| (QVELT |s| 0) (QREFELT |$| 24))
- (SPADCALL |a| (QVELT |s| 1) (QREFELT |$| 24))
- |c|))))))))
+(DEFUN |EUCDOM-;unitNormalizeIdealElt| (|s| $)
+ (PROG (|#G16| |u| |c| |a|)
+ (RETURN
+ (SEQ
+ (PROGN
+ (LETT |#G16|
+ (SPADCALL (QVELT |s| 2) (QREFELT $ 23))
+ |EUCDOM-;unitNormalizeIdealElt|)
+ (LETT |u| (QVELT |#G16| 0) |EUCDOM-;unitNormalizeIdealElt|)
+ (LETT |c| (QVELT |#G16| 1) |EUCDOM-;unitNormalizeIdealElt|)
+ (LETT |a| (QVELT |#G16| 2) |EUCDOM-;unitNormalizeIdealElt|)
+ |#G16|)
+ (EXIT
+ (COND
+ ((SPADCALL |a| (|spadConstant| $ 24) (QREFELT $ 25)) |s|)
+ ((QUOTE T)
+ (VECTOR
+ (SPADCALL |a| (QVELT |s| 0) (QREFELT $ 26))
+ (SPADCALL |a| (QVELT |s| 1) (QREFELT $ 26))
+ |c|))))))))
@
\subsubsection{EUCDOM-;extendedEuclidean;2SR;7}
<<EUCDOM-;extendedEuclidean;2SR;7>>=
-(DEFUN |EUCDOM-;extendedEuclidean;2SR;7| (|x| |y| |$|)
- (PROG (|s3| |s2| |qr| |s1|)
- (RETURN
- (SEQ
- (LETT |s1|
- (|EUCDOM-;unitNormalizeIdealElt|
- (VECTOR (|spadConstant| |$| 25) (|spadConstant| |$| 26) |x|) |$|)
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (LETT |s2|
- (|EUCDOM-;unitNormalizeIdealElt|
- (VECTOR (|spadConstant| |$| 26) (|spadConstant| |$| 25) |y|) |$|)
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (EXIT
- (COND
- ((SPADCALL |y| (QREFELT |$| 8)) |s1|)
- ((SPADCALL |x| (QREFELT |$| 8)) |s2|)
- ((QUOTE T)
- (SEQ
- (SEQ G190
- (COND
- ((NULL
- (COND
- ((SPADCALL (QVELT |s2| 2) (QREFELT |$| 8))
- (QUOTE NIL))
- ((QUOTE T) (QUOTE T))))
- (GO G191)))
- (SEQ
- (LETT |qr|
- (SPADCALL (QVELT |s1| 2) (QVELT |s2| 2) (QREFELT |$| 13))
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (LETT |s3|
- (VECTOR
- (SPADCALL
- (QVELT |s1| 0)
- (SPADCALL
- (QCAR |qr|)
- (QVELT |s2| 0)
- (QREFELT |$| 24))
- (QREFELT |$| 27))
- (SPADCALL
- (QVELT |s1| 1)
- (SPADCALL
- (QCAR |qr|)
- (QVELT |s2| 1)
- (QREFELT |$| 24))
- (QREFELT |$| 27))
- (QCDR |qr|))
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (LETT |s1| |s2| |EUCDOM-;extendedEuclidean;2SR;7|)
- (EXIT
- (LETT |s2|
- (|EUCDOM-;unitNormalizeIdealElt| |s3| |$|)
- |EUCDOM-;extendedEuclidean;2SR;7|)))
- NIL
- (GO G190)
- G191
- (EXIT NIL))
- (COND
- ((NULL (SPADCALL (QVELT |s1| 0) (QREFELT |$| 8)))
- (COND
- ((NULL (SPADCALL (QVELT |s1| 0) |y| (QREFELT |$| 28)))
- (SEQ
- (LETT |qr|
- (SPADCALL (QVELT |s1| 0) |y| (QREFELT |$| 13))
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (QSETVELT |s1| 0 (QCDR |qr|))
- (QSETVELT |s1| 1
- (SPADCALL
- (QVELT |s1| 1)
- (SPADCALL (QCAR |qr|) |x| (QREFELT |$| 24))
- (QREFELT |$| 29)))
- (EXIT
- (LETT |s1|
- (|EUCDOM-;unitNormalizeIdealElt| |s1| |$|)
- |EUCDOM-;extendedEuclidean;2SR;7|)))))))
- (EXIT |s1|)))))))))
+(DEFUN |EUCDOM-;extendedEuclidean;2SR;7| (|x| |y| $)
+ (PROG (|s3| |s2| |qr| |s1|)
+ (RETURN
+ (SEQ
+ (LETT |s1|
+ (|EUCDOM-;unitNormalizeIdealElt|
+ (VECTOR (|spadConstant| $ 24) (|spadConstant| $ 16) |x|)
+ $)
+ |EUCDOM-;extendedEuclidean;2SR;7|)
+ (LETT |s2|
+ (|EUCDOM-;unitNormalizeIdealElt|
+ (VECTOR (|spadConstant| $ 16) (|spadConstant| $ 24) |y|)
+ $)
+ |EUCDOM-;extendedEuclidean;2SR;7|)
+ (EXIT
+ (COND
+ ((SPADCALL |y| (QREFELT $ 8)) |s1|)
+ ((SPADCALL |x| (QREFELT $ 8)) |s2|)
+ ((QUOTE T)
+ (SEQ
+ (SEQ
+ G190
+ (COND
+ ((NULL
+ (COND
+ ((SPADCALL (QVELT |s2| 2) (QREFELT $ 8)) (QUOTE NIL))
+ ((QUOTE T) (QUOTE T))))
+ (GO G191)))
+ (SEQ
+ (LETT |qr|
+ (SPADCALL (QVELT |s1| 2) (QVELT |s2| 2) (QREFELT $ 13))
+ |EUCDOM-;extendedEuclidean;2SR;7|)
+ (LETT |s3|
+ (VECTOR
+ (SPADCALL (QVELT |s1| 0)
+ (SPADCALL (QCAR |qr|) (QVELT |s2| 0) (QREFELT $ 26))
+ (QREFELT $ 27))
+ (SPADCALL (QVELT |s1| 1)
+ (SPADCALL (QCAR |qr|) (QVELT |s2| 1) (QREFELT $ 26))
+ (QREFELT $ 27))
+ (QCDR |qr|))
+ |EUCDOM-;extendedEuclidean;2SR;7|)
+ (LETT |s1| |s2| |EUCDOM-;extendedEuclidean;2SR;7|)
+ (EXIT
+ (LETT |s2|
+ (|EUCDOM-;unitNormalizeIdealElt| |s3| $)
+ |EUCDOM-;extendedEuclidean;2SR;7|)))
+ NIL
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (COND
+ ((NULL (SPADCALL (QVELT |s1| 0) (QREFELT $ 8)))
+ (COND
+ ((NULL (SPADCALL (QVELT |s1| 0) |y| (QREFELT $ 28)))
+ (SEQ
+ (LETT |qr|
+ (SPADCALL (QVELT |s1| 0) |y| (QREFELT $ 13))
+ |EUCDOM-;extendedEuclidean;2SR;7|)
+ (QSETVELT |s1| 0 (QCDR |qr|))
+ (QSETVELT |s1| 1
+ (SPADCALL (QVELT |s1| 1)
+ (SPADCALL (QCAR |qr|) |x| (QREFELT $ 26)) (QREFELT $ 29)))
+ (EXIT
+ (LETT |s1|
+ (|EUCDOM-;unitNormalizeIdealElt| |s1| $)
+ |EUCDOM-;extendedEuclidean;2SR;7|)))))))
+ (EXIT |s1|)))))))))
@
\subsubsection{EUCDOM-;extendedEuclidean;3SU;8}
<<EUCDOM-;extendedEuclidean;3SU;8>>=
-(DEFUN |EUCDOM-;extendedEuclidean;3SU;8| (|x| |y| |z| |$|)
- (PROG (|s| |w| |qr|)
- (RETURN
- (SEQ
- (COND
- ((SPADCALL |z| (QREFELT |$| 8))
- (CONS 0 (CONS (|spadConstant| |$| 26) (|spadConstant| |$| 26))))
- ((QUOTE T)
- (SEQ
- (LETT |s|
- (SPADCALL |x| |y| (QREFELT |$| 32))
- |EUCDOM-;extendedEuclidean;3SU;8|)
- (LETT |w|
- (SPADCALL |z| (QVELT |s| 2) (QREFELT |$| 33))
- |EUCDOM-;extendedEuclidean;3SU;8|)
- (EXIT
- (COND
- ((QEQCAR |w| 1) (CONS 1 "failed"))
- ((SPADCALL |y| (QREFELT |$| 8))
- (CONS 0
- (CONS
- (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT |$| 24))
- (SPADCALL (QVELT |s| 1) (QCDR |w|) (QREFELT |$| 24)))))
- ((QUOTE T)
- (SEQ
- (LETT |qr|
- (SPADCALL
- (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT |$| 24))
- |y|
- (QREFELT |$| 13))
- |EUCDOM-;extendedEuclidean;3SU;8|)
- (EXIT
- (CONS
- 0
- (CONS
- (QCDR |qr|)
- (SPADCALL
- (SPADCALL
- (QVELT |s| 1)
- (QCDR |w|)
- (QREFELT |$| 24))
- (SPADCALL
- (QCAR |qr|)
- |x|
- (QREFELT |$| 24))
- (QREFELT |$| 29))))))))))))))))
+(DEFUN |EUCDOM-;extendedEuclidean;3SU;8| (|x| |y| |z| $)
+ (PROG (|s| |w| |qr|)
+ (RETURN
+ (SEQ
+ (COND
+ ((SPADCALL |z| (QREFELT $ 8))
+ (CONS 0 (CONS (|spadConstant| $ 16) (|spadConstant| $ 16))))
+ ((QUOTE T)
+ (SEQ
+ (LETT |s|
+ (SPADCALL |x| |y| (QREFELT $ 32))
+ |EUCDOM-;extendedEuclidean;3SU;8|)
+ (LETT |w|
+ (SPADCALL |z| (QVELT |s| 2) (QREFELT $ 33))
+ |EUCDOM-;extendedEuclidean;3SU;8|)
+ (EXIT
+ (COND
+ ((QEQCAR |w| 1) (CONS 1 "failed"))
+ ((SPADCALL |y| (QREFELT $ 8))
+ (CONS 0
+ (CONS (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT $ 26))
+ (SPADCALL (QVELT |s| 1) (QCDR |w|) (QREFELT $ 26)))))
+ ((QUOTE T)
+ (SEQ
+ (LETT |qr|
+ (SPADCALL
+ (SPADCALL (QVELT |s| 0) (QCDR |w|) (QREFELT $ 26))
+ |y|
+ (QREFELT $ 13))
+ |EUCDOM-;extendedEuclidean;3SU;8|)
+ (EXIT
+ (CONS 0
+ (CONS (QCDR |qr|)
+ (SPADCALL
+ (SPADCALL (QVELT |s| 1) (QCDR |w|) (QREFELT $ 26))
+ (SPADCALL (QCAR |qr|) |x| (QREFELT $ 26))
+ (QREFELT $ 29))))))))))))))))
@
\subsubsection{EUCDOM-;principalIdeal;LR;9}
<<EUCDOM-;principalIdeal;LR;9>>=
-(DEFUN |EUCDOM-;principalIdeal;LR;9| (|l| |$|)
- (PROG (|uca| |v| |u| #1=#:G83663 |vv| #2=#:G83664)
- (RETURN
- (SEQ
- (COND
- ((SPADCALL |l| NIL (QREFELT |$| 38))
- (|error| "empty list passed to principalIdeal"))
- ((SPADCALL (CDR |l|) NIL (QREFELT |$| 38))
- (SEQ
- (LETT |uca|
- (SPADCALL (|SPADfirst| |l|) (QREFELT |$| 22))
- |EUCDOM-;principalIdeal;LR;9|)
- (EXIT (CONS (LIST (QVELT |uca| 0)) (QVELT |uca| 1)))))
- ((SPADCALL (CDR (CDR |l|)) NIL (QREFELT |$| 38))
- (SEQ
- (LETT |u|
- (SPADCALL
- (|SPADfirst| |l|)
- (SPADCALL |l| (QREFELT |$| 39))
- (QREFELT |$| 32))
- |EUCDOM-;principalIdeal;LR;9|)
- (EXIT
- (CONS (LIST (QVELT |u| 0) (QVELT |u| 1)) (QVELT |u| 2)))))
- ((QUOTE T)
- (SEQ
- (LETT |v|
- (SPADCALL (CDR |l|) (QREFELT |$| 42))
- |EUCDOM-;principalIdeal;LR;9|)
- (LETT |u|
- (SPADCALL (|SPADfirst| |l|) (QCDR |v|) (QREFELT |$| 32))
- |EUCDOM-;principalIdeal;LR;9|)
- (EXIT
- (CONS
- (CONS
- (QVELT |u| 0)
- (PROGN
- (LETT #1# NIL |EUCDOM-;principalIdeal;LR;9|)
- (SEQ
- (LETT |vv| NIL |EUCDOM-;principalIdeal;LR;9|)
- (LETT #2# (QCAR |v|) |EUCDOM-;principalIdeal;LR;9|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT |vv|
- (CAR #2#)
- |EUCDOM-;principalIdeal;LR;9|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS
- (SPADCALL
- (QVELT |u| 1)
- |vv|
- (QREFELT |$| 24))
- #1#)
- |EUCDOM-;principalIdeal;LR;9|)))
- (LETT #2# (CDR #2#) |EUCDOM-;principalIdeal;LR;9|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#)))))
- (QVELT |u| 2))))))))))
+(DEFUN |EUCDOM-;principalIdeal;LR;9| (|l| $)
+ (PROG (|uca| |v| |u| #0=#:G1497 |vv| #1=#:G1498)
+ (RETURN
+ (SEQ
+ (COND
+ ((SPADCALL |l| NIL (QREFELT $ 38))
+ (|error| "empty list passed to principalIdeal"))
+ ((SPADCALL (CDR |l|) NIL (QREFELT $ 38))
+ (SEQ
+ (LETT |uca|
+ (SPADCALL (|SPADfirst| |l|) (QREFELT $ 23))
+ |EUCDOM-;principalIdeal;LR;9|)
+ (EXIT (CONS (LIST (QVELT |uca| 0)) (QVELT |uca| 1)))))
+ ((SPADCALL (CDR (CDR |l|)) NIL (QREFELT $ 38))
+ (SEQ
+ (LETT |u|
+ (SPADCALL (|SPADfirst| |l|)
+ (SPADCALL |l| (QREFELT $ 39)) (QREFELT $ 32))
+ |EUCDOM-;principalIdeal;LR;9|)
+ (EXIT (CONS (LIST (QVELT |u| 0) (QVELT |u| 1)) (QVELT |u| 2)))))
+ ((QUOTE T)
+ (SEQ
+ (LETT |v|
+ (SPADCALL (CDR |l|) (QREFELT $ 42))
+ |EUCDOM-;principalIdeal;LR;9|)
+ (LETT |u|
+ (SPADCALL (|SPADfirst| |l|) (QCDR |v|) (QREFELT $ 32))
+ |EUCDOM-;principalIdeal;LR;9|)
+ (EXIT
+ (CONS
+ (CONS (QVELT |u| 0)
+ (PROGN
+ (LETT #0# NIL |EUCDOM-;principalIdeal;LR;9|)
+ (SEQ
+ (LETT |vv| NIL |EUCDOM-;principalIdeal;LR;9|)
+ (LETT #1# (QCAR |v|) |EUCDOM-;principalIdeal;LR;9|)
+ G190
+ (COND
+ ((OR (ATOM #1#)
+ (PROGN
+ (LETT |vv| (CAR #1#) |EUCDOM-;principalIdeal;LR;9|) NIL))
+ (GO G191)))
+ (SEQ
+ (EXIT
+ (LETT #0#
+ (CONS (SPADCALL (QVELT |u| 1) |vv| (QREFELT $ 26))
+ #0#)
+ |EUCDOM-;principalIdeal;LR;9|)))
+ (LETT #1# (CDR #1#)
+ |EUCDOM-;principalIdeal;LR;9|)
+ (GO G190)
+ G191
+ (EXIT (NREVERSE0 #0#)))))
+ (QVELT |u| 2))))))))))
+
@
\subsubsection{EUCDOM-;expressIdealMember;LSU;10}
<<EUCDOM-;expressIdealMember;LSU;10>>=
-(DEFUN |EUCDOM-;expressIdealMember;LSU;10| (|l| |z| |$|)
- (PROG (#1=#:G83681 #2=#:G83682 |pid| |q| #3=#:G83679 |v| #4=#:G83680)
- (RETURN
- (SEQ
- (COND
- ((SPADCALL |z| (|spadConstant| |$| 26) (QREFELT |$| 44))
- (CONS
- 0
- (PROGN
- (LETT #1# NIL |EUCDOM-;expressIdealMember;LSU;10|)
- (SEQ
- (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|)
- (LETT #2# |l| |EUCDOM-;expressIdealMember;LSU;10|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT |v|
- (CAR #2#)
- |EUCDOM-;expressIdealMember;LSU;10|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS (|spadConstant| |$| 26) #1#)
- |EUCDOM-;expressIdealMember;LSU;10|)))
- (LETT #2# (CDR #2#) |EUCDOM-;expressIdealMember;LSU;10|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))))
- ((QUOTE T)
- (SEQ
- (LETT |pid|
- (SPADCALL |l| (QREFELT |$| 42))
- |EUCDOM-;expressIdealMember;LSU;10|)
- (LETT |q|
- (SPADCALL |z| (QCDR |pid|) (QREFELT |$| 33))
- |EUCDOM-;expressIdealMember;LSU;10|)
- (EXIT
- (COND
- ((QEQCAR |q| 1) (CONS 1 "failed"))
- ((QUOTE T)
- (CONS
- 0
- (PROGN
- (LETT #3# NIL |EUCDOM-;expressIdealMember;LSU;10|)
- (SEQ
- (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|)
- (LETT #4# (QCAR |pid|)
|EUCDOM-;expressIdealMember;LSU;10|)
- G190
- (COND
- ((OR
- (ATOM #4#)
- (PROGN
- (LETT |v|
- (CAR #4#)
- |EUCDOM-;expressIdealMember;LSU;10|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #3#
- (CONS
- (SPADCALL (QCDR |q|) |v| (QREFELT |$| 24))
- #3#)
- |EUCDOM-;expressIdealMember;LSU;10|)))
- (LETT #4#
- (CDR #4#)
- |EUCDOM-;expressIdealMember;LSU;10|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #3#)))))))))))))))
+(DEFUN |EUCDOM-;expressIdealMember;LSU;10| (|l| |z| $)
+ (PROG (#0=#:G1513 #1=#:G1514 |pid| |q| #2=#:G1515 |v| #3=#:G1516)
+ (RETURN
+ (SEQ
+ (COND
+ ((SPADCALL |z| (|spadConstant| $ 16) (QREFELT $ 25))
+ (CONS 0
+ (PROGN
+ (LETT #0# NIL |EUCDOM-;expressIdealMember;LSU;10|)
+ (SEQ
+ (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|)
+ (LETT #1# |l| |EUCDOM-;expressIdealMember;LSU;10|)
+ G190
+ (COND
+ ((OR (ATOM #1#)
+ (PROGN
+ (LETT |v| (CAR #1#) |EUCDOM-;expressIdealMember;LSU;10|) NIL))
+ (GO G191)))
+ (SEQ
+ (EXIT
+ (LETT #0#
+ (CONS (|spadConstant| $ 16) #0#)
+ |EUCDOM-;expressIdealMember;LSU;10|)))
+ (LETT #1# (CDR #1#) |EUCDOM-;expressIdealMember;LSU;10|)
+ (GO G190)
+ G191
+ (EXIT (NREVERSE0 #0#))))))
+ ((QUOTE T)
+ (SEQ
+ (LETT |pid|
+ (SPADCALL |l| (QREFELT $ 42))
+ |EUCDOM-;expressIdealMember;LSU;10|)
+ (LETT |q|
+ (SPADCALL |z| (QCDR |pid|) (QREFELT $ 33))
+ |EUCDOM-;expressIdealMember;LSU;10|)
+ (EXIT
+ (COND
+ ((QEQCAR |q| 1) (CONS 1 "failed"))
+ ((QUOTE T)
+ (CONS 0
+ (PROGN
+ (LETT #2# NIL |EUCDOM-;expressIdealMember;LSU;10|)
+ (SEQ
+ (LETT |v| NIL |EUCDOM-;expressIdealMember;LSU;10|)
+ (LETT #3# (QCAR |pid|) |EUCDOM-;expressIdealMember;LSU;10|)
+ G190
+ (COND
+ ((OR (ATOM #3#)
+ (PROGN
+ (LETT |v| (CAR #3#) |EUCDOM-;expressIdealMember;LSU;10|)
+ NIL))
+ (GO G191)))
+ (SEQ
+ (EXIT
+ (LETT #2#
+ (CONS (SPADCALL (QCDR |q|) |v| (QREFELT $ 26))
+ #2#)
+ |EUCDOM-;expressIdealMember;LSU;10|)))
+ (LETT #3# (CDR #3#) |EUCDOM-;expressIdealMember;LSU;10|)
+ (GO G190)
+ G191
+ (EXIT (NREVERSE0 #2#)))))))))))))))
@
\subsubsection{EUCDOM-;multiEuclidean;LSU;11}
<<EUCDOM-;multiEuclidean;LSU;11>>=
-(DEFUN |EUCDOM-;multiEuclidean;LSU;11| (|l| |z| |$|)
- (PROG (|n| |l1| |l2| #1=#:G83565 #2=#:G83702 #3=#:G83688 #4=#:G83686
- #5=#:G83687 #6=#:G83566 #7=#:G83701 #8=#:G83691 #9=#:G83689
- #10=#:G83690 |u| |v1| |v2|)
- (RETURN
- (SEQ
- (LETT |n| (LENGTH |l|) |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT
- (COND
- ((ZEROP |n|) (|error| "empty list passed to multiEuclidean"))
- ((EQL |n| 1) (CONS 0 (LIST |z|)))
- ((QUOTE T)
- (SEQ
- (LETT |l1|
- (SPADCALL |l| (QREFELT |$| 47))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT |l2|
- (SPADCALL |l1| (QUOTIENT2 |n| 2) (QREFELT |$| 49))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT |u|
- (SPADCALL
- (PROGN
- (LETT #5# NIL |EUCDOM-;multiEuclidean;LSU;11|)
- (SEQ
- (LETT #1# NIL |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #2# |l1| |EUCDOM-;multiEuclidean;LSU;11|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT #1#
- (CAR #2#)
- |EUCDOM-;multiEuclidean;LSU;11|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (PROGN
- (LETT #3# #1# |EUCDOM-;multiEuclidean;LSU;11|)
- (COND
- (#5#
- (LETT #4#
- (SPADCALL #4# #3# (QREFELT |$| 24))
- |EUCDOM-;multiEuclidean;LSU;11|))
- ((QUOTE T)
- (PROGN
- (LETT #4#
- #3#
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #5#
- (QUOTE T)
- |EUCDOM-;multiEuclidean;LSU;11|)))))))
- (LETT #2# (CDR #2#) |EUCDOM-;multiEuclidean;LSU;11|)
- (GO G190)
- G191
- (EXIT NIL))
- (COND (#5# #4#) ((QUOTE T) (|spadConstant| |$| 25))))
- (PROGN
- (LETT #10# NIL |EUCDOM-;multiEuclidean;LSU;11|)
- (SEQ
- (LETT #6# NIL |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #7# |l2| |EUCDOM-;multiEuclidean;LSU;11|)
- G190
- (COND
- ((OR
- (ATOM #7#)
- (PROGN
- (LETT #6#
- (CAR #7#)
- |EUCDOM-;multiEuclidean;LSU;11|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (PROGN
- (LETT #8# #6# |EUCDOM-;multiEuclidean;LSU;11|)
- (COND
- (#10#
- (LETT #9#
- (SPADCALL #9# #8# (QREFELT |$| 24))
- |EUCDOM-;multiEuclidean;LSU;11|))
- ((QUOTE T)
- (PROGN
- (LETT #9#
- #8#
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #10#
- (QUOTE T)
- |EUCDOM-;multiEuclidean;LSU;11|)))))))
- (LETT #7# (CDR #7#) |EUCDOM-;multiEuclidean;LSU;11|)
- (GO G190)
- G191
- (EXIT NIL))
- (COND
- (#10# #9#)
- ((QUOTE T) (|spadConstant| |$| 25))))
- |z|
- (QREFELT |$| 50))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT
- (COND
- ((QEQCAR |u| 1) (CONS 1 "failed"))
- ((QUOTE T)
- (SEQ
- (LETT |v1|
- (SPADCALL |l1| (QCDR (QCDR |u|)) (QREFELT |$| 51))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT
- (COND
- ((QEQCAR |v1| 1) (CONS 1 "failed"))
- ((QUOTE T)
- (SEQ
- (LETT |v2|
- (SPADCALL
- |l2|
- (QCAR (QCDR |u|))
- (QREFELT |$| 51))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT
- (COND
- ((QEQCAR |v2| 1) (CONS 1 "failed"))
- ((QUOTE T)
- (CONS
- 0
- (SPADCALL
- (QCDR |v1|)
- (QCDR |v2|)
- (QREFELT |$| 52))))))))))))))))))))))
+(DEFUN |EUCDOM-;multiEuclidean;LSU;11| (|l| |z| $)
+ (PROG (|n| |l1| |l2| #0=#:G1405 #1=#:G1535 #2=#:G1522 #3=#:G1520
+ #4=#:G1521 #5=#:G1406 #6=#:G1536 #7=#:G1525 #8=#:G1523 #9=#:G1524
+ |u| |v1| |v2|)
+ (RETURN
+ (SEQ
+ (LETT |n| (LENGTH |l|) |EUCDOM-;multiEuclidean;LSU;11|)
+ (EXIT
+ (COND
+ ((ZEROP |n|) (|error| "empty list passed to multiEuclidean"))
+ ((EQL |n| 1) (CONS 0 (LIST |z|)))
+ ((QUOTE T)
+ (SEQ
+ (LETT |l1|
+ (SPADCALL |l| (QREFELT $ 46)) |EUCDOM-;multiEuclidean;LSU;11|)
+ (LETT |l2|
+ (SPADCALL |l1| (QUOTIENT2 |n| 2) (QREFELT $ 48))
+ |EUCDOM-;multiEuclidean;LSU;11|)
+ (LETT |u|
+ (SPADCALL
+ (PROGN
+ (LETT #4# NIL |EUCDOM-;multiEuclidean;LSU;11|)
+ (SEQ
+ (LETT #0# NIL |EUCDOM-;multiEuclidean;LSU;11|)
+ (LETT #1# |l1| |EUCDOM-;multiEuclidean;LSU;11|)
+ G190
+ (COND
+ ((OR (ATOM #1#)
+ (PROGN
+ (LETT #0# (CAR #1#) |EUCDOM-;multiEuclidean;LSU;11|)
+ NIL))
+ (GO G191)))
+ (SEQ
+ (EXIT
+ (PROGN
+ (LETT #2# #0# |EUCDOM-;multiEuclidean;LSU;11|)
+ (COND
+ (#4#
+ (LETT #3#
+ (SPADCALL #3# #2# (QREFELT $ 26))
+ |EUCDOM-;multiEuclidean;LSU;11|))
+ ((QUOTE T)
+ (PROGN
+ (LETT #3# #2# |EUCDOM-;multiEuclidean;LSU;11|)
+ (LETT #4# (QUOTE T) |EUCDOM-;multiEuclidean;LSU;11|)))))))
+ (LETT #1# (CDR #1#) |EUCDOM-;multiEuclidean;LSU;11|)
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (COND (#4# #3#) ((QUOTE T) (|spadConstant| $ 24))))
+ (PROGN
+ (LETT #9# NIL |EUCDOM-;multiEuclidean;LSU;11|)
+ (SEQ
+ (LETT #5# NIL |EUCDOM-;multiEuclidean;LSU;11|)
+ (LETT #6# |l2| |EUCDOM-;multiEuclidean;LSU;11|)
+ G190
+ (COND
+ ((OR (ATOM #6#)
+ (PROGN
+ (LETT #5# (CAR #6#) |EUCDOM-;multiEuclidean;LSU;11|)
+ NIL))
+ (GO G191)))
+ (SEQ
+ (EXIT
+ (PROGN
+ (LETT #7# #5# |EUCDOM-;multiEuclidean;LSU;11|)
+ (COND
+ (#9#
+ (LETT #8#
+ (SPADCALL #8# #7# (QREFELT $ 26))
+ |EUCDOM-;multiEuclidean;LSU;11|))
+ ((QUOTE T)
+ (PROGN
+ (LETT #8# #7# |EUCDOM-;multiEuclidean;LSU;11|)
+ (LETT #9# (QUOTE T) |EUCDOM-;multiEuclidean;LSU;11|)))))))
+ (LETT #6# (CDR #6#) |EUCDOM-;multiEuclidean;LSU;11|)
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (COND (#9# #8#) ((QUOTE T) (|spadConstant| $ 24))))
+ |z| (QREFELT $ 49))
+ |EUCDOM-;multiEuclidean;LSU;11|)
+ (EXIT
+ (COND
+ ((QEQCAR |u| 1) (CONS 1 "failed"))
+ ((QUOTE T)
+ (SEQ
+ (LETT |v1|
+ (SPADCALL |l1| (QCDR (QCDR |u|)) (QREFELT $ 50))
+ |EUCDOM-;multiEuclidean;LSU;11|)
+ (EXIT
+ (COND
+ ((QEQCAR |v1| 1) (CONS 1 "failed"))
+ ((QUOTE T)
+ (SEQ
+ (LETT |v2|
+ (SPADCALL |l2| (QCAR (QCDR |u|)) (QREFELT $ 50))
+ |EUCDOM-;multiEuclidean;LSU;11|)
+ (EXIT
+ (COND
+ ((QEQCAR |v2| 1) (CONS 1 "failed"))
+ ((QUOTE T)
+ (CONS 0
+ (SPADCALL
+ (QCDR |v1|)
+ (QCDR |v2|)
+ (QREFELT $ 51))))))))))))))))))))))
@
\subsubsection{EuclideanDomain\&}
<<EuclideanDomainAmp>>=
-(DEFUN |EuclideanDomain&| (|#1|)
- (PROG (|DV$1| |dv$| |$| |pv$|)
- (RETURN
- (PROGN
- (LETT |DV$1| (|devaluate| |#1|) . #1=(|EuclideanDomain&|))
- (LETT |dv$| (LIST (QUOTE |EuclideanDomain&|) |DV$1|) . #1#)
- (LETT |$| (GETREFV 54) . #1#)
- (QSETREFV |$| 0 |dv$|)
- (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
- (|stuffDomainSlots| |$|)
- (QSETREFV |$| 6 |#1|)
- |$|))))
+(DEFUN |EuclideanDomain&| (|#1|)
+ (PROG (DV$1 |dv$| $ |pv$|)
+ (RETURN
+ (PROGN
+ (LETT DV$1 (|devaluate| |#1|) . #0=(|EuclideanDomain&|))
+ (LETT |dv$| (LIST (QUOTE |EuclideanDomain&|) DV$1) . #0#)
+ (LETT $ (GETREFV 53) . #0#)
+ (QSETREFV $ 0 |dv$|)
+ (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
+ (|stuffDomainSlots| $)
+ (QSETREFV $ 6 |#1|)
+ $))))
@
\subsubsection{EUCDOM-;MAKEPROP}
<<EUCDOM-;MAKEPROP>>=
-(MAKEPROP
- (QUOTE |EuclideanDomain&|)
- (QUOTE |infovec|)
- (LIST
- (QUOTE
- #(NIL NIL NIL NIL NIL NIL
- (|local| |#1|)
- (|Boolean|)
- (0 . |zero?|)
- (|NonNegativeInteger|)
- (5 . |euclideanSize|)
- |EUCDOM-;sizeLess?;2SB;1|
- (|Record| (|:| |quotient| |$|) (|:| |remainder| |$|))
- (10 . |divide|)
- |EUCDOM-;quo;3S;2|
- |EUCDOM-;rem;3S;3|
- (|Union| |$| (QUOTE "failed"))
- |EUCDOM-;exquo;2SU;4|
- (16 . |unitCanonical|)
- (21 . |rem|)
- |EUCDOM-;gcd;3S;5|
- (|Record| (|:| |unit| |$|) (|:| |canonical| |$|) (|:| |associate| |$|))
- (27 . |unitNormal|)
- (32 . |one?|)
- (37 . |*|)
- (43 . |One|)
- (47 . |Zero|)
- (51 . |-|)
- (57 . |sizeLess?|)
- (63 . |+|)
- (|Record| (|:| |coef1| |$|) (|:| |coef2| |$|) (|:| |generator| |$|))
- |EUCDOM-;extendedEuclidean;2SR;7|
- (69 . |extendedEuclidean|)
- (75 . |exquo|)
- (|Record| (|:| |coef1| |$|) (|:| |coef2| |$|))
- (|Union| 34 (QUOTE "failed"))
- |EUCDOM-;extendedEuclidean;3SU;8|
- (|List| 6)
- (81 . |=|)
- (87 . |second|)
- (|Record| (|:| |coef| 41) (|:| |generator| |$|))
- (|List| |$|)
- (92 . |principalIdeal|)
- |EUCDOM-;principalIdeal;LR;9|
- (97 . |=|)
- (|Union| 41 (QUOTE "failed"))
- |EUCDOM-;expressIdealMember;LSU;10|
- (103 . |copy|)
- (|Integer|)
- (108 . |split!|)
- (114 . |extendedEuclidean|)
- (121 . |multiEuclidean|)
- (127 . |concat|)
- |EUCDOM-;multiEuclidean;LSU;11|))
- (QUOTE
- #(|sizeLess?| 133 |rem| 139 |quo| 145 |principalIdeal| 151
- |multiEuclidean| 156 |gcd| 162 |extendedEuclidean| 168 |exquo| 181
- |expressIdealMember| 187))
- (QUOTE NIL)
- (CONS
- (|makeByteWordVec2| 1 (QUOTE NIL))
- (CONS
- (QUOTE #())
- (CONS
- (QUOTE #())
- (|makeByteWordVec2| 53
- (QUOTE
- (1 6 7 0 8 1 6 9 0 10 2 6 12 0 0 13 1 6 0 0 18 2 6 0 0 0 19 1 6
- 21 0 22 1 6 7 0 23 2 6 0 0 0 24 0 6 0 25 0 6 0 26 2 6 0 0 0 27
- 2 6 7 0 0 28 2 6 0 0 0 29 2 6 30 0 0 32 2 6 16 0 0 33 2 37 7 0
- 0 38 1 37 6 0 39 1 6 40 41 42 2 6 7 0 0 44 1 37 0 0 47 2 37 0 0
- 48 49 3 6 35 0 0 0 50 2 6 45 41 0 51 2 37 0 0 0 52 2 0 7 0 0 11
- 2 0 0 0 0 15 2 0 0 0 0 14 1 0 40 41 43 2 0 45 41 0 53 2 0 0 0 0
- 20 3 0 35 0 0 0 36 2 0 30 0 0 31 2 0 16 0 0 17 2 0 45 41 0
- 46))))))
- (QUOTE |lookupComplete|)))
+(MAKEPROP
+ (QUOTE |EuclideanDomain&|)
+ (QUOTE |infovec|)
+ (LIST
+ (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|Boolean|) (0 . |zero?|)
+ (|NonNegativeInteger|) (5 . |euclideanSize|) |EUCDOM-;sizeLess?;2SB;1|
+ (|Record| (|:| |quotient| $) (|:| |remainder| $)) (10 . |divide|)
+ |EUCDOM-;quo;3S;2| |EUCDOM-;rem;3S;3| (16 . |Zero|)
+ (|Union| $ (QUOTE "failed")) |EUCDOM-;exquo;2SU;4| (20 . |unitCanonical|)
+ (25 . |rem|) |EUCDOM-;gcd;3S;5|
+ (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $))
+ (31 . |unitNormal|) (36 . |One|) (40 . =) (46 . *) (52 . -)
+ (58 . |sizeLess?|) (64 . +)
+ (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $))
+ |EUCDOM-;extendedEuclidean;2SR;7|
+ (70 . |extendedEuclidean|) (76 . |exquo|)
+ (|Record| (|:| |coef1| $) (|:| |coef2| $))
+ (|Union| 34 (QUOTE "failed")) |EUCDOM-;extendedEuclidean;3SU;8|
+ (|List| 6) (82 . =) (88 . |second|)
+ (|Record| (|:| |coef| 41) (|:| |generator| $))
+ (|List| $) (93 . |principalIdeal|) |EUCDOM-;principalIdeal;LR;9|
+ (|Union| 41 (QUOTE "failed")) |EUCDOM-;expressIdealMember;LSU;10|
+ (98 . |copy|) (|Integer|) (103 . |split!|) (109 . |extendedEuclidean|)
+ (116 . |multiEuclidean|) (122 . |concat|) |EUCDOM-;multiEuclidean;LSU;11|))
+ (QUOTE
+ #(|sizeLess?| 128 |rem| 134 |quo| 140 |principalIdeal| 146
+ |multiEuclidean| 151 |gcd| 157 |extendedEuclidean| 163
+ |exquo| 176 |expressIdealMember| 182))
+ (QUOTE NIL)
+ (CONS (|makeByteWordVec2| 1 (QUOTE NIL))
+ (CONS (QUOTE #())
+ (CONS (QUOTE #())
+ (|makeByteWordVec2| 52 (QUOTE (1 6 7 0 8 1 6 9 0 10 2 6 12 0 0 13 0
+ 6 0 16 1 6 0 0 19 2 6 0 0 0 20 1 6 22 0 23 0 6 0 24 2 6 7 0 0 25 2 6 0
+ 0 0 26 2 6 0 0 0 27 2 6 7 0 0 28 2 6 0 0 0 29 2 6 30 0 0 32 2 6 17 0 0
+ 33 2 37 7 0 0 38 1 37 6 0 39 1 6 40 41 42 1 37 0 0 46 2 37 0 0 47 48 3
+ 6 35 0 0 0 49 2 6 44 41 0 50 2 37 0 0 0 51 2 0 7 0 0 11 2 0 0 0 0 15 2
+ 0 0 0 0 14 1 0 40 41 43 2 0 44 41 0 52 2 0 0 0 0 21 3 0 35 0 0 0 36 2 0
+ 30 0 0 31 2 0 17 0 0 18 2 0 44 41 0 45))))))
+ (QUOTE |lookupComplete|)))
@
<<EUCDOM-.lsp BOOTSTRAP>>=
diff --git a/src/algebra/polycat.spad.pamphlet
b/src/algebra/polycat.spad.pamphlet
index 01cbbcc..d1e38b7 100644
--- a/src/algebra/polycat.spad.pamphlet
+++ b/src/algebra/polycat.spad.pamphlet
@@ -568,8 +568,10 @@ PolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup,
VarSet:OrderedSet):
unit(s := squareFree p) * */[f.factor for f in factors s]
content(p,v) == content univariate(p,v)
primitivePart p ==
+ zero? p => p
unitNormal((p exquo content p) ::%).canonical
primitivePart(p,v) ==
+ zero? p => p
unitNormal((p exquo content(p,v)) ::%).canonical
if R has OrderedSet then
p:% < q:% ==
@@ -617,171 +619,125 @@ Note that this code is not included in the generated
catdef.spad file.
<<POLYCAT.lsp BOOTSTRAP>>=
-(|/VERSIONCHECK| 2)
+(/VERSIONCHECK 2)
(SETQ |PolynomialCategory;CAT| (QUOTE NIL))
(SETQ |PolynomialCategory;AL| (QUOTE NIL))
-(DEFUN |PolynomialCategory| (|&REST| #1=#:G101841 |&AUX| #2=#:G101839)
- (DSETQ #2# #1#)
- (LET (#3=#:G101840)
- (COND
- ((SETQ #3# (|assoc| (|devaluateList| #2#) |PolynomialCategory;AL|))
- (CDR #3#))
- (T
- (SETQ |PolynomialCategory;AL|
- (|cons5|
- (CONS
- (|devaluateList| #2#)
- (SETQ #3# (APPLY (FUNCTION |PolynomialCategory;|) #2#)))
- |PolynomialCategory;AL|))
- #3#))))
-
-(DEFUN |PolynomialCategory;| (|t#1| |t#2| |t#3|)
- (PROG (#1=#:G101838)
- (RETURN
- (PROG1
- (LETT #1#
- (|sublisV|
- (PAIR
- (QUOTE (|t#1| |t#2| |t#3|))
- (LIST
- (|devaluate| |t#1|)
- (|devaluate| |t#2|)
- (|devaluate| |t#3|)))
- (COND
- (|PolynomialCategory;CAT|)
- ((QUOTE T)
- (LETT |PolynomialCategory;CAT|
- (|Join|
- (|PartialDifferentialRing| (QUOTE |t#3|))
- (|FiniteAbelianMonoidRing| (QUOTE |t#1|) (QUOTE |t#2|))
- (|Evalable| (QUOTE |$|))
- (|InnerEvalable| (QUOTE |t#3|) (QUOTE |t#1|))
- (|InnerEvalable| (QUOTE |t#3|) (QUOTE |$|))
- (|RetractableTo| (QUOTE |t#3|))
- (|FullyLinearlyExplicitRingOver| (QUOTE |t#1|))
- (|mkCategory|
- (QUOTE |domain|)
- (QUOTE (
- ((|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|)))))
- (QUOTE (
- ((|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|)))))
- (QUOTE (
- (|Factored| |$|)
- (|List| |$|)
- (|List| |t#3|)
- (|NonNegativeInteger|)
- (|SparseUnivariatePolynomial| |$|)
- (|SparseUnivariatePolynomial| |t#1|)
- (|List| (|NonNegativeInteger|))))
- NIL))
- . #2=(|PolynomialCategory|)))))
- . #2#)
- (SETELT #1# 0
- (LIST
- (QUOTE |PolynomialCategory|)
- (|devaluate| |t#1|)
- (|devaluate| |t#2|)
- (|devaluate| |t#3|)))))))
+(DEFUN |PolynomialCategory| (&REST #0=#:G1430 &AUX #1=#:G1428)
+ (DSETQ #1# #0#)
+ (LET (#2=#:G1429)
+ (COND
+ ((SETQ #2# (|assoc| (|devaluateList| #1#) |PolynomialCategory;AL|))
+ (CDR #2#))
+ (T
+ (SETQ |PolynomialCategory;AL|
+ (|cons5|
+ (CONS (|devaluateList| #1#)
+ (SETQ #2# (APPLY (FUNCTION |PolynomialCategory;|) #1#)))
+ |PolynomialCategory;AL|))
+ #2#))))
+
+(DEFUN |PolynomialCategory;| (|t#1| |t#2| |t#3|)
+ (PROG (#0=#:G1427)
+ (RETURN
+ (PROG1
+ (LETT #0#
+ (|sublisV|
+ (PAIR (QUOTE (|t#1| |t#2| |t#3|)) (LIST (|devaluate| |t#1|) (|devaluate|
|t#2|) (|devaluate| |t#3|)))
+ (COND
+ (|PolynomialCategory;CAT|)
+ ((QUOTE T)
+ (LETT |PolynomialCategory;CAT|
+ (|Join|
+ (|PartialDifferentialRing| (QUOTE |t#3|))
+ (|FiniteAbelianMonoidRing| (QUOTE |t#1|) (QUOTE |t#2|))
+ (|Evalable| (QUOTE $))
+ (|InnerEvalable| (QUOTE |t#3|) (QUOTE |t#1|))
+ (|InnerEvalable| (QUOTE |t#3|) (QUOTE $))
+ (|RetractableTo| (QUOTE |t#3|))
+ (|FullyLinearlyExplicitRingOver| (QUOTE |t#1|))
+ (|mkCategory| (QUOTE |domain|)
+ (QUOTE
+ (((|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|)))))
+ (QUOTE
+ (((|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|)))))
+ (QUOTE
+ ((|Factored| $)
+ (|List| $)
+ (|List| |t#3|)
+ (|NonNegativeInteger|)
+ (|SparseUnivariatePolynomial| $)
+ (|SparseUnivariatePolynomial| |t#1|)
+ (|List| (|NonNegativeInteger|))))
+ NIL))
+ . #1=(|PolynomialCategory|)))))
+ . #1#)
+ (SETELT #0# 0
+ (LIST (QUOTE |PolynomialCategory|)
+ (|devaluate| |t#1|) (|devaluate| |t#2|) (|devaluate| |t#3|)))))))
@
\section{POLYCAT-.lsp BOOTSTRAP}
@@ -797,1924 +753,1521 @@ Note that this code is not included in the generated
catdef.spad file.
(|/VERSIONCHECK| 2)
-(DEFUN |POLYCAT-;eval;SLS;1| (|p| |l| |$|)
- (PROG (#1=#:G101870 #2=#:G101860 #3=#:G101868 #4=#:G101869
- |lvar| #5=#:G101866 |e| #6=#:G101867)
- (RETURN
- (SEQ
- (COND
- ((NULL |l|) |p|)
- ((QUOTE T)
- (SEQ
- (SEQ
- (EXIT
- (SEQ
- (LETT |e| NIL |POLYCAT-;eval;SLS;1|)
- (LETT #1# |l| |POLYCAT-;eval;SLS;1|)
- G190
- (COND
- ((OR
- (ATOM #1#)
- (PROGN (LETT |e| (CAR #1#) |POLYCAT-;eval;SLS;1|) NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (COND
- ((QEQCAR
- (SPADCALL
- (SPADCALL |e| (QREFELT |$| 11))
- (QREFELT |$| 13))
- 1)
- (PROGN
- (LETT #2#
- (|error| "cannot find a variable to evaluate")
- |POLYCAT-;eval;SLS;1|)
- (GO #2#))))))
- (LETT #1# (CDR #1#) |POLYCAT-;eval;SLS;1|)
- (GO G190)
- G191
- (EXIT NIL)))
- #2#
- (EXIT #2#))
- (LETT |lvar|
- (PROGN
- (LETT #3# NIL |POLYCAT-;eval;SLS;1|)
- (SEQ
- (LETT |e| NIL |POLYCAT-;eval;SLS;1|)
- (LETT #4# |l| |POLYCAT-;eval;SLS;1|)
- G190
- (COND
- ((OR
- (ATOM #4#)
- (PROGN
- (LETT |e| (CAR #4#) |POLYCAT-;eval;SLS;1|) NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #3#
- (CONS
- (SPADCALL
- (SPADCALL |e| (QREFELT |$| 11))
- (QREFELT |$| 14))
- #3#)
- |POLYCAT-;eval;SLS;1|)))
- (LETT #4# (CDR #4#) |POLYCAT-;eval;SLS;1|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #3#))))
- |POLYCAT-;eval;SLS;1|)
- (EXIT
- (SPADCALL
- |p|
- |lvar|
- (PROGN
- (LETT #5# NIL |POLYCAT-;eval;SLS;1|)
- (SEQ
- (LETT |e| NIL |POLYCAT-;eval;SLS;1|)
- (LETT #6# |l| |POLYCAT-;eval;SLS;1|)
- G190
- (COND
- ((OR
- (ATOM #6#)
- (PROGN
- (LETT |e| (CAR #6#) |POLYCAT-;eval;SLS;1|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #5#
- (CONS (SPADCALL |e| (QREFELT |$| 15)) #5#)
- |POLYCAT-;eval;SLS;1|)))
- (LETT #6# (CDR #6#) |POLYCAT-;eval;SLS;1|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #5#))))
- (QREFELT |$| 18))))))))))
-(DEFUN |POLYCAT-;monomials;SL;2| (|p| |$|)
- (PROG (|ml|)
- (RETURN
- (SEQ
- (LETT |ml| NIL |POLYCAT-;monomials;SL;2|)
- (SEQ G190
- (COND
- ((NULL
- (COND
- ((SPADCALL |p| (|spadConstant| |$| 21) (QREFELT |$| 24))
- (QUOTE NIL))
- ((QUOTE T) (QUOTE T))))
- (GO G191)))
- (SEQ
- (LETT |ml|
- (CONS (SPADCALL |p| (QREFELT |$| 25)) |ml|)
- |POLYCAT-;monomials;SL;2|)
- (EXIT
- (LETT |p|
- (SPADCALL |p| (QREFELT |$| 26))
- |POLYCAT-;monomials;SL;2|)))
- NIL
- (GO G190)
- G191
- (EXIT NIL))
- (EXIT (REVERSE |ml|))))))
+(/VERSIONCHECK 2)
-(DEFUN |POLYCAT-;isPlus;SU;3| (|p| |$|)
- (PROG (|l|)
- (RETURN
- (COND
- ((NULL
- (CDR
- (LETT |l|
- (SPADCALL |p| (QREFELT |$| 28))
- |POLYCAT-;isPlus;SU;3|)))
- (CONS 1 "failed"))
- ((QUOTE T) (CONS 0 |l|))))))
-
-(DEFUN |POLYCAT-;isTimes;SU;4| (|p| |$|)
- (PROG (|lv| #1=#:G101892 |v| #2=#:G101893 |l| |r|)
- (RETURN
- (SEQ
- (COND
- ((OR
- (NULL
- (LETT |lv|
- (SPADCALL |p| (QREFELT |$| 31))
- |POLYCAT-;isTimes;SU;4|))
- (NULL (SPADCALL |p| (QREFELT |$| 32))))
- (CONS 1 "failed"))
- ((QUOTE T)
- (SEQ
- (LETT |l|
- (PROGN
- (LETT #1# NIL |POLYCAT-;isTimes;SU;4|)
- (SEQ
- (LETT |v| NIL |POLYCAT-;isTimes;SU;4|)
- (LETT #2# |lv| |POLYCAT-;isTimes;SU;4|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT |v| (CAR #2#) |POLYCAT-;isTimes;SU;4|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS
- (SPADCALL
- (|spadConstant| |$| 33)
- |v|
- (SPADCALL |p| |v| (QREFELT |$| 36))
- (QREFELT |$| 37))
- #1#)
- |POLYCAT-;isTimes;SU;4|)))
- (LETT #2# (CDR #2#) |POLYCAT-;isTimes;SU;4|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))
- |POLYCAT-;isTimes;SU;4|)
- (EXIT
- (COND
- ((SPADCALL
- (LETT |r|
- (SPADCALL |p| (QREFELT |$| 38))
- |POLYCAT-;isTimes;SU;4|)
- (QREFELT |$| 39))
- (COND
- ((NULL (CDR |lv|)) (CONS 1 "failed"))
- ((QUOTE T) (CONS 0 |l|))))
- ((QUOTE T)
- (CONS 0
- (CONS (SPADCALL |r| (QREFELT |$| 40)) |l|))))))))))))
-
-(DEFUN |POLYCAT-;isExpt;SU;5| (|p| |$|)
- (PROG (|u| |d|)
- (RETURN
- (SEQ
- (LETT |u| (SPADCALL |p| (QREFELT |$| 42)) |POLYCAT-;isExpt;SU;5|)
- (EXIT
- (COND
- ((OR
- (QEQCAR |u| 1)
- (NULL
- (SPADCALL |p|
- (SPADCALL
- (|spadConstant| |$| 33)
- (QCDR |u|)
- (LETT |d|
- (SPADCALL |p| (QCDR |u|) (QREFELT |$| 36))
- |POLYCAT-;isExpt;SU;5|)
- (QREFELT |$| 37))
- (QREFELT |$| 24))))
- (CONS 1 "failed"))
- ((QUOTE T) (CONS 0 (CONS (QCDR |u|) |d|)))))))))
-
-(DEFUN |POLYCAT-;coefficient;SVarSetNniS;6| (|p| |v| |n| |$|)
- (SPADCALL (SPADCALL |p| |v| (QREFELT |$| 47)) |n| (QREFELT |$| 49)))
-
-(DEFUN |POLYCAT-;coefficient;SLLS;7| (|p| |lv| |ln| |$|)
- (COND
- ((NULL |lv|)
- (COND
- ((NULL |ln|) |p|)
- ((QUOTE T) (|error| "mismatched lists in coefficient"))))
- ((NULL |ln|)
- (|error| "mismatched lists in coefficient"))
- ((QUOTE T)
- (SPADCALL
- (SPADCALL
- (SPADCALL |p| (|SPADfirst| |lv|) (QREFELT |$| 47))
- (|SPADfirst| |ln|)
- (QREFELT |$| 49))
- (CDR |lv|)
- (CDR |ln|)
- (QREFELT |$| 52)))))
-
-(DEFUN |POLYCAT-;monomial;SLLS;8| (|p| |lv| |ln| |$|)
- (COND
- ((NULL |lv|)
- (COND
- ((NULL |ln|) |p|)
- ((QUOTE T) (|error| "mismatched lists in monomial"))))
- ((NULL |ln|)
- (|error| "mismatched lists in monomial"))
- ((QUOTE T)
- (SPADCALL
- (SPADCALL |p| (|SPADfirst| |lv|) (|SPADfirst| |ln|) (QREFELT |$| 37))
- (CDR |lv|)
- (CDR |ln|)
- (QREFELT |$| 54)))))
-
-(DEFUN |POLYCAT-;retract;SVarSet;9| (|p| |$|)
- (PROG (#1=#:G101918 |q|)
- (RETURN
- (SEQ
- (LETT |q|
- (PROG2
- (LETT #1#
- (SPADCALL |p| (QREFELT |$| 42))
- |POLYCAT-;retract;SVarSet;9|)
- (QCDR #1#)
- (|check-union| (QEQCAR #1# 0) (QREFELT |$| 9) #1#))
- |POLYCAT-;retract;SVarSet;9|)
+(DEFUN |POLYCAT-;eval;SLS;1| (|p| |l| $)
+ (PROG (#0=#:G1444 #1=#:G1438 #2=#:G1445 #3=#:G1446 |lvar| #4=#:G1447
+ |e| #5=#:G1448)
+ (RETURN
+ (SEQ
+ (COND
+ ((NULL |l|) |p|)
+ ((QUOTE T)
+ (SEQ
+ (SEQ
(EXIT
- (COND
- ((SPADCALL
- (SPADCALL |q| (QREFELT |$| 56))
- |p|
- (QREFELT |$| 24))
- |q|)
- ((QUOTE T)
- (|error| "Polynomial is not a single variable"))))))))
-
-(DEFUN |POLYCAT-;retractIfCan;SU;10| (|p| |$|)
- (PROG (|q| #1=#:G101926)
- (RETURN
- (SEQ
- (EXIT
- (SEQ
- (SEQ
- (LETT |q|
- (SPADCALL |p| (QREFELT |$| 42))
- |POLYCAT-;retractIfCan;SU;10|)
- (EXIT
- (COND
- ((QEQCAR |q| 0)
- (COND
- ((SPADCALL
- (SPADCALL (QCDR |q|) (QREFELT |$| 56))
- |p|
- (QREFELT |$| 24))
- (PROGN
- (LETT #1# |q| |POLYCAT-;retractIfCan;SU;10|)
- (GO #1#))))))))
- (EXIT (CONS 1 "failed"))))
- #1#
- (EXIT #1#)))))
-
-(DEFUN |POLYCAT-;mkPrim| (|p| |$|)
- (SPADCALL
- (|spadConstant| |$| 34)
- (SPADCALL |p| (QREFELT |$| 59))
- (QREFELT |$| 60)))
-
-(DEFUN |POLYCAT-;primitiveMonomials;SL;12| (|p| |$|)
- (PROG (#1=#:G101931 |q| #2=#:G101932)
- (RETURN
- (SEQ
- (PROGN
- (LETT #1# NIL |POLYCAT-;primitiveMonomials;SL;12|)
+ (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
- (LETT |q| NIL |POLYCAT-;primitiveMonomials;SL;12|)
- (LETT #2#
- (SPADCALL |p| (QREFELT |$| 28))
- |POLYCAT-;primitiveMonomials;SL;12|)
- G190
+ (EXIT
+ (COND
+ ((QEQCAR
+ (SPADCALL (SPADCALL |e| (QREFELT $ 11)) (QREFELT $ 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| (QREFELT $ 11)) (QREFELT $ 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 #2#)
- (PROGN
- (LETT |q| (CAR #2#) |POLYCAT-;primitiveMonomials;SL;12|)
- NIL))
+ ((OR (ATOM #5#)
+ (PROGN (LETT |e| (CAR #5#) |POLYCAT-;eval;SLS;1|) NIL))
(GO G191)))
(SEQ
- (EXIT
- (LETT #1#
- (CONS
- (|POLYCAT-;mkPrim| |q| |$|)
- #1#)
- |POLYCAT-;primitiveMonomials;SL;12|)))
- (LETT #2# (CDR #2#) |POLYCAT-;primitiveMonomials;SL;12|)
+ (EXIT
+ (LETT #4# (CONS (SPADCALL |e| (QREFELT $ 15)) #4#)
+ |POLYCAT-;eval;SLS;1|)))
+ (LETT #5# (CDR #5#) |POLYCAT-;eval;SLS;1|)
(GO G190)
G191
- (EXIT (NREVERSE0 #1#))))))))
-
-(DEFUN |POLYCAT-;totalDegree;SNni;13| (|p| |$|)
- (PROG (#1=#:G101934 |d| |u|)
- (RETURN
- (SEQ
- (COND
- ((SPADCALL |p| (QREFELT |$| 62)) 0)
- ((QUOTE T)
- (SEQ
- (LETT |u|
- (SPADCALL |p|
- (PROG2
- (LETT #1#
- (SPADCALL |p| (QREFELT |$| 42))
- |POLYCAT-;totalDegree;SNni;13|)
- (QCDR #1#)
- (|check-union| (QEQCAR #1# 0) (QREFELT |$| 9) #1#))
- (QREFELT |$| 47))
- |POLYCAT-;totalDegree;SNni;13|)
- (LETT |d| 0 |POLYCAT-;totalDegree;SNni;13|)
- (SEQ G190
- (COND
- ((NULL
- (COND
- ((SPADCALL |u| (|spadConstant| |$| 63) (QREFELT |$| 64))
- (QUOTE NIL))
- ((QUOTE T) (QUOTE T)))) (GO G191)))
- (SEQ
- (LETT |d|
- (MAX |d|
- (|+|
- (SPADCALL |u| (QREFELT |$| 65))
- (SPADCALL
- (SPADCALL |u| (QREFELT |$| 66))
- (QREFELT |$| 67))))
- |POLYCAT-;totalDegree;SNni;13|)
- (EXIT
- (LETT |u|
- (SPADCALL |u| (QREFELT |$| 68))
- |POLYCAT-;totalDegree;SNni;13|)))
- NIL
- (GO G190)
- G191
- (EXIT NIL))
- (EXIT |d|))))))))
-
-(DEFUN |POLYCAT-;totalDegree;SLNni;14| (|p| |lv| |$|)
- (PROG (#1=#:G101942 |v| |w| |d| |u|)
- (RETURN
- (SEQ
- (COND
- ((SPADCALL |p| (QREFELT |$| 62)) 0)
- ((QUOTE T)
- (SEQ
- (LETT |u|
- (SPADCALL |p|
- (LETT |v|
- (PROG2
- (LETT #1#
- (SPADCALL |p| (QREFELT |$| 42))
- |POLYCAT-;totalDegree;SLNni;14|)
- (QCDR #1#)
- (|check-union| (QEQCAR #1# 0) (QREFELT |$| 9) #1#))
- |POLYCAT-;totalDegree;SLNni;14|)
- (QREFELT |$| 47))
- |POLYCAT-;totalDegree;SLNni;14|)
- (LETT |d| 0 |POLYCAT-;totalDegree;SLNni;14|)
- (LETT |w| 0 |POLYCAT-;totalDegree;SLNni;14|)
- (COND
- ((SPADCALL |v| |lv| (QREFELT |$| 70))
- (LETT |w| 1 |POLYCAT-;totalDegree;SLNni;14|)))
- (SEQ G190
- (COND
- ((NULL
- (COND
- ((SPADCALL |u| (|spadConstant| |$| 63) (QREFELT |$| 64))
- (QUOTE NIL))
- ((QUOTE T) (QUOTE T))))
- (GO G191)))
- (SEQ
- (LETT |d|
- (MAX |d|
- (|+|
- (|*| |w| (SPADCALL |u| (QREFELT |$| 65)))
- (SPADCALL
- (SPADCALL |u| (QREFELT |$| 66))
- |lv|
- (QREFELT |$| 71))))
- |POLYCAT-;totalDegree;SLNni;14|)
- (EXIT
- (LETT |u|
- (SPADCALL |u| (QREFELT |$| 68))
- |POLYCAT-;totalDegree;SLNni;14|)))
- NIL
- (GO G190)
- G191
- (EXIT NIL))
- (EXIT |d|))))))))
-
-(DEFUN |POLYCAT-;resultant;2SVarSetS;15| (|p1| |p2| |mvar| |$|)
- (SPADCALL
- (SPADCALL |p1| |mvar| (QREFELT |$| 47))
- (SPADCALL |p2| |mvar| (QREFELT |$| 47))
- (QREFELT |$| 73)))
-
-(DEFUN |POLYCAT-;discriminant;SVarSetS;16| (|p| |var| |$|)
- (SPADCALL (SPADCALL |p| |var| (QREFELT |$| 47)) (QREFELT |$| 75)))
-
-(DEFUN |POLYCAT-;allMonoms| (|l| |$|)
- (PROG (#1=#:G101954 |p| #2=#:G101955)
- (RETURN
- (SEQ
- (SPADCALL
- (SPADCALL
- (PROGN
- (LETT #1# NIL |POLYCAT-;allMonoms|)
- (SEQ
- (LETT |p| NIL |POLYCAT-;allMonoms|)
- (LETT #2# |l| |POLYCAT-;allMonoms|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN (LETT |p| (CAR #2#) |POLYCAT-;allMonoms|) NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS (SPADCALL |p| (QREFELT |$| 77)) #1#)
- |POLYCAT-;allMonoms|)))
- (LETT #2# (CDR #2#) |POLYCAT-;allMonoms|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))
- (QREFELT |$| 79))
- (QREFELT |$| 80))))))
-
-(DEFUN |POLYCAT-;P2R| (|p| |b| |n| |$|)
- (PROG (|w| |bj| #1=#:G101960 |i| #2=#:G101959)
- (RETURN
+ (EXIT (NREVERSE0 #4#))))
+ (QREFELT $ 18))))))))))
+
+(DEFUN |POLYCAT-;monomials;SL;2| (|p| $)
+ (PROG (|ml|)
+ (RETURN
+ (SEQ
+ (LETT |ml| NIL |POLYCAT-;monomials;SL;2|)
+ (SEQ G190
+ (COND
+ ((NULL
+ (COND
+ ((SPADCALL |p| (|spadConstant| $ 21) (QREFELT $ 24)) (QUOTE NIL))
+ ((QUOTE T) (QUOTE T))))
+ (GO G191)))
+ (SEQ
+ (LETT |ml|
+ (CONS (SPADCALL |p| (QREFELT $ 25)) |ml|)
+ |POLYCAT-;monomials;SL;2|)
+ (EXIT
+ (LETT |p| (SPADCALL |p| (QREFELT $ 26)) |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| (QREFELT $ 28)) |POLYCAT-;isPlus;SU;3|)))
+ (CONS 1 "failed"))
+ ((QUOTE T) (CONS 0 |l|))))))
+
+(DEFUN |POLYCAT-;isTimes;SU;4| (|p| $)
+ (PROG (|lv| #0=#:G1470 |v| #1=#:G1471 |l| |r|)
+ (RETURN
+ (SEQ
+ (COND
+ ((OR (NULL
+ (LETT |lv| (SPADCALL |p| (QREFELT $ 31)) |POLYCAT-;isTimes;SU;4|))
+ (NULL (SPADCALL |p| (QREFELT $ 32))))
+ (CONS 1 "failed"))
+ ((QUOTE 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| $ 33) |v|
+ (SPADCALL |p| |v| (QREFELT $ 36)) (QREFELT $ 37))
+ #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| (QREFELT $ 38)) |POLYCAT-;isTimes;SU;4|)
+ (EXIT
+ (COND
+ ((SPADCALL |r| (|spadConstant| $ 34) (QREFELT $ 39))
+ (COND
+ ((NULL (CDR |lv|)) (CONS 1 "failed"))
+ ((QUOTE T) (CONS 0 |l|))))
+ ((QUOTE T)
+ (CONS 0 (CONS (SPADCALL |r| (QREFELT $ 40)) |l|))))))))))))
+
+(DEFUN |POLYCAT-;isExpt;SU;5| (|p| $)
+ (PROG (|u| |d|)
+ (RETURN
+ (SEQ
+ (LETT |u| (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;isExpt;SU;5|)
+ (EXIT
+ (COND
+ ((OR (QEQCAR |u| 1)
+ (NULL
+ (SPADCALL |p|
+ (SPADCALL (|spadConstant| $ 33)
+ (QCDR |u|)
+ (LETT |d| (SPADCALL |p| (QCDR |u|) (QREFELT $ 36))
+ |POLYCAT-;isExpt;SU;5|)
+ (QREFELT $ 37))
+ (QREFELT $ 24))))
+ (CONS 1 "failed"))
+ ((QUOTE T) (CONS 0 (CONS (QCDR |u|) |d|)))))))))
+
+(DEFUN |POLYCAT-;coefficient;SVarSetNniS;6| (|p| |v| |n| $)
+ (SPADCALL (SPADCALL |p| |v| (QREFELT $ 47)) |n| (QREFELT $ 49)))
+
+(DEFUN |POLYCAT-;coefficient;SLLS;7| (|p| |lv| |ln| $)
+ (COND
+ ((NULL |lv|)
+ (COND
+ ((NULL |ln|) |p|)
+ ((QUOTE T) (|error| "mismatched lists in coefficient"))))
+ ((NULL |ln|) (|error| "mismatched lists in coefficient"))
+ ((QUOTE T)
+ (SPADCALL
+ (SPADCALL
+ (SPADCALL |p| (|SPADfirst| |lv|) (QREFELT $ 47))
+ (|SPADfirst| |ln|)
+ (QREFELT $ 49))
+ (CDR |lv|)
+ (CDR |ln|)
+ (QREFELT $ 52)))))
+
+(DEFUN |POLYCAT-;monomial;SLLS;8| (|p| |lv| |ln| $)
+ (COND
+ ((NULL |lv|)
+ (COND
+ ((NULL |ln|) |p|)
+ ((QUOTE T) (|error| "mismatched lists in monomial"))))
+ ((NULL |ln|) (|error| "mismatched lists in monomial"))
+ ((QUOTE T)
+ (SPADCALL
+ (SPADCALL |p| (|SPADfirst| |lv|) (|SPADfirst| |ln|) (QREFELT $ 37))
+ (CDR |lv|)
+ (CDR |ln|)
+ (QREFELT $ 54)))))
+
+(DEFUN |POLYCAT-;retract;SVarSet;9| (|p| $)
+ (PROG (#0=#:G1496 |q|)
+ (RETURN
+ (SEQ
+ (LETT |q|
+ (PROG2
+ (LETT #0# (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;retract;SVarSet;9|)
+ (QCDR #0#)
+ (|check-union| (QEQCAR #0# 0) (QREFELT $ 9) #0#))
+ |POLYCAT-;retract;SVarSet;9|)
+ (EXIT
+ (COND
+ ((SPADCALL (SPADCALL |q| (QREFELT $ 56)) |p| (QREFELT $ 24)) |q|)
+ ((QUOTE T) (|error| "Polynomial is not a single variable"))))))))
+
+(DEFUN |POLYCAT-;retractIfCan;SU;10| (|p| $)
+ (PROG (|q| #0=#:G1504)
+ (RETURN
+ (SEQ
+ (EXIT
+ (SEQ
+ (SEQ
+ (LETT |q| (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;retractIfCan;SU;10|)
+ (EXIT
+ (COND
+ ((QEQCAR |q| 0)
+ (COND
+ ((SPADCALL (SPADCALL (QCDR |q|) (QREFELT $ 56)) |p| (QREFELT $ 24))
+ (PROGN
+ (LETT #0# |q| |POLYCAT-;retractIfCan;SU;10|)
+ (GO #0#))))))))
+ (EXIT (CONS 1 "failed"))))
+ #0#
+ (EXIT #0#)))))
+
+(DEFUN |POLYCAT-;mkPrim| (|p| $)
+ (SPADCALL
+ (|spadConstant| $ 34)
+ (SPADCALL |p| (QREFELT $ 59))
+ (QREFELT $ 60)))
+
+(DEFUN |POLYCAT-;primitiveMonomials;SL;12| (|p| $)
+ (PROG (#0=#:G1509 |q| #1=#:G1510)
+ (RETURN
+ (SEQ
+ (PROGN
+ (LETT #0# NIL |POLYCAT-;primitiveMonomials;SL;12|)
+ (SEQ
+ (LETT |q| NIL |POLYCAT-;primitiveMonomials;SL;12|)
+ (LETT #1# (SPADCALL |p| (QREFELT $ 28))
|POLYCAT-;primitiveMonomials;SL;12|)
+ G190
+ (COND
+ ((OR (ATOM #1#)
+ (PROGN
+ (LETT |q| (CAR #1#) |POLYCAT-;primitiveMonomials;SL;12|)
+ NIL))
+ (GO G191)))
(SEQ
- (LETT |w|
- (SPADCALL |n| (|spadConstant| |$| 22) (QREFELT |$| 82))
- |POLYCAT-;P2R|)
+ (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=#:G1512 |d| |u|)
+ (RETURN
+ (SEQ
+ (COND
+ ((SPADCALL |p| (QREFELT $ 62)) 0)
+ ((QUOTE T)
+ (SEQ
+ (LETT |u|
+ (SPADCALL |p|
+ (PROG2
+ (LETT #0#
+ (SPADCALL |p| (QREFELT $ 42))
+ |POLYCAT-;totalDegree;SNni;13|)
+ (QCDR #0#)
+ (|check-union| (QEQCAR #0# 0) (QREFELT $ 9) #0#))
+ (QREFELT $ 47))
+ |POLYCAT-;totalDegree;SNni;13|)
+ (LETT |d| 0 |POLYCAT-;totalDegree;SNni;13|)
+ (SEQ G190
+ (COND
+ ((NULL
+ (COND
+ ((SPADCALL |u| (|spadConstant| $ 63) (QREFELT $ 64)) (QUOTE NIL))
+ ((QUOTE T) (QUOTE T)))) (GO G191)))
+ (SEQ
+ (LETT |d|
+ (MAX |d|
+ (+
+ (SPADCALL |u| (QREFELT $ 65))
+ (SPADCALL (SPADCALL |u| (QREFELT $ 66)) (QREFELT $ 67))))
+ |POLYCAT-;totalDegree;SNni;13|)
+ (EXIT
+ (LETT |u|
+ (SPADCALL |u| (QREFELT $ 68)) |POLYCAT-;totalDegree;SNni;13|)))
+ NIL
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (EXIT |d|))))))))
+
+(DEFUN |POLYCAT-;totalDegree;SLNni;14| (|p| |lv| $)
+ (PROG (#0=#:G1520 |v| |w| |d| |u|)
+ (RETURN
+ (SEQ
+ (COND
+ ((SPADCALL |p| (QREFELT $ 62)) 0)
+ ((QUOTE T)
+ (SEQ
+ (LETT |u|
+ (SPADCALL |p|
+ (LETT |v|
+ (PROG2
+ (LETT #0#
+ (SPADCALL |p| (QREFELT $ 42))
+ |POLYCAT-;totalDegree;SLNni;14|)
+ (QCDR #0#)
+ (|check-union| (QEQCAR #0# 0) (QREFELT $ 9) #0#))
+ |POLYCAT-;totalDegree;SLNni;14|)
+ (QREFELT $ 47))
+ |POLYCAT-;totalDegree;SLNni;14|)
+ (LETT |d| 0 |POLYCAT-;totalDegree;SLNni;14|)
+ (LETT |w| 0 |POLYCAT-;totalDegree;SLNni;14|)
+ (COND
+ ((SPADCALL |v| |lv| (QREFELT $ 70))
+ (LETT |w| 1 |POLYCAT-;totalDegree;SLNni;14|)))
+ (SEQ G190
+ (COND
+ ((NULL
+ (COND
+ ((SPADCALL |u| (|spadConstant| $ 63) (QREFELT $ 64)) (QUOTE NIL))
+ ((QUOTE T) (QUOTE T)))) (GO G191)))
+ (SEQ
+ (LETT |d|
+ (MAX |d|
+ (+
+ (* |w| (SPADCALL |u| (QREFELT $ 65)))
+ (SPADCALL (SPADCALL |u| (QREFELT $ 66)) |lv| (QREFELT $ 71))))
+ |POLYCAT-;totalDegree;SLNni;14|)
+ (EXIT
+ (LETT |u|
+ (SPADCALL |u| (QREFELT $ 68))
+ |POLYCAT-;totalDegree;SLNni;14|)))
+ NIL
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (EXIT |d|))))))))
+
+(DEFUN |POLYCAT-;resultant;2SVarSetS;15| (|p1| |p2| |mvar| $)
+ (SPADCALL
+ (SPADCALL |p1| |mvar| (QREFELT $ 47))
+ (SPADCALL |p2| |mvar| (QREFELT $ 47))
+ (QREFELT $ 73)))
+
+(DEFUN |POLYCAT-;discriminant;SVarSetS;16| (|p| |var| $)
+ (SPADCALL (SPADCALL |p| |var| (QREFELT $ 47)) (QREFELT $ 75)))
+
+(DEFUN |POLYCAT-;allMonoms| (|l| $)
+ (PROG (#0=#:G1532 |p| #1=#:G1533)
+ (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
- (LETT |bj| NIL |POLYCAT-;P2R|)
- (LETT #1# |b| |POLYCAT-;P2R|)
- (LETT |i| (SPADCALL |w| (QREFELT |$| 84)) |POLYCAT-;P2R|)
- (LETT #2# (QVSIZE |w|) |POLYCAT-;P2R|)
+ (EXIT
+ (LETT #0#
+ (CONS (SPADCALL |p| (QREFELT $ 77)) #0#)
+ |POLYCAT-;allMonoms|)))
+ (LETT #1# (CDR #1#) |POLYCAT-;allMonoms|)
+ (GO G190)
+ G191
+ (EXIT (NREVERSE0 #0#))))
+ (QREFELT $ 79))
+ (QREFELT $ 80))))))
+
+(DEFUN |POLYCAT-;P2R| (|p| |b| |n| $)
+ (PROG (|w| |bj| #0=#:G1538 |i| #1=#:G1537)
+ (RETURN
+ (SEQ
+ (LETT |w|
+ (SPADCALL |n| (|spadConstant| $ 22) (QREFELT $ 82))
+ |POLYCAT-;P2R|)
+ (SEQ
+ (LETT |bj| NIL |POLYCAT-;P2R|)
+ (LETT #0# |b| |POLYCAT-;P2R|)
+ (LETT |i| (SPADCALL |w| (QREFELT $ 84)) |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| (QREFELT $ 85)) (QREFELT $ 86))))
+ (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=#:G1542 |bj| #1=#:G1543 #2=#:G1544 |p| #3=#:G1545)
+ (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| (QREFELT $ 85)) #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#))))
+ (QREFELT $ 89))))))
+
+(DEFUN |POLYCAT-;reducedSystem;MM;20| (|m| $)
+ (PROG (#0=#:G1555 |r| #1=#:G1556 |b| #2=#:G1557 |bj| #3=#:G1558 |d| |mm| |l|)
+ (RETURN
+ (SEQ
+ (LETT |l| (SPADCALL |m| (QREFELT $ 92)) |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#))))
+ (QREFELT $ 79))
+ (QREFELT $ 80))
+ |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| (QREFELT $ 59)) #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 (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191)))
+ (SEQ
+ (LETT |mm|
+ (SPADCALL |mm| (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) (QREFELT $ 93))
+ |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=#:G1570 |s| #1=#:G1571 |b| #2=#:G1572 |bj| #3=#:G1573 |d| |n|
+ |mm| |w| |l| |r|)
+ (RETURN
+ (SEQ
+ (LETT |l| (SPADCALL |m| (QREFELT $ 92)) |POLYCAT-;reducedSystem;MVR;21|)
+ (LETT |r| (SPADCALL |v| (QREFELT $ 97)) |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
- (|>| |i| #2#)
- (ATOM #1#)
- (PROGN (LETT |bj| (CAR #1#) |POLYCAT-;P2R|) NIL))
- (GO G191)))
+ (COND
+ ((OR (ATOM #1#)
+ (PROGN
+ (LETT |s| (CAR #1#) |POLYCAT-;reducedSystem;MVR;21|)
+ NIL))
+ (GO G191)))
(SEQ
- (EXIT
- (SPADCALL |w| |i|
- (SPADCALL |p| |bj| (QREFELT |$| 85))
- (QREFELT |$| 86))))
- (LETT |i|
- (PROG1
- (|+| |i| 1)
- (LETT #1# (CDR #1#) |POLYCAT-;P2R|))
- |POLYCAT-;P2R|)
+ (EXIT
+ (LETT #0#
+ (CONS (|POLYCAT-;allMonoms| |s| $) #0#)
+ |POLYCAT-;reducedSystem;MVR;21|)))
+ (LETT #1# (CDR #1#) |POLYCAT-;reducedSystem;MVR;21|)
(GO G190)
G191
- (EXIT NIL))
- (EXIT |w|)))))
-
-(DEFUN |POLYCAT-;eq2R| (|l| |b| |$|)
- (PROG (#1=#:G101964 |bj| #2=#:G101965 #3=#:G101966 |p| #4=#:G101967)
- (RETURN
- (SEQ
- (SPADCALL
+ (EXIT (NREVERSE0 #0#))))
+ (QREFELT $ 79))
+ (QREFELT $ 98))
+ (QREFELT $ 80))
+ |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| (QREFELT $ 59)) #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 (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T))))
+ (GO G191)))
+ (SEQ
+ (LETT |mm|
+ (SPADCALL |mm| (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| $) (QREFELT $ 93))
+ |POLYCAT-;reducedSystem;MVR;21|)
+ (LETT |w|
+ (SPADCALL |w|
+ (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| |n| $)
+ (QREFELT $ 99))
+ |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| (QREFELT $ 104)))
+
+(DEFUN |POLYCAT-;solveLinearPolynomialEquation;LSupU;23| (|lpp| |pp| $)
+ (SPADCALL |lpp| |pp| (QREFELT $ 109)))
+
+(DEFUN |POLYCAT-;factorPolynomial;SupF;24| (|pp| $)
+ (SPADCALL |pp| (QREFELT $ 114)))
+
+(DEFUN |POLYCAT-;factorSquareFreePolynomial;SupF;25| (|pp| $)
+ (SPADCALL |pp| (QREFELT $ 117)))
+
+(DEFUN |POLYCAT-;factor;SF;26| (|p| $)
+ (PROG (|v| |ansR| #0=#:G1615 |w| #1=#:G1616 |up| |ansSUP| #2=#:G1617
+ |ww| #3=#:G1618)
+ (RETURN
+ (SEQ
+ (LETT |v| (SPADCALL |p| (QREFELT $ 42)) |POLYCAT-;factor;SF;26|)
+ (EXIT
+ (COND
+ ((QEQCAR |v| 1)
+ (SEQ
+ (LETT |ansR|
+ (SPADCALL (SPADCALL |p| (QREFELT $ 38)) (QREFELT $ 120))
+ |POLYCAT-;factor;SF;26|)
+ (EXIT
+ (SPADCALL
+ (SPADCALL (SPADCALL |ansR| (QREFELT $ 122)) (QREFELT $ 40))
(PROGN
- (LETT #1# NIL |POLYCAT-;eq2R|)
+ (LETT #0# NIL |POLYCAT-;factor;SF;26|)
+ (SEQ
+ (LETT |w| NIL |POLYCAT-;factor;SF;26|)
+ (LETT #1#
+ (SPADCALL |ansR| (QREFELT $ 126))
+ |POLYCAT-;factor;SF;26|)
+ G190
+ (COND
+ ((OR (ATOM #1#)
+ (PROGN (LETT |w| (CAR #1#) |POLYCAT-;factor;SF;26|) NIL))
+ (GO G191)))
(SEQ
- (LETT |bj| NIL |POLYCAT-;eq2R|)
- (LETT #2# |b| |POLYCAT-;eq2R|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN (LETT |bj| (CAR #2#) |POLYCAT-;eq2R|) NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS
- (PROGN
- (LETT #3# NIL |POLYCAT-;eq2R|)
- (SEQ
- (LETT |p| NIL |POLYCAT-;eq2R|)
- (LETT #4# |l| |POLYCAT-;eq2R|)
- G190
- (COND
- ((OR
- (ATOM #4#)
- (PROGN
- (LETT |p| (CAR #4#) |POLYCAT-;eq2R|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #3#
- (CONS (SPADCALL |p| |bj| (QREFELT |$| 85)) #3#)
- |POLYCAT-;eq2R|)))
- (LETT #4# (CDR #4#) |POLYCAT-;eq2R|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #3#))))
- #1#)
- |POLYCAT-;eq2R|)))
- (LETT #2# (CDR #2#) |POLYCAT-;eq2R|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))
- (QREFELT |$| 89))))))
-
-(DEFUN |POLYCAT-;reducedSystem;MM;20| (|m| |$|)
- (PROG (#1=#:G101979 |r| #2=#:G101980 |b| #3=#:G101977
- |bj| #4=#:G101978 |d| |mm| |l|)
- (RETURN
- (SEQ
- (LETT |l|
- (SPADCALL |m| (QREFELT |$| 92))
- |POLYCAT-;reducedSystem;MM;20|)
- (LETT |b|
+ (EXIT
+ (LETT #0#
+ (CONS
+ (VECTOR (QVELT |w| 0)
+ (SPADCALL (QVELT |w| 1) (QREFELT $ 40)) (QVELT |w| 2))
+ #0#)
+ |POLYCAT-;factor;SF;26|)))
+ (LETT #1# (CDR #1#) |POLYCAT-;factor;SF;26|)
+ (GO G190)
+ G191
+ (EXIT (NREVERSE0 #0#))))
+ (QREFELT $ 130)))))
+ ((QUOTE T)
+ (SEQ
+ (LETT |up|
+ (SPADCALL |p| (QCDR |v|) (QREFELT $ 47)) |POLYCAT-;factor;SF;26|)
+ (LETT |ansSUP| (SPADCALL |up| (QREFELT $ 114)) |POLYCAT-;factor;SF;26|)
+ (EXIT
+ (SPADCALL
(SPADCALL
- (SPADCALL
- (PROGN
- (LETT #1# NIL |POLYCAT-;reducedSystem;MM;20|)
- (SEQ
- (LETT |r| NIL |POLYCAT-;reducedSystem;MM;20|)
- (LETT #2# |l| |POLYCAT-;reducedSystem;MM;20|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT |r| (CAR #2#) |POLYCAT-;reducedSystem;MM;20|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS (|POLYCAT-;allMonoms| |r| |$|) #1#)
- |POLYCAT-;reducedSystem;MM;20|)))
- (LETT #2# (CDR #2#) |POLYCAT-;reducedSystem;MM;20|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))
- (QREFELT |$| 79))
- (QREFELT |$| 80))
- |POLYCAT-;reducedSystem;MM;20|)
- (LETT |d|
+ (SPADCALL |ansSUP| (QREFELT $ 131)) (QCDR |v|) (QREFELT $ 132))
(PROGN
- (LETT #3# NIL |POLYCAT-;reducedSystem;MM;20|)
+ (LETT #2# NIL |POLYCAT-;factor;SF;26|)
+ (SEQ
+ (LETT |ww| NIL |POLYCAT-;factor;SF;26|)
+ (LETT #3#
+ (SPADCALL |ansSUP| (QREFELT $ 135))
+ |POLYCAT-;factor;SF;26|)
+ G190
+ (COND
+ ((OR (ATOM #3#)
+ (PROGN (LETT |ww| (CAR #3#) |POLYCAT-;factor;SF;26|) NIL))
+ (GO G191)))
(SEQ
- (LETT |bj| NIL |POLYCAT-;reducedSystem;MM;20|)
- (LETT #4# |b| |POLYCAT-;reducedSystem;MM;20|)
- G190
- (COND
- ((OR
- (ATOM #4#)
- (PROGN
- (LETT |bj| (CAR #4#) |POLYCAT-;reducedSystem;MM;20|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #3#
- (CONS (SPADCALL |bj| (QREFELT |$| 59)) #3#)
- |POLYCAT-;reducedSystem;MM;20|)))
- (LETT #4# (CDR #4#) |POLYCAT-;reducedSystem;MM;20|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #3#))))
- |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 (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T))))
+ (EXIT
+ (LETT #2#
+ (CONS
+ (VECTOR (QVELT |ww| 0) (SPADCALL (QVELT |ww| 1) (QCDR |v|)
+ (QREFELT $ 132)) (QVELT |ww| 2))
+ #2#)
+ |POLYCAT-;factor;SF;26|)))
+ (LETT #3# (CDR #3#) |POLYCAT-;factor;SF;26|)
+ (GO G190)
+ G191
+ (EXIT (NREVERSE0 #2#))))
+ (QREFELT $ 130)))))))))))
+
+(DEFUN |POLYCAT-;conditionP;MU;27| (|mat| $)
+ (PROG (|ll| #0=#:G1653 |z| #1=#:G1654 |ch| |l| #2=#:G1655 #3=#:G1656
+ #4=#:G1625 #5=#:G1623 #6=#:G1624 #7=#:G1657 |vars| |degs|
+ #8=#:G1658 |d| #9=#:G1659 |nd| #10=#:G1652 #11=#:G1632 |deg1|
+ |redmons| #12=#:G1660 |v| #13=#:G1662 |u| #14=#:G1661 |llR|
+ |monslist| |ans| #15=#:G1663 #16=#:G1664 |mons| #17=#:G1665 |m|
+ #18=#:G1666 |i| #19=#:G1648 #20=#:G1646 #21=#:G1647)
+ (RETURN
+ (SEQ
+ (EXIT
+ (SEQ
+ (LETT |ll|
+ (SPADCALL (SPADCALL |mat| (QREFELT $ 137)) (QREFELT $ 92))
+ |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 (QREFELT $ 138)) |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
- (LETT |mm|
- (SPADCALL |mm|
- (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| |$|) (QREFELT |$| 93))
- |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 (#1=#:G101994 |s| #2=#:G101995 |b| #3=#:G101992 |bj| #4=#:G101993
- |d| |n| |mm| |w| |l| |r|)
- (RETURN
- (SEQ
- (LETT |l| (SPADCALL |m| (QREFELT |$| 92))
|POLYCAT-;reducedSystem;MVR;21|)
- (LETT |r| (SPADCALL |v| (QREFELT |$| 97))
|POLYCAT-;reducedSystem;MVR;21|)
- (LETT |b|
- (SPADCALL
- (SPADCALL
- (|POLYCAT-;allMonoms| |r| |$|)
- (SPADCALL
+ (SEQ
+ (EXIT
+ (PROGN
+ (LETT #4#
+ (SPADCALL |u| (QREFELT $ 77))
+ |POLYCAT-;conditionP;MU;27|)
+ (COND
+ (#6#
+ (LETT #5#
+ (SPADCALL #5# #4# (QREFELT $ 139))
+ |POLYCAT-;conditionP;MU;27|))
+ ((QUOTE T)
(PROGN
- (LETT #1# NIL |POLYCAT-;reducedSystem;MVR;21|)
- (SEQ
- (LETT |s| NIL |POLYCAT-;reducedSystem;MVR;21|)
- (LETT #2# |l| |POLYCAT-;reducedSystem;MVR;21|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT |s| (CAR #2#) |POLYCAT-;reducedSystem;MVR;21|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS (|POLYCAT-;allMonoms| |s| |$|) #1#)
- |POLYCAT-;reducedSystem;MVR;21|)))
- (LETT #2# (CDR #2#) |POLYCAT-;reducedSystem;MVR;21|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))
- (QREFELT |$| 79))
- (QREFELT |$| 98))
- (QREFELT |$| 80))
- |POLYCAT-;reducedSystem;MVR;21|)
- (LETT |d|
- (PROGN
- (LETT #3# NIL |POLYCAT-;reducedSystem;MVR;21|)
- (SEQ
- (LETT |bj| NIL |POLYCAT-;reducedSystem;MVR;21|)
- (LETT #4# |b| |POLYCAT-;reducedSystem;MVR;21|)
- G190
- (COND
- ((OR
- (ATOM #4#)
- (PROGN
- (LETT |bj| (CAR #4#) |POLYCAT-;reducedSystem;MVR;21|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #3#
- (CONS (SPADCALL |bj| (QREFELT |$| 59)) #3#)
- |POLYCAT-;reducedSystem;MVR;21|)))
- (LETT #4# (CDR #4#) |POLYCAT-;reducedSystem;MVR;21|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #3#))))
- |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 (COND ((NULL |l|) (QUOTE NIL)) ((QUOTE T) (QUOTE T))))
- (GO G191)))
- (SEQ
- (LETT |mm|
- (SPADCALL |mm|
- (|POLYCAT-;eq2R| (|SPADfirst| |l|) |d| |$|)
- (QREFELT |$| 93))
- |POLYCAT-;reducedSystem;MVR;21|)
- (LETT |w|
- (SPADCALL |w|
- (|POLYCAT-;P2R| (|SPADfirst| |r|) |d| |n| |$|)
- (QREFELT |$| 99))
- |POLYCAT-;reducedSystem;MVR;21|)
- (LETT |l| (CDR |l|) |POLYCAT-;reducedSystem;MVR;21|)
- (EXIT (LETT |r| (CDR |r|) |POLYCAT-;reducedSystem;MVR;21|)))
- NIL
+ (LETT #5# #4# |POLYCAT-;conditionP;MU;27|)
+ (LETT #6# (QUOTE T) |POLYCAT-;conditionP;MU;27|)))))))
+ (LETT #3# (CDR #3#) |POLYCAT-;conditionP;MU;27|)
(GO G190)
G191
(EXIT NIL))
- (EXIT (CONS |mm| |w|))))))
-
-(DEFUN |POLYCAT-;gcdPolynomial;3Sup;22| (|pp| |qq| |$|)
- (SPADCALL |pp| |qq| (QREFELT |$| 104)))
-
-(DEFUN |POLYCAT-;solveLinearPolynomialEquation;LSupU;23| (|lpp| |pp| |$|)
- (SPADCALL |lpp| |pp| (QREFELT |$| 109)))
-
-(DEFUN |POLYCAT-;factorPolynomial;SupF;24| (|pp| |$|)
- (SPADCALL |pp| (QREFELT |$| 114)))
-
-(DEFUN |POLYCAT-;factorSquareFreePolynomial;SupF;25| (|pp| |$|)
- (SPADCALL |pp| (QREFELT |$| 117)))
-
-(DEFUN |POLYCAT-;factor;SF;26| (|p| |$|)
- (PROG (|v| |ansR| #1=#:G102039 |w| #2=#:G102040 |up| |ansSUP|
- #3=#:G102037 |ww| #4=#:G102038)
- (RETURN
- (SEQ
- (LETT |v| (SPADCALL |p| (QREFELT |$| 42)) |POLYCAT-;factor;SF;26|)
- (EXIT
- (COND
- ((QEQCAR |v| 1)
- (SEQ
- (LETT |ansR|
- (SPADCALL (SPADCALL |p| (QREFELT |$| 38)) (QREFELT |$| 120))
- |POLYCAT-;factor;SF;26|)
- (EXIT
- (SPADCALL
- (SPADCALL
- (SPADCALL |ansR| (QREFELT |$| 122))
- (QREFELT |$| 40))
- (PROGN
- (LETT #1# NIL |POLYCAT-;factor;SF;26|)
- (SEQ
- (LETT |w| NIL |POLYCAT-;factor;SF;26|)
- (LETT #2#
- (SPADCALL |ansR| (QREFELT |$| 126))
- |POLYCAT-;factor;SF;26|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT |w| (CAR #2#) |POLYCAT-;factor;SF;26|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1#
- (CONS
- (VECTOR
- (QVELT |w| 0)
- (SPADCALL (QVELT |w| 1) (QREFELT |$| 40))
- (QVELT |w| 2))
- #1#)
- |POLYCAT-;factor;SF;26|)))
- (LETT #2# (CDR #2#) |POLYCAT-;factor;SF;26|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))
- (QREFELT |$| 130)))))
- ((QUOTE T)
- (SEQ
- (LETT |up|
- (SPADCALL |p| (QCDR |v|) (QREFELT |$| 47))
- |POLYCAT-;factor;SF;26|)
- (LETT |ansSUP|
- (SPADCALL |up| (QREFELT |$| 114))
- |POLYCAT-;factor;SF;26|)
- (EXIT
- (SPADCALL
- (SPADCALL
- (SPADCALL |ansSUP| (QREFELT |$| 131))
- (QCDR |v|)
- (QREFELT |$| 132))
- (PROGN
- (LETT #3# NIL |POLYCAT-;factor;SF;26|)
- (SEQ
- (LETT |ww| NIL |POLYCAT-;factor;SF;26|)
- (LETT #4#
- (SPADCALL |ansSUP| (QREFELT |$| 135))
- |POLYCAT-;factor;SF;26|)
- G190
- (COND
- ((OR
- (ATOM #4#)
- (PROGN
- (LETT |ww| (CAR #4#) |POLYCAT-;factor;SF;26|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #3#
- (CONS
- (VECTOR
- (QVELT |ww| 0)
- (SPADCALL
- (QVELT |ww| 1)
- (QCDR |v|)
- (QREFELT |$| 132))
- (QVELT |ww| 2))
- #3#)
- |POLYCAT-;factor;SF;26|)))
- (LETT #4# (CDR #4#) |POLYCAT-;factor;SF;26|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #3#))))
- (QREFELT |$| 130)))))))))))
-
-(DEFUN |POLYCAT-;conditionP;MU;27| (|mat| |$|)
- (PROG (|ll| #1=#:G102087 |z| #2=#:G102088 |ch| |l| #3=#:G102079
- #4=#:G102086 #5=#:G102047 #6=#:G102045 #7=#:G102046 #8=#:G102080
- |vars| |degs| #9=#:G102084 |d| #10=#:G102085 |nd| #11=#:G102074
- #12=#:G102054 |deg1| |redmons| #13=#:G102081 |v| #14=#:G102083 |u|
- #15=#:G102082 |llR| |monslist| |ans| #16=#:G102075 #17=#:G102076
- |mons| #18=#:G102077 |m| #19=#:G102078 |i| #20=#:G102070
- #21=#:G102068 #22=#:G102069)
- (RETURN
- (SEQ
- (EXIT
- (SEQ
- (LETT |ll|
- (SPADCALL (SPADCALL |mat| (QREFELT |$| 137)) (QREFELT |$| 92))
- |POLYCAT-;conditionP;MU;27|)
- (LETT |llR|
- (PROGN (LETT #1# NIL |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT |z| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #2# (|SPADfirst| |ll|) |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #2#)
- (PROGN
- (LETT |z| (CAR #2#) |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #1# (CONS NIL #1#) |POLYCAT-;conditionP;MU;27|)))
- (LETT #2# (CDR #2#) |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #1#))))
- |POLYCAT-;conditionP;MU;27|)
- (LETT |monslist| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT |ch|
- (SPADCALL (QREFELT |$| 138))
- |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT |l| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #3# |ll| |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #3#)
- (PROGN
- (LETT |l| (CAR #3#) |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (LETT |mons|
- (PROGN
- (LETT #7# NIL |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT |u| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #4# |l| |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #4#)
- (PROGN
- (LETT |u| (CAR #4#) |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (PROGN
- (LETT #5#
- (SPADCALL |u| (QREFELT |$| 77))
- |POLYCAT-;conditionP;MU;27|)
- (COND
- (#7#
- (LETT #6#
- (SPADCALL #6# #5# (QREFELT |$| 139))
- |POLYCAT-;conditionP;MU;27|))
- ((QUOTE T)
- (PROGN
- (LETT #6# #5# |POLYCAT-;conditionP;MU;27|)
- (LETT #7#
- (QUOTE T)
- |POLYCAT-;conditionP;MU;27|)))))))
- (LETT #4# (CDR #4#) |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT NIL))
- (COND
- (#7# #6#)
- ((QUOTE T) (|IdentityError| (QUOTE |setUnion|)))))
- |POLYCAT-;conditionP;MU;27|)
- (LETT |redmons| NIL |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT |m| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #8# |mons| |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #8#)
- (PROGN
- (LETT |m| (CAR #8#) |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (LETT |vars|
- (SPADCALL |m| (QREFELT |$| 31))
- |POLYCAT-;conditionP;MU;27|)
- (LETT |degs|
- (SPADCALL |m| |vars| (QREFELT |$| 140))
- |POLYCAT-;conditionP;MU;27|)
- (LETT |deg1|
- (PROGN
- (LETT #9# NIL |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT |d| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #10# |degs| |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #10#)
- (PROGN
- (LETT |d|
- (CAR #10#)
- |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #9#
- (CONS
- (SEQ
- (LETT |nd|
- (SPADCALL |d| |ch| (QREFELT |$| 142))
- |POLYCAT-;conditionP;MU;27|)
- (EXIT
- (COND
- ((QEQCAR |nd| 1)
- (PROGN
- (LETT #11#
- (CONS 1 "failed")
- |POLYCAT-;conditionP;MU;27|)
- (GO #11#)))
- ((QUOTE T)
- (PROG1
- (LETT #12#
- (QCDR |nd|)
- |POLYCAT-;conditionP;MU;27|)
- (|check-subtype|
- (|>=| #12# 0)
- (QUOTE (|NonNegativeInteger|))
- #12#))))))
- #9#)
- |POLYCAT-;conditionP;MU;27|)))
- (LETT #10# (CDR #10#) |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #9#))))
- |POLYCAT-;conditionP;MU;27|)
- (LETT |redmons|
- (CONS
- (SPADCALL
- (|spadConstant| |$| 33)
- |vars|
- |deg1|
- (QREFELT |$| 54))
- |redmons|)
- |POLYCAT-;conditionP;MU;27|)
- (EXIT
- (LETT |llR|
- (PROGN
- (LETT #13# NIL |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT |v| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #14# |llR| |POLYCAT-;conditionP;MU;27|)
- (LETT |u| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #15# |l| |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #15#)
- (PROGN
- (LETT |u|
- (CAR #15#)
- |POLYCAT-;conditionP;MU;27|)
- NIL)
- (ATOM #14#)
- (PROGN
- (LETT |v|
- (CAR #14#)
- |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #13#
- (CONS
- (CONS
- (SPADCALL
- (SPADCALL
- |u|
- |vars|
- |degs|
- (QREFELT |$| 52))
- (QREFELT |$| 143))
- |v|)
- #13#)
- |POLYCAT-;conditionP;MU;27|)))
- (LETT #15#
- (PROG1
- (CDR #15#)
- (LETT #14#
- (CDR #14#)
- |POLYCAT-;conditionP;MU;27|))
- |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT (NREVERSE0 #13#))))
- |POLYCAT-;conditionP;MU;27|)))
- (LETT #8# (CDR #8#) |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT NIL))
- (EXIT
- (LETT |monslist|
- (CONS |redmons| |monslist|)
- |POLYCAT-;conditionP;MU;27|)))
- (LETT #3# (CDR #3#) |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT NIL))
- (LETT |ans|
- (SPADCALL
- (SPADCALL
- (SPADCALL |llR| (QREFELT |$| 89))
- (QREFELT |$| 144))
- (QREFELT |$| 146))
- |POLYCAT-;conditionP;MU;27|)
- (EXIT
- (COND
- ((QEQCAR |ans| 1) (CONS 1 "failed"))
- ((QUOTE T)
- (SEQ
- (LETT |i| 0 |POLYCAT-;conditionP;MU;27|)
- (EXIT
- (CONS
- 0
- (PRIMVEC2ARR
- (PROGN
- (LETT #16#
- (GETREFV (SIZE |monslist|))
- |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT #17# 0 |POLYCAT-;conditionP;MU;27|)
- (LETT |mons| NIL |POLYCAT-;conditionP;MU;27|)
- (LETT #18#
- |monslist|
- |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #18#)
- (PROGN
- (LETT |mons|
- (CAR #18#)
- |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (SETELT
- #16#
- #17#
- (PROGN
- (LETT #22#
- NIL
- |POLYCAT-;conditionP;MU;27|)
- (SEQ
- (LETT |m|
- NIL
- |POLYCAT-;conditionP;MU;27|)
- (LETT #19#
- |mons|
- |POLYCAT-;conditionP;MU;27|)
- G190
- (COND
- ((OR
- (ATOM #19#)
- (PROGN
- (LETT |m|
- (CAR #19#)
- |POLYCAT-;conditionP;MU;27|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (PROGN
- (LETT #20#
- (SPADCALL |m|
- (SPADCALL
- (SPADCALL
- (QCDR |ans|)
- (LETT |i|
- (|+| |i| 1)
- |POLYCAT-;conditionP;MU;27|)
- (QREFELT |$| 147))
- (QREFELT |$| 40))
- (QREFELT |$| 148))
- |POLYCAT-;conditionP;MU;27|)
- (COND
- (#22#
- (LETT #21#
- (SPADCALL #21# #20#
- (QREFELT |$| 149))
- |POLYCAT-;conditionP;MU;27|))
- ((QUOTE T)
- (PROGN
- (LETT #21# #20#
- |POLYCAT-;conditionP;MU;27|)
- (LETT #22# (QUOTE T)
- |POLYCAT-;conditionP;MU;27|)))))))
- (LETT #19# (CDR #19#)
- |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT NIL))
- (COND
- (#22# #21#)
- ((QUOTE T)
- (|spadConstant| |$| 21)))))))
- (LETT #18#
- (PROG1
- (CDR #18#)
- (LETT #17#
- (QSADD1 #17#)
- |POLYCAT-;conditionP;MU;27|))
- |POLYCAT-;conditionP;MU;27|)
- (GO G190)
- G191
- (EXIT NIL))
- #16#))))))))))
- #11#
- (EXIT #11#)))))
-
-(DEFUN |POLYCAT-;charthRoot;SU;28| (|p| |$|)
- (PROG (|vars| |ans| |ch|)
- (RETURN
- (SEQ
- (LETT |vars|
- (SPADCALL |p| (QREFELT |$| 31)) |POLYCAT-;charthRoot;SU;28|)
- (EXIT
- (COND
- ((NULL |vars|)
- (SEQ
- (LETT |ans|
- (SPADCALL
- (SPADCALL |p| (QREFELT |$| 143))
- (QREFELT |$| 151))
- |POLYCAT-;charthRoot;SU;28|)
- (EXIT
- (COND
- ((QEQCAR |ans| 1)
- (CONS 1 "failed"))
- ((QUOTE T)
- (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT |$| 40))))))))
- ((QUOTE T)
- (SEQ
- (LETT |ch|
- (SPADCALL (QREFELT |$| 138))
- |POLYCAT-;charthRoot;SU;28|)
- (EXIT (|POLYCAT-;charthRootlv| |p| |vars| |ch| |$|))))))))))
-
-(DEFUN |POLYCAT-;charthRootlv| (|p| |vars| |ch| |$|)
- (PROG (|v| |dd| |cp| |d| #1=#:G102109 |ans| |ansx| #2=#:G102116)
- (RETURN
- (SEQ
- (EXIT
- (COND
- ((NULL |vars|)
+ (COND (#6# #5#) ((QUOTE T) (|IdentityError| (QUOTE |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| (QREFELT $ 31))
+ |POLYCAT-;conditionP;MU;27|)
+ (LETT |degs|
+ (SPADCALL |m| |vars| (QREFELT $ 140))
+ |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
- (LETT |ans|
- (SPADCALL (SPADCALL |p| (QREFELT |$| 143)) (QREFELT |$| 151))
- |POLYCAT-;charthRootlv|)
- (EXIT
- (COND
- ((QEQCAR |ans| 1) (CONS 1 "failed"))
- ((QUOTE T)
- (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT |$| 40))))))))
- ((QUOTE T)
- (SEQ
- (LETT |v| (|SPADfirst| |vars|) |POLYCAT-;charthRootlv|)
- (LETT |vars| (CDR |vars|) |POLYCAT-;charthRootlv|)
- (LETT |d|
- (SPADCALL |p| |v| (QREFELT |$| 36))
- |POLYCAT-;charthRootlv|)
- (LETT |ans| (|spadConstant| |$| 21) |POLYCAT-;charthRootlv|)
- (SEQ G190
- (COND ((NULL (|<| 0 |d|)) (GO G191)))
- (SEQ
- (LETT |dd|
- (SPADCALL |d| |ch| (QREFELT |$| 142))
- |POLYCAT-;charthRootlv|)
- (EXIT
- (COND
- ((QEQCAR |dd| 1)
- (PROGN
- (LETT #2#
- (CONS 1 "failed")
- |POLYCAT-;charthRootlv|)
- (GO #2#)))
- ((QUOTE T)
- (SEQ
- (LETT |cp|
- (SPADCALL |p| |v| |d| (QREFELT |$| 154))
- |POLYCAT-;charthRootlv|)
- (LETT |p|
- (SPADCALL |p|
- (SPADCALL |cp| |v| |d| (QREFELT |$| 37))
- (QREFELT |$| 155))
- |POLYCAT-;charthRootlv|)
- (LETT |ansx|
- (|POLYCAT-;charthRootlv| |cp| |vars| |ch| |$|)
- |POLYCAT-;charthRootlv|)
- (EXIT
- (COND
- ((QEQCAR |ansx| 1)
- (PROGN
- (LETT #2#
- (CONS 1 "failed")
- |POLYCAT-;charthRootlv|)
- (GO #2#)))
- ((QUOTE T)
- (SEQ
- (LETT |d|
- (SPADCALL |p| |v| (QREFELT |$| 36))
- |POLYCAT-;charthRootlv|)
- (EXIT
- (LETT |ans|
- (SPADCALL |ans|
- (SPADCALL
- (QCDR |ansx|)
- |v|
- (PROG1
- (LETT #1#
- (QCDR |dd|)
- |POLYCAT-;charthRootlv|)
- (|check-subtype|
- (|>=| #1# 0)
- (QUOTE (|NonNegativeInteger|))
- #1#))
- (QREFELT |$| 37))
- (QREFELT |$| 149))
- |POLYCAT-;charthRootlv|)))))))))))
- NIL
- (GO G190)
- G191
- (EXIT NIL))
- (LETT |ansx|
- (|POLYCAT-;charthRootlv| |p| |vars| |ch| |$|)
- |POLYCAT-;charthRootlv|)
- (EXIT
- (COND
- ((QEQCAR |ansx| 1)
- (PROGN
- (LETT #2# (CONS 1 "failed") |POLYCAT-;charthRootlv|)
- (GO #2#)))
+ (EXIT
+ (LETT #8#
+ (CONS
+ (SEQ
+ (LETT |nd|
+ (SPADCALL |d| |ch| (QREFELT $ 142))
+ |POLYCAT-;conditionP;MU;27|)
+ (EXIT
+ (COND
+ ((QEQCAR |nd| 1)
+ (PROGN
+ (LETT #10#
+ (CONS 1 "failed") |POLYCAT-;conditionP;MU;27|)
+ (GO #10#)))
((QUOTE T)
- (PROGN
- (LETT #2#
- (CONS
- 0
- (SPADCALL |ans| (QCDR |ansx|) (QREFELT |$| 149)))
- |POLYCAT-;charthRootlv|)
- (GO #2#)))))))))
- #2#
- (EXIT #2#)))))
-
-(DEFUN |POLYCAT-;monicDivide;2SVarSetR;30| (|p1| |p2| |mvar| |$|)
- (PROG (|result|)
- (RETURN
- (SEQ
- (LETT |result|
- (SPADCALL
- (SPADCALL |p1| |mvar| (QREFELT |$| 47))
- (SPADCALL |p2| |mvar| (QREFELT |$| 47))
- (QREFELT |$| 157))
- |POLYCAT-;monicDivide;2SVarSetR;30|)
- (EXIT
- (CONS
- (SPADCALL (QCAR |result|) |mvar| (QREFELT |$| 132))
- (SPADCALL (QCDR |result|) |mvar| (QREFELT |$| 132))))))))
-
-(DEFUN |POLYCAT-;squareFree;SF;31| (|p| |$|)
- (SPADCALL |p| (QREFELT |$| 160)))
-
-(DEFUN |POLYCAT-;squareFree;SF;32| (|p| |$|)
- (SPADCALL |p| (QREFELT |$| 163)))
-
-(DEFUN |POLYCAT-;squareFree;SF;33| (|p| |$|)
- (SPADCALL |p| (QREFELT |$| 163)))
-
-(DEFUN |POLYCAT-;squareFreePart;2S;34| (|p| |$|)
- (PROG (|s| |f| #1=#:G102132 #2=#:G102130 #3=#:G102128 #4=#:G102129)
- (RETURN
- (SEQ
- (SPADCALL
- (SPADCALL
- (LETT |s|
- (SPADCALL |p| (QREFELT |$| 164))
- |POLYCAT-;squareFreePart;2S;34|)
- (QREFELT |$| 165))
- (PROGN
- (LETT #4# NIL |POLYCAT-;squareFreePart;2S;34|)
- (SEQ
- (LETT |f| NIL |POLYCAT-;squareFreePart;2S;34|)
- (LETT #1#
- (SPADCALL |s| (QREFELT |$| 168))
- |POLYCAT-;squareFreePart;2S;34|)
+ (PROG1
+ (LETT #11# (QCDR |nd|) |POLYCAT-;conditionP;MU;27|)
+ (|check-subtype|
+ (>= #11# 0) (QUOTE (|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| $ 33) |vars| |deg1| (QREFELT $ 54))
+ |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 #1#)
- (PROGN
- (LETT |f| (CAR #1#) |POLYCAT-;squareFreePart;2S;34|)
- NIL))
- (GO G191)))
+ (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
- (PROGN
- (LETT #2# (QCAR |f|) |POLYCAT-;squareFreePart;2S;34|)
- (COND
- (#4#
- (LETT #3#
- (SPADCALL #3# #2# (QREFELT |$| 148))
- |POLYCAT-;squareFreePart;2S;34|))
- ((QUOTE T)
- (PROGN
- (LETT #3# #2# |POLYCAT-;squareFreePart;2S;34|)
- (LETT #4#
- (QUOTE T)
- |POLYCAT-;squareFreePart;2S;34|)))))))
- (LETT #1# (CDR #1#) |POLYCAT-;squareFreePart;2S;34|)
+ (EXIT
+ (LETT #12#
+ (CONS
+ (CONS
+ (SPADCALL
+ (SPADCALL |u| |vars| |degs| (QREFELT $ 52))
+ (QREFELT $ 143))
+ |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 NIL))
- (COND
- (#4# #3#)
- ((QUOTE T) (|spadConstant| |$| 33))))
- (QREFELT |$| 148))))))
-
-(DEFUN |POLYCAT-;content;SVarSetS;35| (|p| |v| |$|)
- (SPADCALL (SPADCALL |p| |v| (QREFELT |$| 47)) (QREFELT |$| 170)))
-
-(DEFUN |POLYCAT-;primitivePart;2S;36| (|p| |$|)
- (PROG (#1=#:G102135)
- (RETURN
- (QVELT
- (SPADCALL
- (PROG2
- (LETT #1#
- (SPADCALL |p| (SPADCALL |p| (QREFELT |$| 172)) (QREFELT |$| 173))
- |POLYCAT-;primitivePart;2S;36|)
- (QCDR #1#)
- (|check-union| (QEQCAR #1# 0) (QREFELT |$| 6) #1#))
- (QREFELT |$| 175))
- 1))))
-
-(DEFUN |POLYCAT-;primitivePart;SVarSetS;37| (|p| |v| |$|)
- (PROG (#1=#:G102141)
- (RETURN
- (QVELT
- (SPADCALL
- (PROG2
- (LETT #1#
- (SPADCALL |p|
- (SPADCALL |p| |v| (QREFELT |$| 177))
- (QREFELT |$| 178))
- |POLYCAT-;primitivePart;SVarSetS;37|)
- (QCDR #1#)
- (|check-union| (QEQCAR #1# 0) (QREFELT |$| 6) #1#))
- (QREFELT |$| 175)) 1))))
-
-(DEFUN |POLYCAT-;<;2SB;38| (|p| |q| |$|)
- (PROG (|dp| |dq|)
- (RETURN
- (SEQ
- (LETT |dp| (SPADCALL |p| (QREFELT |$| 59)) |POLYCAT-;<;2SB;38|)
- (LETT |dq| (SPADCALL |q| (QREFELT |$| 59)) |POLYCAT-;<;2SB;38|)
- (EXIT
- (COND
- ((SPADCALL |dp| |dq| (QREFELT |$| 180))
- (SPADCALL
- (|spadConstant| |$| 22)
- (SPADCALL |q| (QREFELT |$| 38))
- (QREFELT |$| 181)))
- ((SPADCALL |dq| |dp| (QREFELT |$| 180))
- (SPADCALL
- (SPADCALL |p| (QREFELT |$| 38))
- (|spadConstant| |$| 22)
- (QREFELT |$| 181)))
- ((QUOTE T)
- (SPADCALL
- (SPADCALL
- (SPADCALL |p| |q| (QREFELT |$| 155))
- (QREFELT |$| 38))
- (|spadConstant| |$| 22)
- (QREFELT |$| 181)))))))))
-
-(DEFUN |POLYCAT-;patternMatch;SP2Pmr;39| (|p| |pat| |l| |$|)
- (SPADCALL |p| |pat| |l| (QREFELT |$| 186)))
-
-(DEFUN |POLYCAT-;patternMatch;SP2Pmr;40| (|p| |pat| |l| |$|)
- (SPADCALL |p| |pat| |l| (QREFELT |$| 192)))
-
-(DEFUN |POLYCAT-;convert;SP;41| (|x| |$|)
- (SPADCALL (ELT |$| 195) (ELT |$| 196) |x| (QREFELT |$| 200)))
-
-(DEFUN |POLYCAT-;convert;SP;42| (|x| |$|)
- (SPADCALL (ELT |$| 202) (ELT |$| 203) |x| (QREFELT |$| 207)))
-
-(DEFUN |POLYCAT-;convert;SIf;43| (|p| |$|)
- (SPADCALL (ELT |$| 210) (ELT |$| 211) |p| (QREFELT |$| 215)))
-
-(DEFUN |PolynomialCategory&| (|#1| |#2| |#3| |#4|)
- (PROG (|DV$1| |DV$2| |DV$3| |DV$4| |dv$| |$| |pv$|)
- (RETURN
- (PROGN
- (LETT |DV$1| (|devaluate| |#1|) . #1=(|PolynomialCategory&|))
- (LETT |DV$2| (|devaluate| |#2|) . #1#)
- (LETT |DV$3| (|devaluate| |#3|) . #1#)
- (LETT |DV$4| (|devaluate| |#4|) . #1#)
- (LETT |dv$|
- (LIST
- (QUOTE |PolynomialCategory&|) |DV$1| |DV$2| |DV$3| |DV$4|) . #1#)
- (LETT |$| (GETREFV 225) . #1#)
- (QSETREFV |$| 0 |dv$|)
- (QSETREFV |$| 3
- (LETT |pv$|
- (|buildPredVector| 0 0
- (LIST
- (|HasCategory| |#2|
- (QUOTE (|PolynomialFactorizationExplicit|)))
- (|HasAttribute| |#2| (QUOTE |canonicalUnitNormal|))
- (|HasCategory| |#2| (QUOTE (|GcdDomain|)))
- (|HasCategory| |#2| (QUOTE (|CommutativeRing|)))
- (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Float|))))
- (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Float|))))
- (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Integer|))))
- (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Integer|))))
- (|HasCategory| |#4|
- (QUOTE (|ConvertibleTo| (|Pattern| (|Float|)))))
- (|HasCategory| |#2|
- (QUOTE (|ConvertibleTo| (|Pattern| (|Float|)))))
- (|HasCategory| |#4|
- (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|)))))
- (|HasCategory| |#2|
- (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|)))))
- (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|InputForm|))))
- (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|InputForm|))))
- (|HasCategory| |#2| (QUOTE (|OrderedSet|))))) . #1#))
- (|stuffDomainSlots| |$|)
- (QSETREFV |$| 6 |#1|)
- (QSETREFV |$| 7 |#2|)
- (QSETREFV |$| 8 |#3|)
- (QSETREFV |$| 9 |#4|)
- (COND
- ((|testBitVector| |pv$| 4)
- (PROGN
- (QSETREFV |$| 74
- (CONS
- (|dispatchFunction| |POLYCAT-;resultant;2SVarSetS;15|)
- |$|))
- (QSETREFV |$| 76
- (CONS
- (|dispatchFunction| |POLYCAT-;discriminant;SVarSetS;16|)
- |$|)))))
- (COND
- ((|HasCategory| |#2| (QUOTE (|IntegralDomain|)))
- (PROGN
- (QSETREFV |$| 95
- (CONS (|dispatchFunction| |POLYCAT-;reducedSystem;MM;20|) |$|))
- (QSETREFV |$| 102
- (CONS
- (|dispatchFunction| |POLYCAT-;reducedSystem;MVR;21|)
- |$|)))))
- (COND
- ((|testBitVector| |pv$| 1)
- (PROGN
- (QSETREFV |$| 105
- (CONS
- (|dispatchFunction| |POLYCAT-;gcdPolynomial;3Sup;22|)
- |$|))
- (QSETREFV |$| 112
- (CONS
- (|dispatchFunction|
- |POLYCAT-;solveLinearPolynomialEquation;LSupU;23|)
- |$|))
- (QSETREFV |$| 116
- (CONS
- (|dispatchFunction| |POLYCAT-;factorPolynomial;SupF;24|)
- |$|))
- (QSETREFV |$| 118
- (CONS
- (|dispatchFunction|
- |POLYCAT-;factorSquareFreePolynomial;SupF;25|)
- |$|))
- (QSETREFV |$| 136
- (CONS
- (|dispatchFunction| |POLYCAT-;factor;SF;26|) |$|))
- (COND
- ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|)))
+ (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| (QREFELT $ 89)) (QREFELT $ 144))
+ (QREFELT $ 146))
+ |POLYCAT-;conditionP;MU;27|)
+ (EXIT
+ (COND
+ ((QEQCAR |ans| 1) (CONS 1 "failed"))
+ ((QUOTE 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|)
+ (QREFELT $ 147))
+ (QREFELT $ 40))
+ (QREFELT $ 148))
+ |POLYCAT-;conditionP;MU;27|)
+ (COND
+ (#21#
+ (LETT #20#
+ (SPADCALL #20# #19# (QREFELT $ 149))
+ |POLYCAT-;conditionP;MU;27|))
+ ((QUOTE T)
+ (PROGN
+ (LETT #20# #19# |POLYCAT-;conditionP;MU;27|)
+ (LETT #21#
+ (QUOTE T)
+ |POLYCAT-;conditionP;MU;27|)))))))
+ (LETT #18# (CDR #18#) |POLYCAT-;conditionP;MU;27|)
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (COND (#21# #20#) ((QUOTE T) (|spadConstant| $ 21)))))))
+ (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| (QREFELT $ 31)) |POLYCAT-;charthRoot;SU;28|)
+ (EXIT
+ (COND
+ ((NULL |vars|)
+ (SEQ
+ (LETT |ans|
+ (SPADCALL (SPADCALL |p| (QREFELT $ 143)) (QREFELT $ 151))
+ |POLYCAT-;charthRoot;SU;28|)
+ (EXIT
+ (COND
+ ((QEQCAR |ans| 1) (CONS 1 "failed"))
+ ((QUOTE T) (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT $ 40))))))))
+ ((QUOTE T)
+ (SEQ
+ (LETT |ch| (SPADCALL (QREFELT $ 138)) |POLYCAT-;charthRoot;SU;28|)
+ (EXIT (|POLYCAT-;charthRootlv| |p| |vars| |ch| $))))))))))
+
+(DEFUN |POLYCAT-;charthRootlv| (|p| |vars| |ch| $)
+ (PROG (|v| |dd| |cp| |d| #0=#:G1687 |ans| |ansx| #1=#:G1694)
+ (RETURN
+ (SEQ
+ (EXIT
+ (COND
+ ((NULL |vars|)
+ (SEQ
+ (LETT |ans|
+ (SPADCALL (SPADCALL |p| (QREFELT $ 143)) (QREFELT $ 151))
+ |POLYCAT-;charthRootlv|)
+ (EXIT
+ (COND
+ ((QEQCAR |ans| 1) (CONS 1 "failed"))
+ ((QUOTE T) (CONS 0 (SPADCALL (QCDR |ans|) (QREFELT $ 40))))))))
+ ((QUOTE T)
+ (SEQ
+ (LETT |v| (|SPADfirst| |vars|) |POLYCAT-;charthRootlv|)
+ (LETT |vars| (CDR |vars|) |POLYCAT-;charthRootlv|)
+ (LETT |d| (SPADCALL |p| |v| (QREFELT $ 36)) |POLYCAT-;charthRootlv|)
+ (LETT |ans| (|spadConstant| $ 21) |POLYCAT-;charthRootlv|)
+ (SEQ G190
+ (COND ((NULL (< 0 |d|)) (GO G191)))
+ (SEQ
+ (LETT |dd|
+ (SPADCALL |d| |ch| (QREFELT $ 142))
+ |POLYCAT-;charthRootlv|)
+ (EXIT
+ (COND
+ ((QEQCAR |dd| 1)
+ (PROGN
+ (LETT #1# (CONS 1 "failed") |POLYCAT-;charthRootlv|)
+ (GO #1#)))
+ ((QUOTE T)
+ (SEQ
+ (LETT |cp|
+ (SPADCALL |p| |v| |d| (QREFELT $ 154))
+ |POLYCAT-;charthRootlv|)
+ (LETT |p|
+ (SPADCALL |p|
+ (SPADCALL |cp| |v| |d| (QREFELT $ 37))
+ (QREFELT $ 155))
+ |POLYCAT-;charthRootlv|)
+ (LETT |ansx|
+ (|POLYCAT-;charthRootlv| |cp| |vars| |ch| $)
+ |POLYCAT-;charthRootlv|)
+ (EXIT
+ (COND
+ ((QEQCAR |ansx| 1)
(PROGN
- (QSETREFV |$| 150
- (CONS
- (|dispatchFunction| |POLYCAT-;conditionP;MU;27|)
- |$|))))))))
- (COND
- ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|)))
- (PROGN
- (QSETREFV |$| 152
- (CONS
- (|dispatchFunction| |POLYCAT-;charthRoot;SU;28|)
- |$|)))))
- (COND
- ((|testBitVector| |pv$| 3)
- (PROGN
- (COND
- ((|HasCategory| |#2| (QUOTE (|EuclideanDomain|)))
- (COND
- ((|HasCategory| |#2| (QUOTE (|CharacteristicZero|)))
- (QSETREFV |$| 161
- (CONS
- (|dispatchFunction| |POLYCAT-;squareFree;SF;31|)
- |$|)))
- ((QUOTE T)
- (QSETREFV |$| 161
- (CONS
- (|dispatchFunction| |POLYCAT-;squareFree;SF;32|)
- |$|)))))
+ (LETT #1# (CONS 1 "failed") |POLYCAT-;charthRootlv|)
+ (GO #1#)))
((QUOTE T)
- (QSETREFV |$| 161
- (CONS
- (|dispatchFunction| |POLYCAT-;squareFree;SF;33|) |$|))))
- (QSETREFV |$| 169
- (CONS
- (|dispatchFunction| |POLYCAT-;squareFreePart;2S;34|) |$|))
- (QSETREFV |$| 171
- (CONS (|dispatchFunction| |POLYCAT-;content;SVarSetS;35|) |$|))
- (QSETREFV |$| 176
- (CONS (|dispatchFunction| |POLYCAT-;primitivePart;2S;36|) |$|))
- (QSETREFV |$| 179
- (CONS
- (|dispatchFunction| |POLYCAT-;primitivePart;SVarSetS;37|) |$|)))))
- (COND
- ((|testBitVector| |pv$| 15)
- (PROGN
- (QSETREFV |$| 182
- (CONS (|dispatchFunction| |POLYCAT-;<;2SB;38|) |$|))
- (COND
- ((|testBitVector| |pv$| 8)
- (COND
- ((|testBitVector| |pv$| 7)
- (QSETREFV |$| 188
- (CONS
- (|dispatchFunction|
- |POLYCAT-;patternMatch;SP2Pmr;39|)
- |$|))))))
- (COND
- ((|testBitVector| |pv$| 6)
- (COND
- ((|testBitVector| |pv$| 5)
- (QSETREFV |$| 194
- (CONS
- (|dispatchFunction|
- |POLYCAT-;patternMatch;SP2Pmr;40|)
- |$|)))))))))
- (COND
- ((|testBitVector| |pv$| 12)
- (COND
- ((|testBitVector| |pv$| 11)
- (QSETREFV |$| 201
- (CONS (|dispatchFunction| |POLYCAT-;convert;SP;41|) |$|))))))
- (COND
- ((|testBitVector| |pv$| 10)
- (COND
- ((|testBitVector| |pv$| 9)
- (QSETREFV |$| 208
- (CONS (|dispatchFunction| |POLYCAT-;convert;SP;42|) |$|))))))
- (COND
- ((|testBitVector| |pv$| 14)
- (COND
- ((|testBitVector| |pv$| 13)
- (QSETREFV |$| 216
- (CONS
- (|dispatchFunction| |POLYCAT-;convert;SIf;43|)
- |$|))))))
- |$|))))
-
-(MAKEPROP
- (QUOTE |PolynomialCategory&|)
- (QUOTE |infovec|)
- (LIST
- (QUOTE
- #(NIL NIL NIL NIL NIL NIL
- (|local| |#1|)
- (|local| |#2|)
- (|local| |#3|)
- (|local| |#4|)
- (|Equation| 6)
- (0 . |lhs|)
- (|Union| 9 (QUOTE "failed"))
- (5 . |retractIfCan|)
- (10 . |retract|)
- (15 . |rhs|)
- (|List| 9)
- (|List| |$|)
- (20 . |eval|)
- (|List| 220)
- |POLYCAT-;eval;SLS;1|
- (27 . |Zero|)
- (31 . |Zero|)
- (|Boolean|)
- (35 . |=|)
- (41 . |leadingMonomial|)
- (46 . |reductum|)
- |POLYCAT-;monomials;SL;2|
- (51 . |monomials|)
- (|Union| 17 (QUOTE "failed"))
- |POLYCAT-;isPlus;SU;3|
- (56 . |variables|)
- (61 . |monomial?|)
- (66 . |One|)
- (70 . |One|)
- (|NonNegativeInteger|)
- (74 . |degree|)
- (80 . |monomial|)
- (87 . |leadingCoefficient|)
- (92 . |one?|)
- (97 . |coerce|)
- |POLYCAT-;isTimes;SU;4|
- (102 . |mainVariable|)
- (|Record| (|:| |var| 9) (|:| |exponent| 35))
- (|Union| 43 (QUOTE "failed"))
- |POLYCAT-;isExpt;SU;5|
- (|SparseUnivariatePolynomial| |$|)
- (107 . |univariate|)
- (|SparseUnivariatePolynomial| 6)
- (113 . |coefficient|)
- |POLYCAT-;coefficient;SVarSetNniS;6|
- (|List| 35)
- (119 . |coefficient|)
- |POLYCAT-;coefficient;SLLS;7|
- (126 . |monomial|)
- |POLYCAT-;monomial;SLLS;8|
- (133 . |coerce|)
- |POLYCAT-;retract;SVarSet;9|
- |POLYCAT-;retractIfCan;SU;10|
- (138 . |degree|)
- (143 . |monomial|)
- |POLYCAT-;primitiveMonomials;SL;12|
- (149 . |ground?|)
- (154 . |Zero|)
- (158 . |=|)
- (164 . |degree|)
- (169 . |leadingCoefficient|)
- (174 . |totalDegree|)
- (179 . |reductum|)
- |POLYCAT-;totalDegree;SNni;13|
- (184 . |member?|)
- (190 . |totalDegree|)
- |POLYCAT-;totalDegree;SLNni;14|
- (196 . |resultant|)
- (202 . |resultant|)
- (209 . |discriminant|)
- (214 . |discriminant|)
- (220 . |primitiveMonomials|)
- (|List| 6)
- (225 . |concat|)
- (230 . |removeDuplicates!|)
- (|Vector| 7)
- (235 . |new|)
- (|Integer|)
- (241 . |minIndex|)
- (246 . |coefficient|)
- (252 . |qsetelt!|)
- (|List| 219)
- (|Matrix| 7)
- (259 . |matrix|)
- (|List| 78)
- (|Matrix| 6)
- (264 . |listOfLists|)
- (269 . |vertConcat|)
- (|Matrix| |$|)
- (275 . |reducedSystem|)
- (|Vector| 6)
- (280 . |entries|)
- (285 . |concat|)
- (291 . |concat|)
- (|Record| (|:| |mat| 88) (|:| |vec| 81))
- (|Vector| |$|)
- (297 . |reducedSystem|)
- (|GeneralPolynomialGcdPackage| 8 9 7 6)
- (303 . |gcdPolynomial|)
- (309 . |gcdPolynomial|)
- (|Union| 107 (QUOTE "failed"))
- (|List| 48)
- (|PolynomialFactorizationByRecursion| 7 8 9 6)
- (315 . |solveLinearPolynomialEquationByRecursion|)
- (|Union| 111 (QUOTE "failed"))
- (|List| 46)
- (321 . |solveLinearPolynomialEquation|)
- (|Factored| 48)
- (327 . |factorByRecursion|)
- (|Factored| 46)
- (332 . |factorPolynomial|)
- (337 . |factorSquareFreeByRecursion|)
- (342 . |factorSquareFreePolynomial|)
- (|Factored| |$|)
- (347 . |factor|)
- (|Factored| 7)
- (352 . |unit|)
- (|Union| (QUOTE "nil") (QUOTE "sqfr") (QUOTE "irred") (QUOTE "prime"))
- (|Record| (|:| |flg| 123) (|:| |fctr| 7) (|:| |xpnt| 83))
- (|List| 124)
- (357 . |factorList|)
- (|Record| (|:| |flg| 123) (|:| |fctr| 6) (|:| |xpnt| 83))
- (|List| 127)
- (|Factored| 6)
- (362 . |makeFR|)
- (368 . |unit|)
- (373 . |multivariate|)
- (|Record| (|:| |flg| 123) (|:| |fctr| 48) (|:| |xpnt| 83))
- (|List| 133)
- (379 . |factorList|)
- (384 . |factor|)
- (389 . |transpose|)
- (394 . |characteristic|)
- (398 . |setUnion|)
- (404 . |degree|)
- (|Union| |$| (QUOTE "failed"))
- (410 . |exquo|)
- (416 . |ground|)
- (421 . |transpose|)
- (|Union| 101 (QUOTE "failed"))
- (426 . |conditionP|)
- (431 . |elt|)
- (437 . |*|)
- (443 . |+|)
- (449 . |conditionP|)
- (454 . |charthRoot|)
- (459 . |charthRoot|)
- (464 . |Zero|)
- (468 . |coefficient|)
- (475 . |-|)
- (|Record| (|:| |quotient| |$|) (|:| |remainder| |$|))
- (481 . |monicDivide|)
- |POLYCAT-;monicDivide;2SVarSetR;30|
- (|MultivariateSquareFree| 8 9 7 6)
- (487 . |squareFree|)
- (492 . |squareFree|)
- (|PolynomialSquareFree| 9 8 7 6)
- (497 . |squareFree|)
- (502 . |squareFree|)
- (507 . |unit|)
- (|Record| (|:| |factor| 6) (|:| |exponent| 83))
- (|List| 166)
- (512 . |factors|)
- (517 . |squareFreePart|)
- (522 . |content|)
- (527 . |content|)
- (533 . |content|)
- (538 . |exquo|)
- (|Record| (|:| |unit| |$|) (|:| |canonical| |$|) (|:| |associate| |$|))
- (544 . |unitNormal|)
- (549 . |primitivePart|)
- (554 . |content|)
- (560 . |exquo|)
- (566 . |primitivePart|)
- (572 . |<|)
- (578 . |<|)
- (584 . |<|)
- (|PatternMatchResult| 83 6)
- (|Pattern| 83)
- (|PatternMatchPolynomialCategory| 83 8 9 7 6)
- (590 . |patternMatch|)
- (|PatternMatchResult| 83 |$|)
- (597 . |patternMatch|)
- (|PatternMatchResult| (|Float|) 6)
- (|Pattern| (|Float|))
- (|PatternMatchPolynomialCategory| (|Float|) 8 9 7 6)
- (604 . |patternMatch|)
- (|PatternMatchResult| (|Float|) |$|)
- (611 . |patternMatch|)
- (618 . |convert|)
- (623 . |convert|)
- (|Mapping| 184 9)
- (|Mapping| 184 7)
- (|PolynomialCategoryLifting| 8 9 7 6 184)
- (628 . |map|)
- (635 . |convert|)
- (640 . |convert|)
- (645 . |convert|)
- (|Mapping| 190 9)
- (|Mapping| 190 7)
- (|PolynomialCategoryLifting| 8 9 7 6 190)
- (650 . |map|)
- (657 . |convert|)
- (|InputForm|)
- (662 . |convert|)
- (667 . |convert|)
- (|Mapping| 209 9)
- (|Mapping| 209 7)
- (|PolynomialCategoryLifting| 8 9 7 6 209)
- (672 . |map|)
- (679 . |convert|)
- (|Record| (|:| |mat| 218) (|:| |vec| (|Vector| 83)))
- (|Matrix| 83)
- (|List| 7)
- (|Equation| |$|)
- (|Union| 83 (QUOTE "failed"))
- (|Union| 223 (QUOTE "failed"))
- (|Fraction| 83)
- (|Union| 7 (QUOTE "failed"))))
- (QUOTE
- #(|totalDegree| 684 |squareFreePart| 695 |squareFree| 700
- |solveLinearPolynomialEquation| 705 |retractIfCan| 711 |retract| 716
- |resultant| 721 |reducedSystem| 728 |primitivePart| 739
- |primitiveMonomials| 750 |patternMatch| 755 |monomials| 769
- |monomial| 774 |monicDivide| 781 |isTimes| 788 |isPlus| 793
- |isExpt| 798 |gcdPolynomial| 803 |factorSquareFreePolynomial| 809
- |factorPolynomial| 814 |factor| 819 |eval| 824 |discriminant| 830
- |convert| 836 |content| 851 |conditionP| 857 |coefficient| 862
- |charthRoot| 876 |<| 881))
- (QUOTE NIL)
- (CONS
- (|makeByteWordVec2| 1 (QUOTE NIL))
- (CONS
- (QUOTE #())
+ (SEQ
+ (LETT |d|
+ (SPADCALL |p| |v| (QREFELT $ 36))
+ |POLYCAT-;charthRootlv|)
+ (EXIT
+ (LETT |ans|
+ (SPADCALL |ans|
+ (SPADCALL (QCDR |ansx|) |v|
+ (PROG1
+ (LETT #0# (QCDR |dd|) |POLYCAT-;charthRootlv|)
+ (|check-subtype| (>= #0# 0)
+ (QUOTE (|NonNegativeInteger|)) #0#))
+ (QREFELT $ 37))
+ (QREFELT $ 149))
+ |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#)))
+ ((QUOTE T)
+ (PROGN
+ (LETT #1#
+ (CONS 0 (SPADCALL |ans| (QCDR |ansx|) (QREFELT $ 149)))
+ |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| (QREFELT $ 47))
+ (SPADCALL |p2| |mvar| (QREFELT $ 47))
+ (QREFELT $ 157))
+ |POLYCAT-;monicDivide;2SVarSetR;30|)
+ (EXIT
+ (CONS
+ (SPADCALL (QCAR |result|) |mvar| (QREFELT $ 132))
+ (SPADCALL (QCDR |result|) |mvar| (QREFELT $ 132))))))))
+
+(DEFUN |POLYCAT-;squareFree;SF;31| (|p| $)
+ (SPADCALL |p| (QREFELT $ 160)))
+
+(DEFUN |POLYCAT-;squareFree;SF;32| (|p| $)
+ (SPADCALL |p| (QREFELT $ 163)))
+
+(DEFUN |POLYCAT-;squareFree;SF;33| (|p| $)
+ (SPADCALL |p| (QREFELT $ 163)))
+
+(DEFUN |POLYCAT-;squareFreePart;2S;34| (|p| $)
+ (PROG (|s| |f| #0=#:G1710 #1=#:G1708 #2=#:G1706 #3=#:G1707)
+ (RETURN
+ (SEQ
+ (SPADCALL
+ (SPADCALL
+ (LETT |s| (SPADCALL |p| (QREFELT $ 164)) |POLYCAT-;squareFreePart;2S;34|)
+ (QREFELT $ 165))
+ (PROGN
+ (LETT #3# NIL |POLYCAT-;squareFreePart;2S;34|)
+ (SEQ
+ (LETT |f| NIL |POLYCAT-;squareFreePart;2S;34|)
+ (LETT #0# (SPADCALL |s| (QREFELT $ 168))
|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# (QREFELT $ 148))
+ |POLYCAT-;squareFreePart;2S;34|))
+ ((QUOTE T)
+ (PROGN
+ (LETT #2# #1# |POLYCAT-;squareFreePart;2S;34|)
+ (LETT #3# (QUOTE T) |POLYCAT-;squareFreePart;2S;34|)))))))
+ (LETT #0# (CDR #0#) |POLYCAT-;squareFreePart;2S;34|)
+ (GO G190)
+ G191
+ (EXIT NIL))
+ (COND (#3# #2#) ((QUOTE T) (|spadConstant| $ 33))))
+ (QREFELT $ 148))))))
+
+(DEFUN |POLYCAT-;content;SVarSetS;35| (|p| |v| $)
+ (SPADCALL (SPADCALL |p| |v| (QREFELT $ 47)) (QREFELT $ 170)))
+
+(DEFUN |POLYCAT-;primitivePart;2S;36| (|p| $)
+ (PROG (#0=#:G1713)
+ (RETURN
+ (COND
+ ((SPADCALL |p| (QREFELT $ 172)) |p|)
+ ((QUOTE T)
+ (QVELT
+ (SPADCALL
+ (PROG2
+ (LETT #0#
+ (SPADCALL |p| (SPADCALL |p| (QREFELT $ 173)) (QREFELT $ 174))
+ |POLYCAT-;primitivePart;2S;36|)
+ (QCDR #0#)
+ (|check-union| (QEQCAR #0# 0) (QREFELT $ 6) #0#))
+ (QREFELT $ 176))
+ 1))))))
+
+(DEFUN |POLYCAT-;primitivePart;SVarSetS;37| (|p| |v| $)
+ (PROG (#0=#:G1720)
+ (RETURN
+ (COND
+ ((SPADCALL |p| (QREFELT $ 172)) |p|)
+ ((QUOTE T)
+ (QVELT
+ (SPADCALL
+ (PROG2
+ (LETT #0#
+ (SPADCALL |p| (SPADCALL |p| |v| (QREFELT $ 178)) (QREFELT $ 179))
+ |POLYCAT-;primitivePart;SVarSetS;37|)
+ (QCDR #0#)
+ (|check-union| (QEQCAR #0# 0) (QREFELT $ 6) #0#))
+ (QREFELT $ 176))
+ 1))))))
+
+(DEFUN |POLYCAT-;<;2SB;38| (|p| |q| $)
+ (PROG (|dp| |dq|)
+ (RETURN
+ (SEQ
+ (LETT |dp| (SPADCALL |p| (QREFELT $ 59)) |POLYCAT-;<;2SB;38|)
+ (LETT |dq| (SPADCALL |q| (QREFELT $ 59)) |POLYCAT-;<;2SB;38|)
+ (EXIT
+ (COND
+ ((SPADCALL |dp| |dq| (QREFELT $ 181))
+ (SPADCALL
+ (|spadConstant| $ 22)
+ (SPADCALL |q| (QREFELT $ 38))
+ (QREFELT $ 182)))
+ ((SPADCALL |dq| |dp| (QREFELT $ 181))
+ (SPADCALL
+ (SPADCALL |p| (QREFELT $ 38))
+ (|spadConstant| $ 22)
+ (QREFELT $ 182)))
+ ((QUOTE T)
+ (SPADCALL
+ (SPADCALL (SPADCALL |p| |q| (QREFELT $ 155)) (QREFELT $ 38))
+ (|spadConstant| $ 22)
+ (QREFELT $ 182)))))))))
+
+(DEFUN |POLYCAT-;patternMatch;SP2Pmr;39| (|p| |pat| |l| $)
+ (SPADCALL |p| |pat| |l| (QREFELT $ 187)))
+
+(DEFUN |POLYCAT-;patternMatch;SP2Pmr;40| (|p| |pat| |l| $)
+ (SPADCALL |p| |pat| |l| (QREFELT $ 193)))
+
+(DEFUN |POLYCAT-;convert;SP;41| (|x| $)
+ (SPADCALL (ELT $ 196) (ELT $ 197) |x| (QREFELT $ 201)))
+
+(DEFUN |POLYCAT-;convert;SP;42| (|x| $)
+ (SPADCALL (ELT $ 203) (ELT $ 204) |x| (QREFELT $ 208)))
+
+(DEFUN |POLYCAT-;convert;SIf;43| (|p| $)
+ (SPADCALL (ELT $ 211) (ELT $ 212) |p| (QREFELT $ 216)))
+
+(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 (QUOTE |PolynomialCategory&|) DV$1 DV$2 DV$3 DV$4) . #0#)
+ (LETT $ (GETREFV 226) . #0#)
+ (QSETREFV $ 0 |dv$|)
+ (QSETREFV $ 3
+ (LETT |pv$|
+ (|buildPredVector| 0 0
+ (LIST
+ (|HasCategory| |#2| (QUOTE (|PolynomialFactorizationExplicit|)))
+ (|HasAttribute| |#2| (QUOTE |canonicalUnitNormal|))
+ (|HasCategory| |#2| (QUOTE (|GcdDomain|)))
+ (|HasCategory| |#2| (QUOTE (|CommutativeRing|)))
+ (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Float|))))
+ (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Float|))))
+ (|HasCategory| |#4| (QUOTE (|PatternMatchable| (|Integer|))))
+ (|HasCategory| |#2| (QUOTE (|PatternMatchable| (|Integer|))))
+ (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|Pattern| (|Float|)))))
+ (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|Pattern| (|Float|)))))
+ (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|)))))
+ (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|Pattern| (|Integer|)))))
+ (|HasCategory| |#4| (QUOTE (|ConvertibleTo| (|InputForm|))))
+ (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|InputForm|))))
+ (|HasCategory| |#2| (QUOTE (|OrderedSet|)))))
+ . #0#))
+ (|stuffDomainSlots| $)
+ (QSETREFV $ 6 |#1|)
+ (QSETREFV $ 7 |#2|)
+ (QSETREFV $ 8 |#3|)
+ (QSETREFV $ 9 |#4|)
+ (COND
+ ((|testBitVector| |pv$| 4)
+ (PROGN
+ (QSETREFV $ 74
+ (CONS (|dispatchFunction| |POLYCAT-;resultant;2SVarSetS;15|) $))
+ (QSETREFV $ 76
+ (CONS (|dispatchFunction| |POLYCAT-;discriminant;SVarSetS;16|) $)))))
+ (COND
+ ((|HasCategory| |#2| (QUOTE (|IntegralDomain|)))
+ (PROGN
+ (QSETREFV $ 95
+ (CONS (|dispatchFunction| |POLYCAT-;reducedSystem;MM;20|) $))
+ (QSETREFV $ 102
+ (CONS (|dispatchFunction| |POLYCAT-;reducedSystem;MVR;21|) $)))))
+ (COND
+ ((|testBitVector| |pv$| 1)
+ (PROGN
+ (QSETREFV $ 105
+ (CONS (|dispatchFunction| |POLYCAT-;gcdPolynomial;3Sup;22|) $))
+ (QSETREFV $ 112
+ (CONS
+ (|dispatchFunction|
+ |POLYCAT-;solveLinearPolynomialEquation;LSupU;23|)
+ $))
+ (QSETREFV $ 116
+ (CONS (|dispatchFunction| |POLYCAT-;factorPolynomial;SupF;24|) $))
+ (QSETREFV $ 118
+ (CONS
+ (|dispatchFunction| |POLYCAT-;factorSquareFreePolynomial;SupF;25|)
+ $))
+ (QSETREFV $ 136 (CONS (|dispatchFunction| |POLYCAT-;factor;SF;26|) $))
+ (COND
+ ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|)))
+ (PROGN
+ (QSETREFV $ 150
+ (CONS (|dispatchFunction| |POLYCAT-;conditionP;MU;27|) $))))))))
+ (COND
+ ((|HasCategory| |#2| (QUOTE (|CharacteristicNonZero|)))
+ (PROGN
+ (QSETREFV $ 152
+ (CONS (|dispatchFunction| |POLYCAT-;charthRoot;SU;28|) $)))))
+ (COND
+ ((|testBitVector| |pv$| 3)
+ (PROGN
+ (COND
+ ((|HasCategory| |#2| (QUOTE (|EuclideanDomain|)))
+ (COND
+ ((|HasCategory| |#2| (QUOTE (|CharacteristicZero|)))
+ (QSETREFV $ 161
+ (CONS (|dispatchFunction| |POLYCAT-;squareFree;SF;31|) $)))
+ ((QUOTE T)
+ (QSETREFV $ 161
+ (CONS (|dispatchFunction| |POLYCAT-;squareFree;SF;32|) $)))))
+ ((QUOTE T)
+ (QSETREFV $ 161
+ (CONS (|dispatchFunction| |POLYCAT-;squareFree;SF;33|) $))))
+ (QSETREFV $ 169
+ (CONS (|dispatchFunction| |POLYCAT-;squareFreePart;2S;34|) $))
+ (QSETREFV $ 171
+ (CONS (|dispatchFunction| |POLYCAT-;content;SVarSetS;35|) $))
+ (QSETREFV $ 177
+ (CONS (|dispatchFunction| |POLYCAT-;primitivePart;2S;36|) $))
+ (QSETREFV $ 180
+ (CONS (|dispatchFunction| |POLYCAT-;primitivePart;SVarSetS;37|) $)))))
+ (COND
+ ((|testBitVector| |pv$| 15)
+ (PROGN
+ (QSETREFV $ 183 (CONS (|dispatchFunction| |POLYCAT-;<;2SB;38|) $))
+ (COND
+ ((|testBitVector| |pv$| 8)
+ (COND
+ ((|testBitVector| |pv$| 7)
+ (QSETREFV $ 189
+ (CONS
+ (|dispatchFunction| |POLYCAT-;patternMatch;SP2Pmr;39|)
+ $))))))
+ (COND
+ ((|testBitVector| |pv$| 6)
+ (COND
+ ((|testBitVector| |pv$| 5)
+ (QSETREFV $ 195
(CONS
- (QUOTE #())
- (|makeByteWordVec2| 216
- (QUOTE
- (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 21 0 7 0 22 2 6 23 0 0 24 1 6 0 0 25 1 6 0 0
- 26 1 6 17 0 28 1 6 16 0 31 1 6 23 0 32 0 6 0 33 0 7 0 34 2
- 6 35 0 9 36 3 6 0 0 9 35 37 1 6 7 0 38 1 7 23 0 39 1 6 0 7
- 40 1 6 12 0 42 2 6 46 0 9 47 2 48 6 0 35 49 3 6 0 0 16 51
- 52 3 6 0 0 16 51 54 1 6 0 9 56 1 6 8 0 59 2 6 0 7 8 60 1 6
- 23 0 62 0 48 0 63 2 48 23 0 0 64 1 48 35 0 65 1 48 6 0 66
- 1 6 35 0 67 1 48 0 0 68 2 16 23 9 0 70 2 6 35 0 16 71 2 48
- 6 0 0 73 3 0 0 0 0 9 74 1 48 6 0 75 2 0 0 0 9 76 1 6 17 0
- 77 1 78 0 17 79 1 78 0 0 80 2 81 0 35 7 82 1 81 83 0 84 2
- 6 7 0 8 85 3 81 7 0 83 7 86 1 88 0 87 89 1 91 90 0 92 2 88
- 0 0 0 93 1 0 88 94 95 1 96 78 0 97 2 78 0 0 0 98 2 81 0 0
- 0 99 2 0 100 94 101 102 2 103 48 48 48 104 2 0 46 46 46
- 105 2 108 106 107 48 109 2 0 110 111 46 112 1 108 113 48
- 114 1 0 115 46 116 1 108 113 48 117 1 0 115 46 118 1 7 119
- 0 120 1 121 7 0 122 1 121 125 0 126 2 129 0 6 128 130 1 113
- 48 0 131 2 6 0 46 9 132 1 113 134 0 135 1 0 119 0 136 1 91
- 0 0 137 0 6 35 138 2 78 0 0 0 139 2 6 51 0 16 140 2 83 141
- 0 0 142 1 6 7 0 143 1 88 0 0 144 1 7 145 94 146 2 81 7 0
- 83 147 2 6 0 0 0 148 2 6 0 0 0 149 1 0 145 94 150 1 7 141
- 0 151 1 0 141 0 152 0 8 0 153 3 6 0 0 9 35 154 2 6 0 0 0
- 155 2 48 156 0 0 157 1 159 129 6 160 1 0 119 0 161 1 162
- 129 6 163 1 6 119 0 164 1 129 6 0 165 1 129 167 0 168 1 0
- 0 0 169 1 48 6 0 170 2 0 0 0 9 171 1 6 7 0 172 2 6 141 0 7
- 173 1 6 174 0 175 1 0 0 0 176 2 6 0 0 9 177 2 6 141 0 0
- 178 2 0 0 0 9 179 2 8 23 0 0 180 2 7 23 0 0 181 2 0 23 0 0
- 182 3 185 183 6 184 183 186 3 0 187 0 184 187 188 3 191 189
- 6 190 189 192 3 0 193 0 190 193 194 1 9 184 0 195 1 7 184
- 0 196 3 199 184 197 198 6 200 1 0 184 0 201 1 9 190 0 202
- 1 7 190 0 203 3 206 190 204 205 6 207 1 0 190 0 208 1 9
- 209 0 210 1 7 209 0 211 3 214 209 212 213 6 215 1 0 209 0
- 216 2 0 35 0 16 72 1 0 35 0 69 1 0 0 0 169 1 0 119 0 161 2
- 0 110 111 46 112 1 0 12 0 58 1 0 9 0 57 3 0 0 0 0 9 74 1 0
- 88 94 95 2 0 100 94 101 102 2 0 0 0 9 179 1 0 0 0 176 1 0
- 17 0 61 3 0 187 0 184 187 188 3 0 193 0 190 193 194 1 0 17
- 0 27 3 0 0 0 16 51 55 3 0 156 0 0 9 158 1 0 29 0 41 1 0 29
- 0 30 1 0 44 0 45 2 0 46 46 46 105 1 0 115 46 118 1 0 115
- 46 116 1 0 119 0 136 2 0 0 0 19 20 2 0 0 0 9 76 1 0 209 0
- 216 1 0 184 0 201 1 0 190 0 208 2 0 0 0 9 171 1 0 145 94
- 150 3 0 0 0 16 51 53 3 0 0 0 9 35 50 1 0 141 0 152 2 0
- 23 0 0 182))))))
- (QUOTE |lookupComplete|)))
+ (|dispatchFunction| |POLYCAT-;patternMatch;SP2Pmr;40|)
+ $)))))))))
+ (COND
+ ((|testBitVector| |pv$| 12)
+ (COND
+ ((|testBitVector| |pv$| 11)
+ (QSETREFV $ 202
+ (CONS (|dispatchFunction| |POLYCAT-;convert;SP;41|) $))))))
+ (COND
+ ((|testBitVector| |pv$| 10)
+ (COND
+ ((|testBitVector| |pv$| 9)
+ (QSETREFV $ 209
+ (CONS (|dispatchFunction| |POLYCAT-;convert;SP;42|) $))))))
+ (COND
+ ((|testBitVector| |pv$| 14)
+ (COND
+ ((|testBitVector| |pv$| 13)
+ (QSETREFV $ 217
+ (CONS (|dispatchFunction| |POLYCAT-;convert;SIf;43|) $))))))
+ $))))
+
+(MAKEPROP
+ (QUOTE |PolynomialCategory&|)
+ (QUOTE |infovec|)
+ (LIST (QUOTE
+ #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|local| |#3|)
+ (|local| |#4|) (|Equation| 6) (0 . |lhs|) (|Union| 9 (QUOTE "failed"))
+ (5 . |retractIfCan|) (10 . |retract|) (15 . |rhs|) (|List| 9) (|List| $)
+ (20 . |eval|) (|List| 221) |POLYCAT-;eval;SLS;1| (27 . |Zero|)
+ (31 . |Zero|) (|Boolean|) (35 . =) (41 . |leadingMonomial|)
+ (46 . |reductum|) |POLYCAT-;monomials;SL;2| (51 . |monomials|)
+ (|Union| 17 (QUOTE "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|)
+ (|Record| (|:| |var| 9) (|:| |exponent| 35))
+ (|Union| 43 (QUOTE "failed")) |POLYCAT-;isExpt;SU;5|
+ (|SparseUnivariatePolynomial| $) (108 . |univariate|)
+ (|SparseUnivariatePolynomial| 6) (114 . |coefficient|)
+ |POLYCAT-;coefficient;SVarSetNniS;6| (|List| 35) (120 . |coefficient|)
+ |POLYCAT-;coefficient;SLLS;7| (127 . |monomial|)
+ |POLYCAT-;monomial;SLLS;8| (134 . |coerce|)
+ |POLYCAT-;retract;SVarSet;9| |POLYCAT-;retractIfCan;SU;10|
+ (139 . |degree|) (144 . |monomial|) |POLYCAT-;primitiveMonomials;SL;12|
+ (150 . |ground?|) (155 . |Zero|) (159 . =) (165 . |degree|)
+ (170 . |leadingCoefficient|) (175 . |totalDegree|) (180 . |reductum|)
+ |POLYCAT-;totalDegree;SNni;13| (185 . |member?|) (191 . |totalDegree|)
+ |POLYCAT-;totalDegree;SLNni;14| (197 . |resultant|) (203 . |resultant|)
+ (210 . |discriminant|) (215 . |discriminant|) (221 . |primitiveMonomials|)
+ (|List| 6) (226 . |concat|) (231 . |removeDuplicates!|) (|Vector| 7)
+ (236 . |new|) (|Integer|) (242 . |minIndex|) (247 . |coefficient|)
+ (253 . |qsetelt!|) (|List| 220) (|Matrix| 7) (260 . |matrix|)
+ (|List| 78) (|Matrix| 6) (265 . |listOfLists|) (270 . |vertConcat|)
+ (|Matrix| $) (276 . |reducedSystem|) (|Vector| 6) (281 . |entries|)
+ (286 . |concat|) (292 . |concat|)
+ (|Record| (|:| |mat| 88) (|:| |vec| 81)) (|Vector| $)
+ (298 . |reducedSystem|) (|GeneralPolynomialGcdPackage| 8 9 7 6)
+ (304 . |gcdPolynomial|) (310 . |gcdPolynomial|)
+ (|Union| 107 (QUOTE "failed")) (|List| 48)
+ (|PolynomialFactorizationByRecursion| 7 8 9 6)
+ (316 . |solveLinearPolynomialEquationByRecursion|)
+ (|Union| 111 (QUOTE "failed")) (|List| 46)
+ (322 . |solveLinearPolynomialEquation|) (|Factored| 48)
+ (328 . |factorByRecursion|) (|Factored| 46) (333 . |factorPolynomial|)
+ (338 . |factorSquareFreeByRecursion|)
+ (343 . |factorSquareFreePolynomial|) (|Factored| $) (348 . |factor|)
+ (|Factored| 7) (353 . |unit|)
+ (|Union| (QUOTE "nil") (QUOTE "sqfr") (QUOTE "irred") (QUOTE "prime"))
+ (|Record| (|:| |flg| 123) (|:| |fctr| 7) (|:| |xpnt| 83))
+ (|List| 124) (358 . |factorList|)
+ (|Record| (|:| |flg| 123) (|:| |fctr| 6) (|:| |xpnt| 83))
+ (|List| 127) (|Factored| 6) (363 . |makeFR|) (369 . |unit|)
+ (374 . |multivariate|)
+ (|Record| (|:| |flg| 123) (|:| |fctr| 48) (|:| |xpnt| 83))
+ (|List| 133) (380 . |factorList|) (385 . |factor|) (390 . |transpose|)
+ (395 . |characteristic|) (399 . |setUnion|) (405 . |degree|)
+ (|Union| $ (QUOTE "failed")) (411 . |exquo|) (417 . |ground|)
+ (422 . |transpose|) (|Union| 101 (QUOTE "failed")) (427 . |conditionP|)
+ (432 . |elt|) (438 . *) (444 . +) (450 . |conditionP|)
+ (455 . |charthRoot|) (460 . |charthRoot|) (465 . |Zero|)
+ (469 . |coefficient|) (476 . -)
+ (|Record| (|:| |quotient| $) (|:| |remainder| $))
+ (482 . |monicDivide|) |POLYCAT-;monicDivide;2SVarSetR;30|
+ (|MultivariateSquareFree| 8 9 7 6) (488 . |squareFree|)
+ (493 . |squareFree|) (|PolynomialSquareFree| 9 8 7 6)
+ (498 . |squareFree|) (503 . |squareFree|) (508 . |unit|)
+ (|Record| (|:| |factor| 6) (|:| |exponent| 83)) (|List| 166)
+ (513 . |factors|) (518 . |squareFreePart|) (523 . |content|)
+ (528 . |content|) (534 . |zero?|) (539 . |content|) (544 . |exquo|)
+ (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $))
+ (550 . |unitNormal|) (555 . |primitivePart|) (560 . |content|)
+ (566 . |exquo|) (572 . |primitivePart|) (578 . <) (584 . <) (590 . <)
+ (|PatternMatchResult| 83 6) (|Pattern| 83)
+ (|PatternMatchPolynomialCategory| 83 8 9 7 6) (596 . |patternMatch|)
+ (|PatternMatchResult| 83 $) (603 . |patternMatch|)
+ (|PatternMatchResult| (|Float|) 6) (|Pattern| (|Float|))
+ (|PatternMatchPolynomialCategory| (|Float|) 8 9 7 6)
+ (610 . |patternMatch|) (|PatternMatchResult| (|Float|) $)
+ (617 . |patternMatch|) (624 . |convert|) (629 . |convert|)
+ (|Mapping| 185 9) (|Mapping| 185 7)
+ (|PolynomialCategoryLifting| 8 9 7 6 185) (634 . |map|)
+ (641 . |convert|) (646 . |convert|) (651 . |convert|) (|Mapping| 191 9)
+ (|Mapping| 191 7) (|PolynomialCategoryLifting| 8 9 7 6 191)
+ (656 . |map|) (663 . |convert|) (|InputForm|) (668 . |convert|)
+ (673 . |convert|) (|Mapping| 210 9) (|Mapping| 210 7)
+ (|PolynomialCategoryLifting| 8 9 7 6 210) (678 . |map|)
+ (685 . |convert|) (|Record| (|:| |mat| 219) (|:| |vec| (|Vector| 83)))
+ (|Matrix| 83) (|List| 7) (|Equation| $) (|Union| 83 (QUOTE "failed"))
+ (|Union| 224 (QUOTE "failed")) (|Fraction| 83)
+ (|Union| 7 (QUOTE "failed"))))
+ (QUOTE #(|totalDegree| 690 |squareFreePart| 701 |squareFree| 706
+ |solveLinearPolynomialEquation| 711 |retractIfCan| 717 |retract| 722
+ |resultant| 727 |reducedSystem| 734 |primitivePart| 745
+ |primitiveMonomials| 756 |patternMatch| 761 |monomials| 775
+ |monomial| 780 |monicDivide| 787 |isTimes| 794 |isPlus| 799
+ |isExpt| 804 |gcdPolynomial| 809 |factorSquareFreePolynomial| 815
+ |factorPolynomial| 820 |factor| 825 |eval| 830 |discriminant| 836
+ |convert| 842 |content| 857 |conditionP| 863 |coefficient| 868
+ |charthRoot| 882 < 887))
+ (QUOTE NIL)
+ (CONS (|makeByteWordVec2| 1 (QUOTE NIL))
+ (CONS (QUOTE #())
+ (CONS (QUOTE #())
+ (|makeByteWordVec2| 217 (QUOTE
+ (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
+ 21 0 7 0 22 2 6 23 0 0 24 1 6 0 0 25 1 6 0 0 26 1 6 17 0 28 1 6 16 0
+ 31 1 6 23 0 32 0 6 0 33 0 7 0 34 2 6 35 0 9 36 3 6 0 0 9 35 37 1 6 7
+ 0 38 2 7 23 0 0 39 1 6 0 7 40 1 6 12 0 42 2 6 46 0 9 47 2 48 6 0 35
+ 49 3 6 0 0 16 51 52 3 6 0 0 16 51 54 1 6 0 9 56 1 6 8 0 59 2 6 0 7 8
+ 60 1 6 23 0 62 0 48 0 63 2 48 23 0 0 64 1 48 35 0 65 1 48 6 0 66 1 6
+ 35 0 67 1 48 0 0 68 2 16 23 9 0 70 2 6 35 0 16 71 2 48 6 0 0 73 3 0
+ 0 0 0 9 74 1 48 6 0 75 2 0 0 0 9 76 1 6 17 0 77 1 78 0 17 79 1 78 0
+ 0 80 2 81 0 35 7 82 1 81 83 0 84 2 6 7 0 8 85 3 81 7 0 83 7 86 1 88
+ 0 87 89 1 91 90 0 92 2 88 0 0 0 93 1 0 88 94 95 1 96 78 0 97 2 78 0
+ 0 0 98 2 81 0 0 0 99 2 0 100 94 101 102 2 103 48 48 48 104 2 0 46 46
+ 46 105 2 108 106 107 48 109 2 0 110 111 46 112 1 108 113 48 114 1 0
+ 115 46 116 1 108 113 48 117 1 0 115 46 118 1 7 119 0 120 1 121 7 0
+ 122 1 121 125 0 126 2 129 0 6 128 130 1 113 48 0 131 2 6 0 46 9 132
+ 1 113 134 0 135 1 0 119 0 136 1 91 0 0 137 0 6 35 138 2 78 0 0 0 139
+ 2 6 51 0 16 140 2 83 141 0 0 142 1 6 7 0 143 1 88 0 0 144 1 7 145 94
+ 146 2 81 7 0 83 147 2 6 0 0 0 148 2 6 0 0 0 149 1 0 145 94 150 1 7
+ 141 0 151 1 0 141 0 152 0 8 0 153 3 6 0 0 9 35 154 2 6 0 0 0 155 2
+ 48 156 0 0 157 1 159 129 6 160 1 0 119 0 161 1 162 129 6 163 1 6 119
+ 0 164 1 129 6 0 165 1 129 167 0 168 1 0 0 0 169 1 48 6 0 170 2 0 0 0
+ 9 171 1 6 23 0 172 1 6 7 0 173 2 6 141 0 7 174 1 6 175 0 176 1 0 0 0
+ 177 2 6 0 0 9 178 2 6 141 0 0 179 2 0 0 0 9 180 2 8 23 0 0 181 2 7 23
+ 0 0 182 2 0 23 0 0 183 3 186 184 6 185 184 187 3 0 188 0 185 188 189
+ 3 192 190 6 191 190 193 3 0 194 0 191 194 195 1 9 185 0 196 1 7 185
+ 0 197 3 200 185 198 199 6 201 1 0 185 0 202 1 9 191 0 203 1 7 191 0
+ 204 3 207 191 205 206 6 208 1 0 191 0 209 1 9 210 0 211 1 7 210 0
+ 212 3 215 210 213 214 6 216 1 0 210 0 217 2 0 35 0 16 72 1 0 35 0 69
+ 1 0 0 0 169 1 0 119 0 161 2 0 110 111 46 112 1 0 12 0 58 1 0 9 0 57
+ 3 0 0 0 0 9 74 1 0 88 94 95 2 0 100 94 101 102 2 0 0 0 9 180 1 0 0 0
+ 177 1 0 17 0 61 3 0 188 0 185 188 189 3 0 194 0 191 194 195 1 0 17 0
+ 27 3 0 0 0 16 51 55 3 0 156 0 0 9 158 1 0 29 0 41 1 0 29 0 30 1 0 44
+ 0 45 2 0 46 46 46 105 1 0 115 46 118 1 0 115 46 116 1 0 119 0 136 2
+ 0 0 0 19 20 2 0 0 0 9 76 1 0 210 0 217 1 0 185 0 202 1 0 191 0 209 2
+ 0 0 0 9 171 1 0 145 94 150 3 0 0 0 16 51 53 3 0 0 0 9 35 50 1 0 141
+ 0 152 2 0 23 0 0 183))))))
+ (QUOTE |lookupComplete|)))
@
\section{package POLYLIFT PolynomialCategoryLifting}
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet
index 92c1dc5..b286aa6 100644
--- a/src/input/Makefile.pamphlet
+++ b/src/input/Makefile.pamphlet
@@ -287,7 +287,7 @@ REGRES= algaggr.regress algbrbf.regress algfacob.regress
alist.regress \
arrows.regress assign.regress atansqrt.regress \
asec.regress bags.regress bbtree.regress \
binary.regress bop.regress bstree.regress bouquet.regress \
- bug100.regress bug10069.regress \
+ bug100.regress bug103.regress bug10069.regress \
bugs.regress bug10312.regress bug6357.regress bug9057.regress \
calcprob.regress \
calculus2.regress calculus.regress cardinal.regress card.regress \
@@ -502,7 +502,7 @@ FILES= ${OUT}/algaggr.input ${OUT}/algbrbf.input
${OUT}/algfacob.input \
${OUT}/bags.input ${OUT}/bbtree.input ${OUT}/bern.input \
${OUT}/bernpoly.input ${OUT}/binary.input ${OUT}/bop.input \
${OUT}/bouquet.input ${OUT}/bstree.input ${OUT}/bug6357.input \
- ${OUT}/bug9057.input ${OUT}/bug100.input \
+ ${OUT}/bug9057.input ${OUT}/bug100.input ${OUT}/bug103.input \
${OUT}/bug10069.input ${OUT}/bug10312.input \
${OUT}/calcprob.input ${OUT}/calculus.input \
${OUT}/cardinal.input ${OUT}/card.input ${OUT}/carten.input \
@@ -678,7 +678,7 @@ DOCFILES= \
${DOC}/bernpoly.input.dvi ${DOC}/binary.input.dvi \
${DOC}/bop.input.dvi ${DOC}/bouquet.input.dvi \
${DOC}/bstree.input.dvi ${DOC}/bug10069.input.dvi \
- ${DOC}/bug100.input.dvi \
+ ${DOC}/bug100.input.dvi ${DOC}/bug103.input.dvi \
${DOC}/bug10312.input.dvi ${DOC}/bug6357.input.dvi \
${DOC}/bug9057.input.dvi ${DOC}/bugs.input.dvi \
${DOC}/c02aff.input.dvi ${DOC}/c02agf.input.dvi \
diff --git a/src/input/bug103.input.pamphlet b/src/input/bug103.input.pamphlet
new file mode 100644
index 0000000..59e6838
--- /dev/null
+++ b/src/input/bug103.input.pamphlet
@@ -0,0 +1,82 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/input bug103.input}
+\author{Timothy Daly}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+@
+The call
+\begin{verbatim}
+ solve(z=z,z)
+\end{verbatim}
+fails with:
+ \begin{verbatim}
+ >> Error detected within library code:
+ (1 . failed) cannot be coerced to mode (Polynomial (Integer))
+\end{verbatim}
+
+The bug fix, proposed by William, changes {\tt exquo} in EuclideanDomain
+to add the {\tt zero? x} test.
+\begin{verbatim}
+ x exquo y ==
+ zero? x => 0
+ zero? y => "failed"
+ qr:=divide(x,y)
+ zero?(qr.remainder) => qr.quotient
+ "failed"
+\end{verbatim}
+This change was made but does not affect the behavior of the bug.
+
+This fix, proposed by Martin, changes {\tt primitePart} in
+{\tt PolynomialCategory} to add the {\tt zero?} test.
+\begin{verbatim}
+ primitivePart p ==
+ zero? p => p
+ unitNormal((p exquo content p) ::%).canonical
+ primitivePart(p,v) ==
+ zero? p => p
+ unitNormal((p exquo content(p,v)) ::%).canonical
+\end{verbatim}
+succeeds with:
+ \begin{verbatim}
+ [0= 0]
+ Type: List Equation Fraction Polynomial Integer
+\end{verbatim}
+<<*>>=
+)spool bug103.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+solve(z=z,z)
+--R
+--R
+--R (1) [0= 0]
+--R Type: List Equation Fraction Polynomial
Integer
+--E 1
+@
+If we substitute z for %I we get:
+\begin{verbatim}
+ z
+ ++ a b
+ | (z + 1) dz
+ ++
+
+\end{verbatim}
+which is the original input integral.
+<<*>>=
+)spool
+)lisp (bye)
+
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Axiom-developer] 20070916.01.tpd.patch (bug 103 fix),
daly <=