WARNING: THIS IS STILL ONLY A PRELIMINARY INTERFACE
friend bool IsDivisibleFast(const PPWithMask& pm1, const PPWithMask& pm2); ///< suffix "Fast" because it does not check compatibility
A value of type
PPWithMask is an "enriched" power product: it also
contains a "divmask" so that divisibility tests between
values can be effected quickly (on average, and assuming they are only
To create a
PPWithMask(pp, DMRule) -- pp is a power product, DMRule is a divmask rule
PPWithMask value you can extract the power product and DivMaskRule
using the following accessor functions:
PP(ppwm) -- get a reference to the internal power product DivMaskImpl(ppwm) -- get the div mask rule
Implementation of PPMonoidElem with DivMask for fast divisibility test
This type is not intended for "public use": it must be fast, so we
cannot guarantee safety checks. It does some compatibility tests with
CoCoA_ASSERT (i.e. only with
It is to be used ONLY when speed on divisibility tests is crucial (Buchberger, Toric, Hilbert, ...).
Constructor and assignment from pp might be expensive.
Both impl and doc are very incomplete!