Macaulay2 / mathicgb

Compute (signature) Groebner bases using the fast datastructures from mathic.
2 stars 4 forks source link

Raise maximum bit length of the modulus + use SIMD vectorization #20

Open mahrud opened 4 years ago

mahrud commented 4 years ago

See https://github.com/Macaulay2/M2/pull/1385#issuecomment-667580429:

R = ZZ/10000019[x,y,z];
groebnerBasis(ideal gens R, Strategy => "MGB")
-- stdio:2:1:(3): error: ERROR: Modulus 10000019 is too large. MathicGB only supports 16 bit moduli.

Either raise 16bit to something more reasonable like 32 or 64, or make sure we're using SIMD vectorization; i.e., doing 4 16bit additions in one operation. Modern CPUs support much larger vectorization lengths, for instance: