William, Martin,

I guessed there was some magic in the machinery that does row echelon
reductions.  That was part of the reason I thought  the row-echelon
approach might be faster.

It's easy enough for me to substitute my own naive code to do the row
echelon reductions, and see how that affects the speed.  I'm also
going to try using sparse matrices.

Is there any easy way for me to count  multiplications and additions
when  reduce() is used to do a Groebner basis reduction?  If not, then
how easy would it be to count multiplications and additions if I write
my own version of reduce(), but use the normal multiplication and
addition operations on polynomials?

Jeff

On Feb 15, 3:24 am, Martin Albrecht <m...@informatik.uni-bremen.de>
wrote:
> On Monday 15 February 2010, William Stein wrote:
>
>
>
> > On Sun, Feb 14, 2010 at 8:49 PM, Jeff Stroomer <jstroom...@hotmail.com>
> wrote:
> > > William,
>
> > > I used GF(101), GF(1009), and GF(1000099).
>
> > > Jeff
>
> > In Sage, echelon form over at least the first two of these fields uses
> > the C++ Linbox library.  That library in turn does computation of
> > echelon forms using a very complicated asymptotically fast
> > Strassen-style block algorithm that reduces the problem to clever use
> > of matrix multiplications.  Matrix multiplication over finite fields
> > is in turn done using yet another Strassen-based algorithm that
> > reduces matrix mutiplication over a finite field to many matrix
> > multiplications with floating point numbers, which is typically done
> > using ATLAS.  ATLAS itself can be tuned in many ways, depending on
> > hardware, whether Sage is installed from a binary or source, etc.,
> > which can easily cause up to a factor of 5 (or so) in performance.
>
> > Anyway, the point of the above remark is just that the actual default
> > algorithm used for echelonization of a matrix over a finite field in
> > Sage is probably much, much more complicated than you might at first
> > guess.
>
> Also, if you don't explicitly specify that you want a sparse matrix your
> matrix will be densely represented, while multivariate polynomials are always
> sparse-ly represented (by a list of monomials).
>
> Cheers,
> Martin
>
> --
> name: Martin Albrecht
> _pgp:http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
> _otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
> _www:http://www.informatik.uni-bremen.de/~malb
> _jab: martinralbre...@jabber.ccc.de

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to