On Apr 1, 11:36 pm, Michael Brickenstein <[EMAIL PROTECTED]> wrote:
> I don't find it very impressive, posting some benchmark for just one
> example.

There are 4 benchmarks in 
http://www.cecm.sfu.ca/~rpearcea/sdmp/2008_04_01/benchmarks.txt
6376 x 46376 = 635376 terms (dense, 4 variables)
26599 x 36365 = 19631157 terms (sparse, 10 variables)
6188 x 6188 = 5821335 terms (very sparse, 5 variables)
531441 / 15625 terms = 15625 quotient + 515816 remainder (dense, 6
variables)

The last one is a pseudo-division, and Singular messed up.  I bet it
scales the entire dividend every time something is merged into the
geobucket, or whenever the leading term of the geobucket is computed.
This could be easily fixed.  Otherwise Singular performed very well on
the division benchmarks.

Also, while I'm on the topic of Singular's geobucket implementation, I
looked at the code and it looks like there are buckets for each
coefficient ?  I'm not sure.  Anyways, you should store a denominator
for each bucket, and integer coefficients in the polynomials.  Then
store a multiplier for each bucket that you use to merge leading
terms.  For a pseudo-division f / g = (q,r) that would give you N*log
N multiplications in Z, where N = f + q*g.  That's not as good as my
implementation, but it would perform well in practice.

> Note, that the example is dense.
> If he is using fast (Strassen-like) algorithms, then it is quite
> natural, to achieve
> good results in these problems.

I can assure you, for an n x m multiplication we multiply, sort, and
merge n*m products of terms.  The sorting is O(n*m*log(min(n,m))).
For a division f/g = (q,r), the sorting is O(f + q*g*log(min(q,g)))
comparisons, whereas I believe geobuckets are N*log N where N = f +
q*g in the worst case and N*log(g) on average.

Also I would like to credit the Singular group for designing the fast
packed monomial representations that I use (with modifications).  That
is in the paper of course.
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to