
 ZeroDimensionalRegularChain () 
 Default constructor: creates an empty zerodimensional regular chain with variable size with empty list of transcendentals. More...


 ZeroDimensionalRegularChain (const std::vector< Symbol > &ps) 
 Construct an empty zerodimensional regular chain of variable size with variables given by xs with empty list of transcendentals. More...


 ZeroDimensionalRegularChain (const RecursivePoly &p) 
 Construct a zerodimensional regular chain of variable size containing a univariate polynomial p with empty list of transcendentals. More...


 ZeroDimensionalRegularChain (const RecursivePoly &p, const std::vector< Symbol > &ts) 
 Construct a variable zerodimensional regular chain containing p, such that the supplied list of transcendental variable names includes all of the variables in p except its main variable, which becomes the only algebraic variable of the chain. More...


 ZeroDimensionalRegularChain (const ZeroDimensionalRegularChain< Field, RecursivePoly > &a) 
 Copy constructor. More...


 ZeroDimensionalRegularChain (const RegularChain< Field, RecursivePoly > &a, int options=0) 
 Copy constructor taking a regular chain as input. More...


 ZeroDimensionalRegularChain (ZeroDimensionalRegularChain< Field, RecursivePoly > &&a) 
 Move constructor. More...


 ZeroDimensionalRegularChain (RegularChain< Field, RecursivePoly > &&a, int options=0) 
 Move constructor taking a regular chain as input. More...


 ZeroDimensionalRegularChain (const std::vector< Symbol > &vs, const std::vector< Symbol > &avs, const std::vector< Symbol > &tvs, const std::vector< RecursivePoly > &ts, TriangularSetMode tsm, const mpz_class &c) 
 Computational constructor: creates a triangular set given all the data. More...


ZeroDimensionalRegularChain< Field, RecursivePoly > &  operator= (const ZeroDimensionalRegularChain< Field, RecursivePoly > &a) 
 Assignment operator =. More...


BPASTriangularSet< Field, RecursivePoly > &  operator= (const BPASTriangularSet< Field, RecursivePoly > &a) override 
 Assignment operator = imposed by abstract class BPASTriangularSet. More...


BPASRegularChain< Field, RecursivePoly > &  operator= (const BPASRegularChain< Field, RecursivePoly > &a) override 
 Assignment operator = imposed by abstract class BPASRegularChain. More...


BPASZeroDimensionalRegularChain< Field, RecursivePoly > &  operator= (const BPASZeroDimensionalRegularChain< Field, RecursivePoly > &a) override 
 Assignment operator = imposed by abstract class BPASZeroDimensionalRegularChain. More...


ZeroDimensionalRegularChain< Field, RecursivePoly > &  operator= (ZeroDimensionalRegularChain< Field, RecursivePoly > &&a) 
 Move assignment operator = imposed by class ZeroDimensionalRegularChain. More...


BPASTriangularSet< Field, RecursivePoly > &  operator= (BPASTriangularSet< Field, RecursivePoly > &&a) override 
 Move assignment operator = imposed by abstract class BPASTriangularSet. More...


BPASRegularChain< Field, RecursivePoly > &  operator= (BPASRegularChain< Field, RecursivePoly > &&a) override 
 Move assignment operator =. More...


BPASZeroDimensionalRegularChain< Field, RecursivePoly > &  operator= (BPASZeroDimensionalRegularChain< Field, RecursivePoly > &&a) override 
 Move assignment operator = imposed by abstract class BPASZeroDimensionalRegularChain. More...


ZeroDimensionalRegularChain< Field, RecursivePoly >  operator+ (const RecursivePoly &p) const 
 Add operator +: Adds a polynomial p to a zerodimensional regular chain and returns a new zerodimensional regular chain, assuming that the main variable of p is neither algebraic nor transcendental, p contains no other nontranscendental variables, and that init(p) is regular modulo the saturated ideal of the current object. More...


ZeroDimensionalRegularChain< Field, RecursivePoly > &  operator+= (const RecursivePoly &p) 
 Add assignment operator +=: Adds a polynomial p to a zerodimensional regular chain, assuming that the main variable of p is neither algebraic nor transcendental, p contains no other nontranscendental variables, and that init(p) is regular modulo the saturated ideal of the current object. More...


ZeroDimensionalRegularChain< Field, RecursivePoly >  operator+ (const RegularChain< Field, RecursivePoly > &T) const 
 Add operator +: Adds the polynomials of an input regular chain to the current object and returns a new zerodimensional regular chain, assuming that the result of the addition is both a regular chain and zerodimensional. More...


