axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20080314.01.wxh.patch (heugcd fricas rev 256)


From: daly
Subject: [Axiom-developer] 20080314.01.wxh.patch (heugcd fricas rev 256)
Date: Fri, 14 Mar 2008 21:00:20 -0600

This is a port of the HEUGCD Fricas revision 256 patch. The patch causes
memory overflows in the default size (256*1024) maxpages in GCL for the
differential equation test suite (specifically in kamke2). Thus the
limit is raised here. There is a new regression test file, heugcd.input.

Tim
=======================================================================
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-LOCBFD>>=
 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}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]