#18749: Groebner basis computations with the F4 algorithm
-------------------------------------+-------------------------------------
       Reporter:  tcoladon           |        Owner:
           Type:  enhancement        |       Status:  new
       Priority:  major              |    Milestone:  sage-6.8
      Component:  packages:          |   Resolution:
  optional                           |    Merged in:
       Keywords:  F4, groebner       |    Reviewers:
  basis, ideal                       |  Work issues:
        Authors:  Titouan Coladon    |       Commit:
Report Upstream:  N/A                |  75f896ac8673a5d0f8105aba9d287260327ed4c3
         Branch:  u/malb/t18749_f4   |     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------
Changes (by malb):

 * commit:  a2e200283801b3ad9c65542e598ba751663c5c4f =>
     75f896ac8673a5d0f8105aba9d287260327ed4c3
 * branch:  u/tcoladon/f4 => u/malb/t18749_f4


Comment:

 - f4 is rather generic for a software project implementing the F4
 algorithm. If possible, it would be good to rename it (I know this is
 rather invasive). If you agree to rename this would affect the tarball,
 the file in the Sage library and the name of the algorithm when calling
 groebner_basis().


 - I think the pyx file should be moved to
 {{{sage.libs.<libraryname>.<libraryname>.pyx}}}

 - I improved conversion a bit:

 {{{#!python
 # before
 sage: P = PolynomialRing(GF(next_prime(2^31)), 8, 'x')
 sage: I = sage.rings.ideal.Cyclic(P)
 sage: from sage.rings.polynomial.groebner_basis_f4 import
 groebner_basis_f4
 sage: %time gb0 = groebner_basis_f4(I)
 6.4465777874 # <- conversion time
 CPU times: user 14.8 s, sys: 400 ms, total: 15.2 s
 Wall time: 15.2 s

 # after
 sage: P = PolynomialRing(GF(next_prime(2^31)), 8, 'x')
 sage: I = sage.rings.ideal.Cyclic(P)
 sage: %time gb0 = groebner_basis_f4(I)
 3.16141104698 # <- conversion time
 CPU times: user 11.8 s, sys: 144 ms, total: 12 s
 Wall time: 11.9 s
 }}}

 - I cleaned the module up a bit under u/malb/t18749_f4
 ----
 Last 10 new commits:
 
||[http://git.sagemath.org/sage.git/commit/?id=013879b34cf09feff22d42db71f053c2d6b7f3cc
 013879b]||{{{fix doctests & documentation}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=bfbb119dfcf254568859c0033e891141d57e8ac9
 bfbb119]||{{{obey line width}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=676b7984d0da948c196240b0b96535771207f9b6
 676b798]||{{{rename modulo → modulus & raise error instead of printing to
 stddout}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=b324306766c26ee90866aa823ef6c69777fe1735
 b324306]||{{{test exception}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=75f830276939d48fa68a246519a200ec603ebd99
 75f8302]||{{{specialised conversion from F4 string representation}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=0c76dbbffe3931c5a11189f6f12d2467491ba784
 0c76dbb]||{{{delete trailing whitespaces}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=10d8af576b0066ab26453fba66b164cc3509ee8e
 10d8af5]||{{{return converted basis not strings}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=24e2191f0b26bf29c6c5f5faabcabb5ee50d2e0b
 24e2191]||{{{Sage-ify interface to F4 more}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=48cf3c4e7902e6022cd950af9be675a8664f1fa1
 48cf3c4]||{{{mark more doctests optional - f4}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=75f896ac8673a5d0f8105aba9d287260327ed4c3
 75f896a]||{{{fix prot interface for F4}}}||

--
Ticket URL: <http://trac.sagemath.org/ticket/18749#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to