© 2008 Anna Bigatti
GNU Free Documentation License, Version 1.2

CoCoALib Documentation Index


class PPVector

WARNING THIS IS STILL A PRELIMINARY IMPLEMENTATION as indicated by the names of the implementation files: TmpPPVector.H and TmpPPVector.C.

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).


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 an attempt 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.