ZeroDimensionalRegularChain< Field, RecursivePoly > &  operator+= (const RegularChain< Field, RecursivePoly > &T) 
 Add assignment operator +=: Adds the polynomials of an input regular chain to the current object, assuming that the result of the addition is both a regular chain and zerodimensional. More...


bool  operator== (ZeroDimensionalRegularChain< Field, RecursivePoly > &a) 
 Identity operator ==. More...


bool  operator!= (ZeroDimensionalRegularChain< Field, RecursivePoly > &a) 
 Negated identity operator !=. More...


int  numberOfVariables () const 
 Get the number of (potentially algebraic) variables. More...


int  numberOfAlgebraicVariables () const 
 Get the number of algebraic variables in the current object. More...


int  numberOfTranscendentalVariables () const 
 Get the number of transcendental variables in the current object. More...


std::vector< Symbol >  variables () const 
 Get the (potentially algebraic) variable names for the current object in decreasing order. More...


std::vector< Symbol >  mainVariables () const 
 Get algebraic variables in the current object. More...


std::vector< Symbol >  transcendentalVariables () const 
 Get transcendental variables in the current object. More...


bool  isAlgebraic (const Symbol &s) const 
 Find out if the input symbol is an algebraic variable of the current object. More...


bool  isEmpty () const 
 Find out if the current object is the empty chain. More...


std::vector< RecursivePoly >  polynomials () const 
 Get the list of polynomials in the current object. More...


RecursivePoly  select (const Symbol &s) const 
 Select the polynomial in the current object with main variable s, if it exists. More...


void  lower (const Symbol &s, BPASTriangularSet< Field, RecursivePoly > &ts) const 
 Returns the zerodimensional regular chain consisting of polynomials with main variable strictly less than s. More...


void  upper (const Symbol &s, BPASTriangularSet< Field, RecursivePoly > &ts) const 
 Returns the regular chain consisting of polynomials with main variable strictly greater than s. More...


std::vector< ZeroDimensionalRegularChain< Field, RecursivePoly > >  intersect (const RecursivePoly &p) const 
 Compute the common solutions of the input polynomial and the current regular chain. More...


std::vector< PolyChainPair< RecursivePoly, ZeroDimensionalRegularChain< Field, RecursivePoly > > >  regularize (const RecursivePoly &p) const 
 Compute a decomposition of the current object such that on each component the input polynomial is either zero or regular modulo the saturated ideal of that component. More...


std::vector< PolyChainPair< RecursivePoly, ZeroDimensionalRegularChain< Field, RecursivePoly > > >  regularizeInitial (const RecursivePoly &p) const 
 Compute a decomposition of the current object such that on each component the initial of the input polynomial is either zero or regular modulo the saturated ideal of that component. More...


std::vector< BoolChainPair< ZeroDimensionalRegularChain< Field, RecursivePoly > > >  isInvertible (const RecursivePoly &p) const 
 Determine whether a recursively viewed polynomial is invertible with respect to the current regular chain. More...


std::vector< PolyChainPair< RecursivePoly, ZeroDimensionalRegularChain< Field, RecursivePoly > > >  regularGCD (const RecursivePoly &p, const RecursivePoly &q, const Symbol &v) 
 Compute the gcd of two input polynomials p and q modulo the saturated ideal of the current object. More...


void  randomZeroDimensionalRegularChain (int nVars, int nTrcVars, int nTerms, unsigned long int coefBound, int pSparsity, bool includeNeg) 
 Generate a random zerodimensional regular chain based on the number of terms of the polynomials of the chain. More...


