aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/ffcat.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-08-16 06:00:35 +0000
committerdos-reis <gdr@axiomatics.org>2008-08-16 06:00:35 +0000
commit84db9d8c5349cb8b3e7e2d102867e53e610d7ef2 (patch)
tree0a2689194fd9e75ce8925550a4e177f3e5520684 /src/algebra/ffcat.spad.pamphlet
parent3372c377eded97a0094f63cddd2e039af7066431 (diff)
downloadopen-axiom-84db9d8c5349cb8b3e7e2d102867e53e610d7ef2.tar.gz
* algebra/strap: New. Sequester cached Lisp translation of
algebra bootstrap domains here.
Diffstat (limited to 'src/algebra/ffcat.spad.pamphlet')
-rw-r--r--src/algebra/ffcat.spad.pamphlet696
1 files changed, 0 insertions, 696 deletions
diff --git a/src/algebra/ffcat.spad.pamphlet b/src/algebra/ffcat.spad.pamphlet
index fea2d28a..c87c4c12 100644
--- a/src/algebra/ffcat.spad.pamphlet
+++ b/src/algebra/ffcat.spad.pamphlet
@@ -704,703 +704,7 @@ generated by first argument")$OutputForm
gcd(f,g)$EuclideanDomain_&(FP)
@
-\section{FFIELDC.lsp BOOTSTRAP}
-{\bf FFIELDC} depends on a chain of files. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf FFIELDC}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf FFIELDC.o} file to the {\bf OUT} directory.
-This is eventually forcibly replaced by a recompiled version.
-Note that this code is not included in the generated catdef.spad file.
-
-<<FFIELDC.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |FiniteFieldCategory;AL| 'NIL)
-
-(DEFUN |FiniteFieldCategory| ()
- (LET (#:G1395)
- (COND
- (|FiniteFieldCategory;AL|)
- (T (SETQ |FiniteFieldCategory;AL| (|FiniteFieldCategory;|))))))
-
-(DEFUN |FiniteFieldCategory;| ()
- (PROG (#0=#:G1393)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|FieldOfPrimeCharacteristic|) (|Finite|)
- (|StepThrough|) (|DifferentialRing|)
- (|mkCategory| '|domain|
- '(((|charthRoot| ($ $)) T)
- ((|conditionP|
- ((|Union| (|Vector| $) "failed")
- (|Matrix| $)))
- T)
- ((|factorsOfCyclicGroupSize|
- ((|List|
- (|Record|
- (|:| |factor| (|Integer|))
- (|:| |exponent| (|Integer|))))))
- T)
- ((|tableForDiscreteLogarithm|
- ((|Table| (|PositiveInteger|)
- (|NonNegativeInteger|))
- (|Integer|)))
- T)
- ((|createPrimitiveElement| ($)) T)
- ((|primitiveElement| ($)) T)
- ((|primitive?| ((|Boolean|) $)) T)
- ((|discreteLog|
- ((|NonNegativeInteger|) $))
- T)
- ((|order| ((|PositiveInteger|) $)) T)
- ((|representationType|
- ((|Union| "prime" "polynomial"
- "normal" "cyclic")))
- T))
- NIL
- '((|PositiveInteger|)
- (|NonNegativeInteger|) (|Boolean|)
- (|Table| (|PositiveInteger|)
- (|NonNegativeInteger|))
- (|Integer|)
- (|List| (|Record|
- (|:| |factor| (|Integer|))
- (|:| |exponent| (|Integer|))))
- (|Matrix| $))
- NIL))
- |FiniteFieldCategory|)
- (SETELT #0# 0 '(|FiniteFieldCategory|))))))
-
-(MAKEPROP '|FiniteFieldCategory| 'NILADIC T)
-@
-\section{FFIELDC-.lsp BOOTSTRAP}
-{\bf FFIELDC-} depends on {\bf FFIELDC}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf FFIELDC-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf FFIELDC-.o} file to the {\bf OUT} directory.
-This is eventually forcibly replaced by a recompiled version.
-
-Note that this code is not included in the generated catdef.spad file.
-
-<<FFIELDC-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |FFIELDC-;differentiate;2S;1| (|x| $) (|spadConstant| $ 7))
-
-(DEFUN |FFIELDC-;init;S;2| ($) (|spadConstant| $ 7))
-
-(DEFUN |FFIELDC-;nextItem;SU;3| (|a| $)
- (COND
- ((SPADCALL
- (LETT |a|
- (SPADCALL (+ (SPADCALL |a| (|getShellEntry| $ 11)) 1)
- (|getShellEntry| $ 12))
- |FFIELDC-;nextItem;SU;3|)
- (|getShellEntry| $ 14))
- (CONS 1 "failed"))
- ('T (CONS 0 |a|))))
-
-(DEFUN |FFIELDC-;order;SOpc;4| (|e| $)
- (SPADCALL (SPADCALL |e| (|getShellEntry| $ 17))
- (|getShellEntry| $ 20)))
-
-(DEFUN |FFIELDC-;conditionP;MU;5| (|mat| $)
- (PROG (|l|)
- (RETURN
- (SEQ (LETT |l| (SPADCALL |mat| (|getShellEntry| $ 25))
- |FFIELDC-;conditionP;MU;5|)
- (COND
- ((OR (NULL |l|)
- (SPADCALL (ELT $ 14) (|SPADfirst| |l|)
- (|getShellEntry| $ 27)))
- (EXIT (CONS 1 "failed"))))
- (EXIT (CONS 0
- (SPADCALL (ELT $ 28) (|SPADfirst| |l|)
- (|getShellEntry| $ 30))))))))
-
-(DEFUN |FFIELDC-;charthRoot;2S;6| (|x| $)
- (SPADCALL |x|
- (QUOTIENT2 (SPADCALL (|getShellEntry| $ 36))
- (SPADCALL (|getShellEntry| $ 37)))
- (|getShellEntry| $ 38)))
-
-(DEFUN |FFIELDC-;charthRoot;SU;7| (|x| $)
- (CONS 0 (SPADCALL |x| (|getShellEntry| $ 28))))
-
-(DEFUN |FFIELDC-;createPrimitiveElement;S;8| ($)
- (PROG (|sm1| |start| |i| #0=#:G1441 |e| |found|)
- (RETURN
- (SEQ (LETT |sm1| (- (SPADCALL (|getShellEntry| $ 36)) 1)
- |FFIELDC-;createPrimitiveElement;S;8|)
- (LETT |start|
- (COND
- ((SPADCALL (SPADCALL (|getShellEntry| $ 43))
- (CONS 1 "polynomial") (|getShellEntry| $ 44))
- (SPADCALL (|getShellEntry| $ 37)))
- ('T 1))
- |FFIELDC-;createPrimitiveElement;S;8|)
- (LETT |found| 'NIL |FFIELDC-;createPrimitiveElement;S;8|)
- (SEQ (LETT |i| |start|
- |FFIELDC-;createPrimitiveElement;S;8|)
- G190
- (COND
- ((NULL (SPADCALL |found| (|getShellEntry| $ 45)))
- (GO G191)))
- (SEQ (LETT |e|
- (SPADCALL
- (PROG1 (LETT #0# |i|
- |FFIELDC-;createPrimitiveElement;S;8|)
- (|check-subtype| (> #0# 0)
- '(|PositiveInteger|) #0#))
- (|getShellEntry| $ 12))
- |FFIELDC-;createPrimitiveElement;S;8|)
- (EXIT (LETT |found|
- (EQL (SPADCALL |e|
- (|getShellEntry| $ 17))
- |sm1|)
- |FFIELDC-;createPrimitiveElement;S;8|)))
- (LETT |i| (+ |i| 1)
- |FFIELDC-;createPrimitiveElement;S;8|)
- (GO G190) G191 (EXIT NIL))
- (EXIT |e|)))))
-
-(DEFUN |FFIELDC-;primitive?;SB;9| (|a| $)
- (PROG (|explist| |q| |exp| #0=#:G1453 |equalone|)
- (RETURN
- (SEQ (COND
- ((SPADCALL |a| (|getShellEntry| $ 14)) 'NIL)
- ('T
- (SEQ (LETT |explist| (SPADCALL (|getShellEntry| $ 49))
- |FFIELDC-;primitive?;SB;9|)
- (LETT |q| (- (SPADCALL (|getShellEntry| $ 36)) 1)
- |FFIELDC-;primitive?;SB;9|)
- (LETT |equalone| 'NIL |FFIELDC-;primitive?;SB;9|)
- (SEQ (LETT |exp| NIL |FFIELDC-;primitive?;SB;9|)
- (LETT #0# |explist| |FFIELDC-;primitive?;SB;9|)
- G190
- (COND
- ((OR (ATOM #0#)
- (PROGN
- (LETT |exp| (CAR #0#)
- |FFIELDC-;primitive?;SB;9|)
- NIL)
- (NULL (SPADCALL |equalone|
- (|getShellEntry| $ 45))))
- (GO G191)))
- (SEQ (EXIT (LETT |equalone|
- (SPADCALL
- (SPADCALL |a|
- (QUOTIENT2 |q| (QCAR |exp|))
- (|getShellEntry| $ 50))
- (|spadConstant| $ 41)
- (|getShellEntry| $ 51))
- |FFIELDC-;primitive?;SB;9|)))
- (LETT #0# (CDR #0#) |FFIELDC-;primitive?;SB;9|)
- (GO G190) G191 (EXIT NIL))
- (EXIT (SPADCALL |equalone| (|getShellEntry| $ 45))))))))))
-
-(DEFUN |FFIELDC-;order;SPi;10| (|e| $)
- (PROG (|lof| |rec| #0=#:G1461 |primeDivisor| |j| #1=#:G1462 |a|
- |goon| |ord|)
- (RETURN
- (SEQ (COND
- ((SPADCALL |e| (|spadConstant| $ 7)
- (|getShellEntry| $ 51))
- (|error| "order(0) is not defined "))
- ('T
- (SEQ (LETT |ord| (- (SPADCALL (|getShellEntry| $ 36)) 1)
- |FFIELDC-;order;SPi;10|)
- (LETT |a| 0 |FFIELDC-;order;SPi;10|)
- (LETT |lof| (SPADCALL (|getShellEntry| $ 49))
- |FFIELDC-;order;SPi;10|)
- (SEQ (LETT |rec| NIL |FFIELDC-;order;SPi;10|)
- (LETT #0# |lof| |FFIELDC-;order;SPi;10|) G190
- (COND
- ((OR (ATOM #0#)
- (PROGN
- (LETT |rec| (CAR #0#)
- |FFIELDC-;order;SPi;10|)
- NIL))
- (GO G191)))
- (SEQ (LETT |a|
- (QUOTIENT2 |ord|
- (LETT |primeDivisor| (QCAR |rec|)
- |FFIELDC-;order;SPi;10|))
- |FFIELDC-;order;SPi;10|)
- (LETT |goon|
- (SPADCALL
- (SPADCALL |e| |a|
- (|getShellEntry| $ 50))
- (|spadConstant| $ 41)
- (|getShellEntry| $ 51))
- |FFIELDC-;order;SPi;10|)
- (SEQ (LETT |j| 0 |FFIELDC-;order;SPi;10|)
- (LETT #1# (- (QCDR |rec|) 2)
- |FFIELDC-;order;SPi;10|)
- G190
- (COND
- ((OR (QSGREATERP |j| #1#)
- (NULL |goon|))
- (GO G191)))
- (SEQ (LETT |ord| |a|
- |FFIELDC-;order;SPi;10|)
- (LETT |a|
- (QUOTIENT2 |ord|
- |primeDivisor|)
- |FFIELDC-;order;SPi;10|)
- (EXIT
- (LETT |goon|
- (SPADCALL
- (SPADCALL |e| |a|
- (|getShellEntry| $ 50))
- (|spadConstant| $ 41)
- (|getShellEntry| $ 51))
- |FFIELDC-;order;SPi;10|)))
- (LETT |j| (QSADD1 |j|)
- |FFIELDC-;order;SPi;10|)
- (GO G190) G191 (EXIT NIL))
- (EXIT (COND
- (|goon|
- (LETT |ord| |a|
- |FFIELDC-;order;SPi;10|)))))
- (LETT #0# (CDR #0#) |FFIELDC-;order;SPi;10|)
- (GO G190) G191 (EXIT NIL))
- (EXIT |ord|))))))))
-
-(DEFUN |FFIELDC-;discreteLog;SNni;11| (|b| $)
- (PROG (|faclist| |gen| |groupord| |f| #0=#:G1482 |fac| |t| #1=#:G1483
- |exp| |exptable| |n| |end| |i| |rho| |found| |disc1| |c|
- |mult| |disclog| |a|)
- (RETURN
- (SEQ (COND
- ((SPADCALL |b| (|getShellEntry| $ 14))
- (|error| "discreteLog: logarithm of zero"))
- ('T
- (SEQ (LETT |faclist| (SPADCALL (|getShellEntry| $ 49))
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |a| |b| |FFIELDC-;discreteLog;SNni;11|)
- (LETT |gen| (SPADCALL (|getShellEntry| $ 54))
- |FFIELDC-;discreteLog;SNni;11|)
- (EXIT (COND
- ((SPADCALL |b| |gen| (|getShellEntry| $ 51))
- 1)
- ('T
- (SEQ (LETT |disclog| 0
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |mult| 1
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |groupord|
- (-
- (SPADCALL
- (|getShellEntry| $ 36))
- 1)
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |exp| |groupord|
- |FFIELDC-;discreteLog;SNni;11|)
- (SEQ (LETT |f| NIL
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT #0# |faclist|
- |FFIELDC-;discreteLog;SNni;11|)
- G190
- (COND
- ((OR (ATOM #0#)
- (PROGN
- (LETT |f| (CAR #0#)
- |FFIELDC-;discreteLog;SNni;11|)
- NIL))
- (GO G191)))
- (SEQ
- (LETT |fac| (QCAR |f|)
- |FFIELDC-;discreteLog;SNni;11|)
- (EXIT
- (SEQ
- (LETT |t| 0
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT #1# (- (QCDR |f|) 1)
- |FFIELDC-;discreteLog;SNni;11|)
- G190
- (COND
- ((QSGREATERP |t| #1#)
- (GO G191)))
- (SEQ
- (LETT |exp|
- (QUOTIENT2 |exp| |fac|)
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |exptable|
- (SPADCALL |fac|
- (|getShellEntry| $ 56))
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |n|
- (SPADCALL |exptable|
- (|getShellEntry| $ 57))
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |c|
- (SPADCALL |a| |exp|
- (|getShellEntry| $ 50))
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |end|
- (QUOTIENT2 (- |fac| 1) |n|)
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |found| 'NIL
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |disc1| 0
- |FFIELDC-;discreteLog;SNni;11|)
- (SEQ
- (LETT |i| 0
- |FFIELDC-;discreteLog;SNni;11|)
- G190
- (COND
- ((OR
- (QSGREATERP |i| |end|)
- (NULL
- (SPADCALL |found|
- (|getShellEntry| $ 45))))
- (GO G191)))
- (SEQ
- (LETT |rho|
- (SPADCALL
- (SPADCALL |c|
- (|getShellEntry| $ 11))
- |exptable|
- (|getShellEntry| $ 59))
- |FFIELDC-;discreteLog;SNni;11|)
- (EXIT
- (COND
- ((QEQCAR |rho| 0)
- (SEQ
- (LETT |found| 'T
- |FFIELDC-;discreteLog;SNni;11|)
- (EXIT
- (LETT |disc1|
- (*
- (+ (* |n| |i|)
- (QCDR |rho|))
- |mult|)
- |FFIELDC-;discreteLog;SNni;11|))))
- ('T
- (LETT |c|
- (SPADCALL |c|
- (SPADCALL |gen|
- (*
- (QUOTIENT2
- |groupord| |fac|)
- (- |n|))
- (|getShellEntry| $
- 50))
- (|getShellEntry| $
- 60))
- |FFIELDC-;discreteLog;SNni;11|)))))
- (LETT |i| (QSADD1 |i|)
- |FFIELDC-;discreteLog;SNni;11|)
- (GO G190) G191 (EXIT NIL))
- (EXIT
- (COND
- (|found|
- (SEQ
- (LETT |mult|
- (* |mult| |fac|)
- |FFIELDC-;discreteLog;SNni;11|)
- (LETT |disclog|
- (+ |disclog| |disc1|)
- |FFIELDC-;discreteLog;SNni;11|)
- (EXIT
- (LETT |a|
- (SPADCALL |a|
- (SPADCALL |gen|
- (- |disc1|)
- (|getShellEntry| $
- 50))
- (|getShellEntry| $
- 60))
- |FFIELDC-;discreteLog;SNni;11|))))
- ('T
- (|error|
- "discreteLog: ?? discrete logarithm")))))
- (LETT |t| (QSADD1 |t|)
- |FFIELDC-;discreteLog;SNni;11|)
- (GO G190) G191 (EXIT NIL))))
- (LETT #0# (CDR #0#)
- |FFIELDC-;discreteLog;SNni;11|)
- (GO G190) G191 (EXIT NIL))
- (EXIT |disclog|))))))))))))
-
-(DEFUN |FFIELDC-;discreteLog;2SU;12| (|logbase| |b| $)
- (PROG (|groupord| |faclist| |f| #0=#:G1501 |fac| |primroot| |t|
- #1=#:G1502 |exp| |rhoHelp| #2=#:G1500 |rho| |disclog|
- |mult| |a|)
- (RETURN
- (SEQ (EXIT (COND
- ((SPADCALL |b| (|getShellEntry| $ 14))
- (SEQ (SPADCALL "discreteLog: logarithm of zero"
- (|getShellEntry| $ 65))
- (EXIT (CONS 1 "failed"))))
- ((SPADCALL |logbase| (|getShellEntry| $ 14))
- (SEQ (SPADCALL
- "discreteLog: logarithm to base zero"
- (|getShellEntry| $ 65))
- (EXIT (CONS 1 "failed"))))
- ((SPADCALL |b| |logbase| (|getShellEntry| $ 51))
- (CONS 0 1))
- ('T
- (COND
- ((NULL (ZEROP (REMAINDER2
- (LETT |groupord|
- (SPADCALL |logbase|
- (|getShellEntry| $ 17))
- |FFIELDC-;discreteLog;2SU;12|)
- (SPADCALL |b|
- (|getShellEntry| $ 17)))))
- (SEQ (SPADCALL
- "discreteLog: second argument not in cyclic group generated by first argument"
- (|getShellEntry| $ 65))
- (EXIT (CONS 1 "failed"))))
- ('T
- (SEQ (LETT |faclist|
- (SPADCALL
- (SPADCALL |groupord|
- (|getShellEntry| $ 67))
- (|getShellEntry| $ 69))
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |a| |b|
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |disclog| 0
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |mult| 1
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |exp| |groupord|
- |FFIELDC-;discreteLog;2SU;12|)
- (SEQ (LETT |f| NIL
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT #0# |faclist|
- |FFIELDC-;discreteLog;2SU;12|)
- G190
- (COND
- ((OR (ATOM #0#)
- (PROGN
- (LETT |f| (CAR #0#)
- |FFIELDC-;discreteLog;2SU;12|)
- NIL))
- (GO G191)))
- (SEQ (LETT |fac| (QCAR |f|)
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |primroot|
- (SPADCALL |logbase|
- (QUOTIENT2 |groupord| |fac|)
- (|getShellEntry| $ 50))
- |FFIELDC-;discreteLog;2SU;12|)
- (EXIT
- (SEQ
- (LETT |t| 0
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT #1# (- (QCDR |f|) 1)
- |FFIELDC-;discreteLog;2SU;12|)
- G190
- (COND
- ((QSGREATERP |t| #1#)
- (GO G191)))
- (SEQ
- (LETT |exp|
- (QUOTIENT2 |exp| |fac|)
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |rhoHelp|
- (SPADCALL |primroot|
- (SPADCALL |a| |exp|
- (|getShellEntry| $ 50))
- |fac|
- (|getShellEntry| $ 71))
- |FFIELDC-;discreteLog;2SU;12|)
- (EXIT
- (COND
- ((QEQCAR |rhoHelp| 1)
- (PROGN
- (LETT #2#
- (CONS 1 "failed")
- |FFIELDC-;discreteLog;2SU;12|)
- (GO #2#)))
- ('T
- (SEQ
- (LETT |rho|
- (* (QCDR |rhoHelp|)
- |mult|)
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |disclog|
- (+ |disclog| |rho|)
- |FFIELDC-;discreteLog;2SU;12|)
- (LETT |mult|
- (* |mult| |fac|)
- |FFIELDC-;discreteLog;2SU;12|)
- (EXIT
- (LETT |a|
- (SPADCALL |a|
- (SPADCALL |logbase|
- (- |rho|)
- (|getShellEntry| $
- 50))
- (|getShellEntry| $ 60))
- |FFIELDC-;discreteLog;2SU;12|)))))))
- (LETT |t| (QSADD1 |t|)
- |FFIELDC-;discreteLog;2SU;12|)
- (GO G190) G191 (EXIT NIL))))
- (LETT #0# (CDR #0#)
- |FFIELDC-;discreteLog;2SU;12|)
- (GO G190) G191 (EXIT NIL))
- (EXIT (CONS 0 |disclog|))))))))
- #2# (EXIT #2#)))))
-
-(DEFUN |FFIELDC-;squareFreePolynomial| (|f| $)
- (SPADCALL |f| (|getShellEntry| $ 76)))
-
-(DEFUN |FFIELDC-;factorPolynomial| (|f| $)
- (SPADCALL |f| (|getShellEntry| $ 78)))
-
-(DEFUN |FFIELDC-;factorSquareFreePolynomial| (|f| $)
- (PROG (|flist| |u| #0=#:G1515 #1=#:G1512 #2=#:G1510 #3=#:G1511)
- (RETURN
- (SEQ (COND
- ((SPADCALL |f| (|spadConstant| $ 79)
- (|getShellEntry| $ 80))
- (|spadConstant| $ 81))
- ('T
- (SEQ (LETT |flist|
- (SPADCALL |f| 'T (|getShellEntry| $ 85))
- |FFIELDC-;factorSquareFreePolynomial|)
- (EXIT (SPADCALL
- (SPADCALL (QCAR |flist|)
- (|getShellEntry| $ 86))
- (PROGN
- (LETT #3# NIL
- |FFIELDC-;factorSquareFreePolynomial|)
- (SEQ (LETT |u| NIL
- |FFIELDC-;factorSquareFreePolynomial|)
- (LETT #0# (QCDR |flist|)
- |FFIELDC-;factorSquareFreePolynomial|)
- G190
- (COND
- ((OR (ATOM #0#)
- (PROGN
- (LETT |u| (CAR #0#)
- |FFIELDC-;factorSquareFreePolynomial|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (PROGN
- (LETT #1#
- (SPADCALL (QCAR |u|)
- (QCDR |u|)
- (|getShellEntry| $ 87))
- |FFIELDC-;factorSquareFreePolynomial|)
- (COND
- (#3#
- (LETT #2#
- (SPADCALL #2# #1#
- (|getShellEntry| $ 88))
- |FFIELDC-;factorSquareFreePolynomial|))
- ('T
- (PROGN
- (LETT #2# #1#
- |FFIELDC-;factorSquareFreePolynomial|)
- (LETT #3# 'T
- |FFIELDC-;factorSquareFreePolynomial|)))))))
- (LETT #0# (CDR #0#)
- |FFIELDC-;factorSquareFreePolynomial|)
- (GO G190) G191 (EXIT NIL))
- (COND
- (#3# #2#)
- ('T (|spadConstant| $ 89))))
- (|getShellEntry| $ 90))))))))))
-
-(DEFUN |FFIELDC-;gcdPolynomial;3Sup;16| (|f| |g| $)
- (SPADCALL |f| |g| (|getShellEntry| $ 92)))
-
-(DEFUN |FiniteFieldCategory&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|FiniteFieldCategory&|))
- (LETT |dv$| (LIST '|FiniteFieldCategory&| |dv$1|) . #0#)
- (LETT $ (|newShell| 95) . #0#)
- (|setShellEntry| $ 0 |dv$|)
- (|setShellEntry| $ 3
- (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (|setShellEntry| $ 6 |#1|)
- $))))
-
-(MAKEPROP '|FiniteFieldCategory&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |Zero|)
- |FFIELDC-;differentiate;2S;1| |FFIELDC-;init;S;2|
- (|PositiveInteger|) (4 . |lookup|) (9 . |index|)
- (|Boolean|) (14 . |zero?|) (|Union| $ '"failed")
- |FFIELDC-;nextItem;SU;3| (19 . |order|) (|Integer|)
- (|OnePointCompletion| 10) (24 . |coerce|)
- |FFIELDC-;order;SOpc;4| (|Vector| 6) (|List| 22)
- (|Matrix| 6) (29 . |nullSpace|) (|Mapping| 13 6)
- (34 . |every?|) (40 . |charthRoot|) (|Mapping| 6 6)
- (45 . |map|) (|Vector| $) (|Union| 31 '"failed")
- (|Matrix| $) |FFIELDC-;conditionP;MU;5|
- (|NonNegativeInteger|) (51 . |size|)
- (55 . |characteristic|) (59 . **)
- |FFIELDC-;charthRoot;2S;6| |FFIELDC-;charthRoot;SU;7|
- (65 . |One|)
- (|Union| '"prime" '"polynomial" '"normal" '"cyclic")
- (69 . |representationType|) (73 . =) (79 . |not|)
- |FFIELDC-;createPrimitiveElement;S;8|
- (|Record| (|:| |factor| 18) (|:| |exponent| 18))
- (|List| 47) (84 . |factorsOfCyclicGroupSize|) (88 . **)
- (94 . =) |FFIELDC-;primitive?;SB;9|
- |FFIELDC-;order;SPi;10| (100 . |primitiveElement|)
- (|Table| 10 35) (104 . |tableForDiscreteLogarithm|)
- (109 . |#|) (|Union| 35 '"failed") (114 . |search|)
- (120 . *) |FFIELDC-;discreteLog;SNni;11| (|Void|)
- (|String|) (|OutputForm|) (126 . |messagePrint|)
- (|Factored| $) (131 . |factor|) (|Factored| 18)
- (136 . |factors|) (|DiscreteLogarithmPackage| 6)
- (141 . |shanksDiscLogAlgorithm|)
- |FFIELDC-;discreteLog;2SU;12|
- (|SparseUnivariatePolynomial| 6) (|Factored| 73)
- (|UnivariatePolynomialSquareFree| 6 73)
- (148 . |squareFree|) (|DistinctDegreeFactorize| 6 73)
- (153 . |factor|) (158 . |Zero|) (162 . =) (168 . |Zero|)
- (|Record| (|:| |irr| 73) (|:| |pow| 18)) (|List| 82)
- (|Record| (|:| |cont| 6) (|:| |factors| 83))
- (172 . |distdfact|) (178 . |coerce|) (183 . |primeFactor|)
- (189 . *) (195 . |One|) (199 . *) (|EuclideanDomain&| 73)
- (205 . |gcd|) (|SparseUnivariatePolynomial| $)
- |FFIELDC-;gcdPolynomial;3Sup;16|)
- '#(|primitive?| 211 |order| 216 |nextItem| 226 |init| 231
- |gcdPolynomial| 235 |discreteLog| 241 |differentiate| 252
- |createPrimitiveElement| 257 |conditionP| 261 |charthRoot|
- 266)
- 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 94
- '(0 6 0 7 1 6 10 0 11 1 6 0 10 12 1 6
- 13 0 14 1 6 10 0 17 1 19 0 18 20 1 24
- 23 0 25 2 22 13 26 0 27 1 6 0 0 28 2
- 22 0 29 0 30 0 6 35 36 0 6 35 37 2 6
- 0 0 35 38 0 6 0 41 0 6 42 43 2 42 13
- 0 0 44 1 13 0 0 45 0 6 48 49 2 6 0 0
- 18 50 2 6 13 0 0 51 0 6 0 54 1 6 55
- 18 56 1 55 35 0 57 2 55 58 10 0 59 2
- 6 0 0 0 60 1 64 62 63 65 1 18 66 0 67
- 1 68 48 0 69 3 70 58 6 6 35 71 1 75
- 74 73 76 1 77 74 73 78 0 73 0 79 2 73
- 13 0 0 80 0 74 0 81 2 77 84 73 13 85
- 1 73 0 6 86 2 74 0 73 18 87 2 74 0 0
- 0 88 0 74 0 89 2 74 0 73 0 90 2 91 0
- 0 0 92 1 0 13 0 52 1 0 10 0 53 1 0 19
- 0 21 1 0 15 0 16 0 0 0 9 2 0 93 93 93
- 94 1 0 35 0 61 2 0 58 0 0 72 1 0 0 0
- 8 0 0 0 46 1 0 32 33 34 1 0 0 0 39 1
- 0 15 0 40)))))
- '|lookupComplete|))
-@
\section{package FFSLPE FiniteFieldSolveLinearPolynomialEquation}
<<package FFSLPE FiniteFieldSolveLinearPolynomialEquation>>=
)abbrev package FFSLPE FiniteFieldSolveLinearPolynomialEquation