PPVector

© 2008 Anna Bigatti
GNU Free Documentation License, Version 1.2



index page

class PPVector

This class is for dealing with lists of power-products.

This class has been designed to be used by monomial ideal operations, Hilbert, and Mayer-Vietoris trees.

The key functions interpret the list as generators of a monomial ideal: interreduction, divisibility test (ideal membership), lcms (ideal intersection).

The elements are PPWithMask, to make fast divisibility tests. Constructor requires a PPMonoid and a DivMaskRule (see DivMask), so that the user can choose the best suited implementations (mostly depending on the number of indeterminates and on the size of the exponents).

Examples

  ex-PPVector.C

Fields and main functions

Member fields are

      PPMonoid myPPM;
      DivMaskRule myDMR;
      std::vector<PPWithMask> myVec;

Utility functions

Mathemetical functions

Bugs, Shortcomings and other ideas

Abstract Class

There was a tentative to make it an abstract class, PPVectorBase, made of abstract PPVectorElem, with the plan to have concrete classes a vector of PPWithMask, of PPMonoidElem, and of square-free pps (which cannot make a PPMonoid because x*x is not square-free).

But this failed because most operations would need to know the type of the elements in the vector making it more suitable for templates. But

So it was sadly abandoned.