void  randomZeroDimensionalRegularChain (int nVars, int nTrcVars, std::vector< int > maxDegs, unsigned long int coefBound, double pSparsity, bool includeNeg) 
 Generate a random zerodimensional regular chain based on a list of maximum degrees of variables in the polynomials in the chain. More...


 RegularChain () 
 Default constructor: creates an empty regular chain of variable size with empty list of transcendentals. More...


 RegularChain (const std::vector< Symbol > &xs) 
 Construct an empty fixed variable list regular chain in the decreasingly ordered variables given by xs with empty list of transcendentals. More...


 RegularChain (const std::vector< Symbol > &xs, const std::vector< Symbol > &ts) 
 Construct an empty fixed variable list regular chain in the decreasingly ordered variables given by xs and list of transcendentals given by ts. More...


 RegularChain (const RecursivePoly &p) 
 Construct a variable regular chain containing p, such that the variables of p are treated as algebraic, with empty list of transcendentals. More...


 RegularChain (const RecursivePoly &p, const std::vector< Symbol > &ts) 
 Construct a variable regular chain containing p, such that the variables in ts are treated as transcendental, while any remaining variables of p are treated as algebraic. More...


 RegularChain (const ZeroDimensionalRegularChain< Field, RecursivePoly > &a) 
 Copy constructor taking a zerodimensional regular chain as input. More...


 RegularChain (const RegularChain< Field, RecursivePoly > &a) 
 Copy constructor. More...


 RegularChain (const TriangularSet< Field, RecursivePoly > &a) 
 Copy constructor taking a triangular set as input, assuming that the triangular set is a regular chain. More...


 RegularChain (ZeroDimensionalRegularChain< Field, RecursivePoly > &&a) 
 Move constructor taking an rvalue zerodimensional regular chain as input. More...


 RegularChain (RegularChain< Field, RecursivePoly > &&a) 
 Move constructor. More...


 RegularChain (TriangularSet< Field, RecursivePoly > &&a) 
 Move constructor taking an rvalue triangular set as input, assuming that the triangular set is a regular chain. More...


 RegularChain (const std::vector< Symbol > &vs, const std::vector< Symbol > &avs, const std::vector< Symbol > &tvs, const std::vector< RecursivePoly > &ts, TriangularSetMode tsm, const mpz_class &c) 
 Computational constructor: creates a regular chain given all the data. More...


RegularChain< Field, RecursivePoly > &  operator= (const ZeroDimensionalRegularChain< Field, RecursivePoly > &a) 
 Assignment operator = for a zerodimensional regular chain. More...


RegularChain< Field, RecursivePoly > &  operator= (const RegularChain< Field, RecursivePoly > &a) 
 Assignment operator =. More...


RegularChain< Field, RecursivePoly > &  operator= (ZeroDimensionalRegularChain< Field, RecursivePoly > &&a) 
 Move assignment operator = taking an rvalue zerodimensional regular chain as input. More...


RegularChain< Field, RecursivePoly > &  operator= (RegularChain< Field, RecursivePoly > &&a) 
 Move assignment operator =. More...


RegularChain< Field, RecursivePoly >  operator+ (const RecursivePoly &p) const 
 Add operator +: Adds a polynomial to a regular chain and returns a new regular chain, assuming that the main variable of p is above any in the current object and that init(p) is regular modulo the saturated ideal of the current object. More...


RegularChain< Field, RecursivePoly > &  operator+= (const RecursivePoly &p) 
 Add assignment operator +=: Adds a polynomial to a regular chain, assuming that the main variable of p is above any in the current object and that init(p) is regular modulo the saturated ideal of the current object. More...


RegularChain< Field, RecursivePoly >  operator+ (const RegularChain< Field, RecursivePoly > &T) const 
 Add operator +: Adds a regular chain to a regular chain and returns a new regular chain, assuming that the input is above the current object and the result of adding the chains is a regular chain. More...


RegularChain< Field, RecursivePoly > &  operator+= (const RegularChain< Field, RecursivePoly > &T) 
 Add assignment operator +=: Adds a regular chain to a regular chain, assuming that the input is above the current object and the result adding the chains is a regular chain. More...


bool  operator== (RegularChain< Field, RecursivePoly > &a) 
 Identity operator ==. More...


bool  operator!= (RegularChain< Field, RecursivePoly > &a) 
 Negated identity operator !=. More...


int  options () const 
 Get the encoded options of the regular chain, a bitwise or of RegularChainOption values. More...


void  setOptions (int opts) 
 Set the encoded options of the regular chain. More...


bool  isKnownToBeSquareFree () const 
 Find out if the regular chain is known to be squarefree. More...


bool  isInSaturatedIdeal (const RecursivePoly &p) const 
 Find out if the input polynomial is in the saturated ideal of the current regular chain. More...


bool  isInSaturatedIdeal (const RecursivePoly &p, RecursivePoly &redp) const 
 Find out if the input polynomial is in the saturated ideal of the current regular chain. More...


bool  isInRadicalSaturatedIdeal (const RecursivePoly &p) const 
 Find out if the input polynomial is in the radical saturated ideal of the current regular chain. More...


bool  isRegular (const RecursivePoly &p) const 
 Find out if the input polynomial is regular modulo the saturated ideal of the current regular chain. More...


void  lowerSlice (const Symbol &s) 
 Destructively converts the current object into lower(s) by changing the set of (potentially algebraic) variables to be only those below s in the variable order. More...


std::vector< RegularChain< Field, RecursivePoly > >  triangularize (const std::vector< RecursivePoly > &F) 
 Compute a triangular decomposition of the list of input polynomials. More...


