This PR allows us to build the multiplication matrix with respect to the last variable, even when it is not for free. It relies on normal form computations.
A new option -d can be passed to tell how many normal forms can be computed to build this matrix:
0: no normal form computations are allowed (i.e. same behavior as before);
1: around D/4 normal form computations are allowed, where D is the degree of the ideal;
2: around D/2;
3: around 3*D/4;
4: as many as possible (= at most D).
In case too many normal forms need to be computed, msolve proceeds as before following the -c option: change the order of the variable and/or introduce a new variable and a random linear form.
By default, the option -d 2 is now passed. (This can, of course, be discussed.)
This PR allows us to build the multiplication matrix with respect to the last variable, even when it is not for free. It relies on normal form computations. A new option -d can be passed to tell how many normal forms can be computed to build this matrix:
In case too many normal forms need to be computed, msolve proceeds as before following the -c option: change the order of the variable and/or introduce a new variable and a random linear form.
By default, the option -d 2 is now passed. (This can, of course, be discussed.)