-
-
Notifications
You must be signed in to change notification settings - Fork 688
Open
Description
Basic arithmetic in libSingular seems to be slower than in Singular (used via pexpect):
sage: P.<x,y,z> = QQ[]
sage: def test1(x,y,z):
....: for i in range(100):
....: p = (x+y+z)^i
....:
sage: def test2(x,y,z):
....: x = singular(x)
....: y = singular(y)
....: z = singular(z)
....: for i in range(100):
....: p = (x+y+z)^i
....:
sage: %time test1(x,y,z)
CPU times: user 2.66 s, sys: 0.00 s, total: 2.66 s
Wall time: 2.67 s
sage: %time test2(x,y,z)
CPU times: user 0.15 s, sys: 0.08 s, total: 0.23 s
Wall time: 1.94 s
These timings were with sage-4.6.2, but they are similar with sage-4.7.2.alpha_whatever. Martin confirms these timings, and finds that similar things also occur with multiplication.
Citing Martin:
However, mod p it seems libSingular wins. Hence my guess:
we are using different memory allocation functions for GMP
and these functions might be slower (for Singular's use case)?
Component: commutative algebra
Issue created by migration from https://trac.sagemath.org/ticket/11957