std::vector< RegularChain< Field, RecursivePoly > >  intersect (const RecursivePoly &p) const 
 Compute the common solutions of the input polynomial and the current regular chain. More...


std::vector< PolyChainPair< RecursivePoly, RegularChain< Field, RecursivePoly > > >  regularize (const RecursivePoly &p) const 
 Compute a decomposition of the current object such that on each component the input polynomial is either zero or regular modulo the saturated ideal of that component. More...


std::vector< PolyChainPair< RecursivePoly, RegularChain< Field, RecursivePoly > > >  regularGCD (const RecursivePoly &p, const RecursivePoly &q, const Symbol &v, const SubResultantChain< RecursivePoly, RecursivePoly > &src) const 
 Compute the gcd of two input polynomials p and q modulo the saturated ideal of the current object. More...


std::vector< RegularChain< Field, RecursivePoly > >  squareFreePart (const RecursivePoly &p, const Symbol &v, int options=ASSUME_REGULAR) const 
 A routine that decomposes the regular chain formed from the current object and an input polynomial into a set of squarefree regular chains. More...


void  randomRegularChain (int nVars, int nAlgVars, int nTrcVars, int nTerms, unsigned long int coefBound, int pSparsity, bool includeNeg) 
 Generate a random regular chain based on the number of terms of the polynomials in the chain. More...


void  randomRegularChain (int nVars, int nAlgVars, int nTrcVars, std::vector< int > maxDegs, unsigned long int coefBound, double pSparsity, bool includeNeg) 
 Generate a random regular chain based on a list of maximum degrees of variables in the polynomials in the chain. More...


 TriangularSet () 
 Default constructor: creates an empty triangular set of variable size with empty list of transcendentals. More...


 TriangularSet (const std::vector< Symbol > &xs) 
 Construct an empty triangular set of fixed size in the s decreasingly ordered variables given by xs with empty list of transcendentals. More...


 TriangularSet (const std::vector< Symbol > &xs, const std::vector< Symbol > &ts) 
 Construct an empty triangular set of fixed size in the s decreasingly ordered variables given by xs and list of transcendentals given by ts. More...


 TriangularSet (const RecursivePoly &p) 
 Construct a variable triangular set containing p, such that the variables of p are treated as (potentially algebraic) variables, with empty list of transcendentals. More...


 TriangularSet (const RecursivePoly &p, const std::vector< Symbol > &ts) 
 Construct a variable triangular set containing p, such that the variables in ts are treated as transcendental, while any remaining variables of p are treated as (potentially algebraic) variables. More...


 TriangularSet (const TriangularSet< Field, RecursivePoly > &a) 
 Copy constructor. More...


 TriangularSet (TriangularSet< Field, RecursivePoly > &&a) 
 Copy constructor. More...


 TriangularSet (const std::vector< Symbol > &vs, const std::vector< Symbol > &avs, const std::vector< Symbol > &tvs, const std::vector< RecursivePoly > &ts, TriangularSetMode tsm, const mpz_class &c) 
 Move constructor. More...


 ~TriangularSet () 
 Deconstructor. More...


bool  isEmpty () const 
 Copy an object derived from abstract BPASTriangularSet class to type of current object. More...


bool  isConstantPolynomial (const RecursivePoly &p) const 
 Tests if the polynomial is constant relative to the TriangularSet, i.e., whether it is and element of the Field or its only variables are transcendental. More...


TriangularSet< Field, RecursivePoly > &  operator= (const TriangularSet< Field, RecursivePoly > &a) 
 Assignment operator =. More...


BPASTriangularSet< Field, RecursivePoly > &  operator= (const BPASTriangularSet< Field, RecursivePoly > &a) override 
 Assignment operator =. More...


TriangularSet< Field, RecursivePoly > &  operator= (TriangularSet< Field, RecursivePoly > &&a) 
 Move assignment operator =. More...


BPASTriangularSet< Field, RecursivePoly > &  operator= (BPASTriangularSet< Field, RecursivePoly > &&a) override 
 Move assignment operator =. More...


TriangularSet< Field, RecursivePoly >  operator+ (const RecursivePoly &p) 
 Add operator +. More...


TriangularSet< Field, RecursivePoly > &  operator+= (const RecursivePoly &p) 
 Add assignment operator +=. More...


bool  operator== (TriangularSet< Field, RecursivePoly > &a) 
 Identity operator ==. More...


bool  operator!= (TriangularSet< Field, RecursivePoly > &a) 
 Negated identity operator !=. More...


int  numberOfVariables () const 
 Get the number of variables. More...


int  size () const 
 Get the size of the triangular set. More...


int  numberOfAlgebraicVariables () const 
 Get the number of algebraic variables. More...


