diff --git a/Makefile.pamphlet b/Makefile.pamphlet index cf1de09..f5354c8 100644 --- a/Makefile.pamphlet +++ b/Makefile.pamphlet @@ -772,7 +772,7 @@ Error: Cannot get relocated section contents \end{verbatim} <>= GCLOPTS="--enable-vssize=65536*2 --enable-locbfd --disable-dynsysbfd \ - --disable-statsysbfd --enable-maxpage=256*1024 --disable-xgcl \ + --disable-statsysbfd --enable-maxpage=512*1024 --disable-xgcl \ --disable-tkconfig" @ For the MACOSX port we need the following options. The ``--disable-nls'' means diff --git a/changelog b/changelog index 6a0d90e..1076313 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20080314 tpd Makefile --enable-maxpage=512*1024 due to kamke2 +20080314 tpd src/input/Makefile add heugcd.input +20080314 tpd src/input/heugcd.input regression test listgcd change +20080314 wxh src/algebra/listgcd.spad add check for bad reduction (rev 256) 20080313 pab src/interp/hashcode.boot make Mapping hash correct for Aldor 20080312 tpd src/algebra/intfact.spad speed BasicSieve, prime, add docs 20080305 tpd src/hyper/bookvol11 add additional hyperdoc page translations diff --git a/src/algebra/listgcd.spad.pamphlet b/src/algebra/listgcd.spad.pamphlet index f626adb..8cbcebe 100644 --- a/src/algebra/listgcd.spad.pamphlet +++ b/src/algebra/listgcd.spad.pamphlet @@ -34,6 +34,10 @@ HeuGcd (BP):C == T C == with gcd : List BP -> BP ++ gcd([f1,..,fk]) = gcd of the polynomials fi. + ++ + ++E gcd([671*671*x^2-1,671*671*x^2+2*671*x+1]) + ++E gcd([7*x^2+1,(7*x^2+1)^2]) + gcdprim : List BP -> BP ++ gcdprim([f1,..,fk]) = gcd of k PRIMITIVE univariate polynomials gcdcofact : List BP -> List BP @@ -196,9 +200,13 @@ HeuGcd (BP):C == T minpol:=contgcd*minpol listdeg:=[degree f for f in listf ] f:= first listf - for g in rest listf repeat - f:=gcd(f,g,bigPrime) - if degree f = 0 then return cons(minpol,listf) + if positiveRemainder(leadingCoefficient(f), bigPrime) ~= 0 then + for g in rest listf repeat + lcg := leadingCoefficient(g) + if positiveRemainder(lcg, bigPrime) = 0 then + leave + f:=gcd(f,g,bigPrime) + if degree f = 0 then return cons(minpol,listf) ans:List BP := --one polynomial is constant member?(0,listdeg) => constcase(listdeg,listf) diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet index a54a9e7..2b626c3 100644 --- a/src/input/Makefile.pamphlet +++ b/src/input/Makefile.pamphlet @@ -320,7 +320,8 @@ REGRES= algaggr.regress algbrbf.regress algfacob.regress alist.regress \ galois.regress gamma.regress \ gbf.regress genups.regress gonshor.regress grpthry.regress \ gstbl.regress heap.regress heat.regress help.regress \ - herm.regress hexadec.regress ico.regress ideal.regress \ + herm.regress heugcd.regress \ + hexadec.regress ico.regress ideal.regress \ ifact.regress infprod.regress intaf.regress intbypart.regress \ intdeq.regress \ intef2.regress intef.regress intg0.regress intheory.regress \ @@ -566,7 +567,8 @@ FILES= ${OUT}/algaggr.input ${OUT}/algbrbf.input ${OUT}/algfacob.input \ ${OUT}/gonshor.input ${OUT}/grdef.input \ ${OUT}/gstbl.input \ ${OUT}/heap.input ${OUT}/heat.input ${OUT}/helix.input \ - ${OUT}/herm.input ${OUT}/hexadec.input ${OUT}/huang.input \ + ${OUT}/herm.input ${OUT}/heugcd.input \ + ${OUT}/hexadec.input ${OUT}/huang.input \ ${OUT}/ico.input ${OUT}/ideal.input ${OUT}/ifact.input \ ${OUT}/images1.input ${OUT}/images1a.input ${OUT}/images3a.input \ ${OUT}/images3.input ${OUT}/images6.input ${OUT}/images6a.input \ @@ -836,6 +838,7 @@ DOCFILES= \ ${DOC}/gstbl.input.dvi ${DOC}/heap.input.dvi \ ${DOC}/heat.input.dvi ${DOC}/helix.input.dvi \ ${DOC}/help.input.dvi ${DOC}/herm.input.dvi \ + ${DOC}/heugcd.input.dvi \ ${DOC}/hexadec.input.dvi ${DOC}/hilbert.as.dvi \ ${DOC}/huang.input.dvi ${DOC}/ico.input.dvi \ ${DOC}/ideal.input.dvi ${DOC}/ifact.input.dvi \ diff --git a/src/input/heugcd.input.pamphlet b/src/input/heugcd.input.pamphlet new file mode 100644 index 0000000..9541d31 --- /dev/null +++ b/src/input/heugcd.input.pamphlet @@ -0,0 +1,66 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input heugcd.input} +\author{Waldek Hebisch and Timothy Daly} +\maketitle +\begin{abstract} +This is a test of revision 256 of FriCAS which changed +the gcd function in listgcd.spad.pamphlet. +\end{abstract} +\eject +\tableofcontents +\eject +Of these examples, all but the first used to return 1. +This is a test of revision 256 of FriCAS which changed +the gcd function in listgcd.spad.pamphlet. +@ +<<*>>= +)spool heugcd.output +)set message test on +)set message auto off +)clear all + +--S 1 of 5 +gcd([0,0,x^2-1,x^2+2*x+1]) +--R +--R (1) x + 1 +--R Type: Polynomial Integer +--E 1 + +--S 2 of 5 +gcd([0,0,x^2-1,x^2+2*x+1])$HeuGcd(SparseUnivariatePolynomial Integer) +--R +--R (2) ? + 1 +--R Type: SparseUnivariatePolynomial Integer +--E 2 + +--S 3 of 5 +gcd(6*x^2-1,36*x^2+12*x+1) +--R +--R (3) 1 +--R Type: Polynomial Integer +--E 3 + +--S 4 of 5 +gcd([36*x^2-1,36*x^2+12*x+1]) +--R +--R (4) 6x + 1 +--R Type: Polynomial Integer +--E 4 + +--S 5 of 5 +gcd([36*x^2-1,36*x^2+12*x+1])$HeuGcd(SparseUnivariatePolynomial Integer) +--R +--R (5) 6? + 1 +--R Type: SparseUnivariatePolynomial Integer +--E 5 +)spool +)lisp (bye) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} http://fricas.svn.sourceforge.net/fricas/?rev=256\&view=rev +\end{thebibliography} +\end{document}