The solution to increase the speed in the addition of many terms are
"geo buckets", implemented in the type sBucket in Singular.
Instead of having +: poly, poly -> poly and =:poly -> poly
we have +:poly,poly->sBucket, +:sBucket,poly->sBucket and
=:sBucket->poly.
For the implementation and procedures to use see (in Singular/iparith.cc):
jjPLUS_B (+:poly,poly->sBucket)
jjPLUS_B_P (+:sBucket,poly->sBucket)
and in Singular/ipassign.cc:
jiA_BUCKET (=:sBucket->poly)
Hans Schoenemann
The solution to increase the speed in the addition of many terms are
"geo buckets", implemented in the type sBucket in Singular.
Instead of having +: poly, poly -> poly and =:poly -> poly
we have +:poly,poly->sBucket, +:sBucket,poly->sBucket and
=:sBucket->poly.
For the implementation and procedures to use see (in Singular/iparith.cc):
jjPLUS_B (+:poly,poly->sBucket)
jjPLUS_B_P (+:sBucket,poly->sBucket)
and in Singular/ipassign.cc:
jiA_BUCKET (=:sBucket->poly)
The definitions should be the same (only that libsingular.h does not
include everything). But sbucket.c is a c++ file.