int  numberOfTranscendentalVariables () const 
 Get the number of transcendental variables. More...


std::vector< Symbol >  variables () const 
 Get the variable names in decreasing order. More...


std::vector< Symbol >  mainVariables () const 
 Get the algebraic variables. More...


std::vector< Symbol >  transcendentalVariables () const 
 Get the transcendentalVariables variables. More...


std::vector< Symbol >  allVariables () const 
 Get the list of variables followed by the transcendental variables. More...


bool  isAlgebraic (const Symbol &s) const 
 Determine if the input variable s is algebraic, i.e., if the triangular set contains a polynomial with s its as leading variable. More...


bool  isStronglyNormalized () const 
 Return true if the triangular set is strongly normalized, i.e., the initals of all polynomials are in the Field; return false otherwise. More...


std::vector< RecursivePoly >  polynomials () const 
 Get the vector of polynoials in the triangular set. More...


int  dimension () const 
 Return the dimension of the triangular set (understood in terms of the space of (potentially algebraic) variables). More...


int  dimensionLower (Symbol v) const 
 Return the dimension of the triangular set lower(v) (understood in terms of the space of (potentially algebraic) variables). More...


int  codimension () const 
 Return the codimension of the triangular set (understood in terms of the space of (potentially algebraic) variables). More...


bool  canComputeInDimensionZero (const RecursivePoly &p, bool excludeMainVariable=false) const 
 Test to determine whether the triangular set can be treated as zero dimensional, i.e., whether the triangular set becomes zero dimensional when all nonalgebraic variables are removed and whether the polynomial p contains only algebraic variables. More...


bool  isZeroDimensionalMathematically () const 
 Test to determine if only algebraic variables (aside from transcendentals) appear in the polynomials of the triangular set. More...


RecursivePoly  select (const Symbol &s) const 
 Select a polynomial given the leading variable; if no such polynomial, 0 is returned. More...


void  makePrimitive () 
 Replace each polynomial of the triangular set with its primitive part. More...


void  lower (const Symbol &s, BPASTriangularSet< Field, RecursivePoly > &ts) const 
 Returns the triangular set consisting of polynomials with main variable strictly less than s. More...


void  upper (const Symbol &s, BPASTriangularSet< Field, RecursivePoly > &ts) const 
 Returns the triangular set consisting of polynomials with main variable strictly greater than s. More...


RecursivePoly  pseudoDivide (const RecursivePoly &p, std::vector< RecursivePoly > *quo=NULL, RecursivePoly *c=NULL) const 
 Pseudo division: return the pseudoremainder, the pseudoquotients and c such that c*p = âˆ‘(q_i T_i) + r. More...


RecursivePoly  normalForm (const RecursivePoly &p, std::vector< RecursivePoly > *Q=NULL) const 
 Return the normalForm of the input polynomial modulo the triangular set in the sense of Groebner basis. More...


RecursivePoly  reduce (const RecursivePoly &p) const 
 Reduce the input polynomial modulo the triangular set. More...


RecursivePoly  reduce (const RecursivePoly &p, RecursivePoly &c, bool usePrimitiveFactorization=true, bool onlyInDimZero=false) const 
 returns r such that c*r = p modulo sat(T) such that c has no algebraic variables, and c is returned as an input parameter. More...


RecursivePoly  randomTriangularSetPolynomial (std::vector< Symbol > variables, int algVar, std::vector< Symbol > transcendentalVariables, int nTerms, unsigned long int coefBound, int pSparsity, bool includeNeg) 
 Generate a random triangular set polynomial based on its number of terms. More...


RecursivePoly  randomTriangularSetPolynomial (std::vector< Symbol > variables, int algVar, std::vector< Symbol > transcendentalVariables, std::vector< int > maxDegs, unsigned long int coefBound, double pSparsity, bool includeNeg) 
 Generate a random triangular set polynomial based on its maximum degrees in its variables. More...


void  randomTriangularSet (int nVars, int nAlgVars, int nTrcVars, int nTerms, unsigned long int coefBound, int pSparsity, bool includeNeg) 
 Generate a random triangular set based on the number of terms of its polynomials. More...


void  randomStronglyNormalizedTriangularSet (int nVars, int nAlgVars, int nTrcVars, int nTerms, unsigned long int coefBound, int pSparsity, bool includeNeg) 
 Generate a random strongly normalized triangular set based on the number of terms in its polynomials. More...


void  display () 
 Display the triangular set. More...


ExpressionTree  convertToExpressionTree () const 
 Convert a triangular set to an expression tree (array of its polynomials). More...

