CGAL 5.1.2 - Polynomial
|
A model of PolynomialTraits_d
is associated with a type Polynomial_d
. The type Polynomial_d
represents a multivariate polynomial. The number of variables is denoted as the dimension \( d\) of the polynomial, it is arbitrary but fixed for a certain model of this concept. Note that univariate polynomials are not excluded by this concept. In this case \( d\) is just set to one.
PolynomialTraits_d
provides two different views on the multivariate polynomial.
Many functors consider the polynomial as a univariate polynomial in one variable. By default this is the outermost variable \( x_{d-1}\). However, in general it is possible to select a certain variable.
Polynomial_d
Concepts | |
concept | Canonicalize |
For a given polynomial \( p\) this AdaptableUnaryFunction computes the unique representative of the set \[ {\cal P} := \{ q\ |\ \lambda * q = p\ for\ some\ \lambda \in R \}, \] where \( R\) is the base of the polynomial ring. More... | |
concept | Compare |
This AdaptableBinaryFunction compares two polynomials, with respect to the lexicographic order with preference to the outermost variable. More... | |
concept | ConstructCoefficientConstIteratorRange |
This AdaptableUnaryFunction returns a const iterator range over the coefficients of the given polynomial, with respect to the outermost variable, \( x_{d-1}\). The range starts with the coefficient for \( x_{d-1}^0\). More... | |
concept | ConstructInnermostCoefficientConstIteratorRange |
This AdaptableUnaryFunction returns a const iterator range over all innermost coefficients of the given polynomial. More... | |
concept | ConstructPolynomial |
This AdaptableFunctor provides several operators to construct objects of type PolynomialTraits_d::Polynomial_d . More... | |
concept | Degree |
This AdaptableUnaryFunction computes the degree of a PolynomialTraits_d::Polynomial_d with respect to a certain variable. More... | |
concept | DegreeVector |
For a given PolynomialTraits_d::Polynomial_d \( p\) this AdaptableUnaryFunction returns the degree vector, that is, it returns the exponent vector of the monomial of highest order in \( p\), where the monomial order is the lexicographic order giving outer variables a higher priority. In particular, this is the monomial that belongs to the innermost leading coefficient of \( p\). More... | |
concept | Differentiate |
This AdaptableUnaryFunction computes the derivative of a PolynomialTraits_d::Polynomial_d with respect to one variable. More... | |
concept | Evaluate |
This AdaptableBinaryFunction evaluates PolynomialTraits_d::Polynomial_d with respect to one variable. More... | |
concept | EvaluateHomogeneous |
This AdaptableFunctor provides evaluation of a PolynomialTraits_d::Polynomial_d interpreted as a homogeneous polynomial in one variable. More... | |
concept | GcdUpToConstantFactor |
This AdaptableBinaryFunction computes the \( gcd\) up to a constant factor (utcf) of two polynomials of type PolynomialTraits_d::Polynomial_d . More... | |
concept | GetCoefficient |
This AdaptableBinaryFunction provides access to coefficients of a PolynomialTraits_d::Polynomial_d . More... | |
concept | GetInnermostCoefficient |
For the given PolynomialTraits_d::Polynomial_d this AdaptableBinaryFunction returns the coefficient of the (multivariate) monomial specified by the given CGAL::Exponent_vector . More... | |
concept | InnermostLeadingCoefficient |
This AdaptableUnaryFunction computes the innermost leading coefficient of a PolynomialTraits_d::Polynomial_d \( p\). The innermost leading coefficient is recursively defined as the innermost leading coefficient of the leading coefficient of \( p\). In case \( p\) is univariate it coincides with the leading coefficient. More... | |
concept | IntegralDivisionUpToConstantFactor |
This AdaptableBinaryFunction computes the integral division of two polynomials of type PolynomialTraits_d::Polynomial_d up to a constant factor (utcf) . More... | |
concept | Invert |
This AdaptableUnaryFunction inverts one variable in a given PolynomialTraits_d::Polynomial_d , that is, for a given polynomial \( p\) it computes \( x^{degree(p)}p(1/x)\). More... | |
concept | IsSquareFree |
This AdaptableUnaryFunction computes whether the given a polynomial of type PolynomialTraits_d::Polynomial_d is square free. More... | |
concept | IsZeroAt |
This AdaptableFunctor returns whether a PolynomialTraits_d::Polynomial_d \( p\) is zero at a given Cartesian point, which is represented as an iterator range. More... | |
concept | IsZeroAtHomogeneous |
This AdaptableFunctor returns whether a PolynomialTraits_d::Polynomial_d \( p\) is zero at a given homogeneous point, which is given by an iterator range. More... | |
concept | LeadingCoefficient |
This AdaptableUnaryFunction computes the leading coefficient of a PolynomialTraits_d::Polynomial_d . More... | |
concept | MakeSquareFree |
This AdaptableUnaryFunction computes the square-free part of a polynomial of type PolynomialTraits_d::Polynomial_d up to a constant factor. More... | |
concept | MonomialRepresentation |
This Functor outputs the monomial representation of the given polynomial, that is, it writes all non zero terms of the polynomial as std::pair<CGAL::Exponent_vector, PolynomialTraits_d::Innermost_coefficient_type> into the given output iterator. More... | |
concept | Move |
This AdaptableFunctor moves a variable at position \( i\) to a new position \( j\). The relative order of the other variables is preserved, that is, the variables between \( x_i\) and \( x_j\) (including \( x_j\)) are moved by one position while \( x_i\) is moved to the former position of \( x_j\). More... | |
concept | MultivariateContent |
This AdaptableUnaryFunction computes the content of a PolynomialTraits_d::Polynomial_d with respect to the symmetric view on the polynomial, that is, it computes the gcd of all innermost coefficients. More... | |
concept | Negate |
This AdaptableUnaryFunction computes \( p(-x)\) for a given polynomial \( p\). More... | |
concept | Permute |
This AdaptableFunctor permutes the variables of the given polynomial with respect to a permutation \( \sigma\), that is, each monomial \( \prod x_i^{e_i}\) will be mapped to the monomial \( \prod x_{\sigma(i)}^{e_i}\). The permutation \( \sigma\) is given by the iterator range of length PolynomialTraits_d::d , which is supposed to contain the second row of the permutation. More... | |
concept | PolynomialSubresultants |
Computes the polynomial subresultant of two polynomials \( p\) and \( q\) of type PolynomialTraits_d::Polynomial_d with respect to outermost variable. Let \( p=\ccSum{i=0,\ldots,n}{} p_i x^i\) and \( q=\ccSum{i=0,\ldots,m}{} q_i x^i\), where \( x\) is the outermost variable. The \( i\)-th subresultant (with \( i=0,\ldots,\min\{n,m\}\)) is defined by. More... | |
concept | PolynomialSubresultantsWithCofactors |
Computes the polynomial subresultant of two polynomials \( p\) and \( q\) of degree \( n\) and \( m\), respectively, as defined in the documentation of PolynomialTraits_d::PolynomialSubresultants . Moreover, for \( \mathrm{Sres}_i(p,q)\), polynomials \( u_i\) and \( v_i\) with \( \deg u_i\leq m-i-1\) and \( \deg v_i\leq n-i-1\) are computed such that \( \mathrm{Sres}_i(p,q)=u_i p + v_i q\). \( u_i\) and \( v_i\) are called the cofactors of \( \mathrm{Sres}_i(p,q)\). More... | |
concept | PrincipalSturmHabichtSequence |
Computes the principal leading coefficients of the Sturm-Habicht sequence of a polynomials \( f\) of type PolynomialTraits_d::Polynomial_d with respect a certain variable \( x_i\). This means that for the \( j\)-th Sturm-Habicht polynomial, this methods returns the coefficient of \( x_i^j\). More... | |
concept | PrincipalSubresultants |
Computes the principal subresultant of two polynomials \( p\) and \( q\) of type PolynomialTraits_d::Coefficient_type with respect to the outermost variable. The \( i\)-th principal subresultant, \( \mathrm{sres}_i(p,q)\), is defined as the coefficient at \( t^i\) of the \( i\)-th polynomial subresultant \( \mathrm{Sres}_i(p,q)\). Thus, it is either the leading coefficient of \( \mathrm{Sres}_i\), or zero in the case where its degree is below \( i\). More... | |
concept | PseudoDivision |
This AdaptableFunctor computes the pseudo division of two polynomials \( f\) and \( g\). More... | |
concept | PseudoDivisionQuotient |
This AdaptableBinaryFunction computes the quotient of the pseudo division of two polynomials \( f\) and \( g\). More... | |
concept | PseudoDivisionRemainder |
This AdaptableBinaryFunction computes the remainder of the pseudo division of two polynomials \( f\) and \( g\). More... | |
concept | Resultant |
This AdaptableBinaryFunction computes the resultant of two polynomials \( f\) and \( g\) of type PolynomialTraits_d::Polynomial_d with respect to a certain variable. More... | |
concept | Scale |
Given a constant \( c\) this AdaptableBinaryFunction scales a PolynomialTraits_d::Polynomial_d \( p\) with respect to one variable, that is, it computes \( p(c\cdot x)\). More... | |
concept | ScaleHomogeneous |
Given a numerator \( a\) and a denominator \( b\) this AdaptableFunctor scales a PolynomialTraits_d::Polynomial_d \( p\) with respect to one variable, that is, it computes \( b^{degree(p)}\cdot p(a/b\cdot x)\). More... | |
concept | Shift |
This AdaptableBinaryFunction multiplies a PolynomialTraits_d::Polynomial_d by the given power of the specified variable. More... | |
concept | SignAt |
This AdaptableFunctor returns the sign of a PolynomialTraits_d::Polynomial_d \( p\) at given Cartesian point represented as an iterator range. More... | |
concept | SignAtHomogeneous |
This AdaptableFunctor returns the sign of a PolynomialTraits_d::Polynomial_d \( p\) at a given homogeneous point, which is given by an iterator range. More... | |
concept | SquareFreeFactorize |
This Functor computes a square-free factorization of a PolynomialTraits_d::Polynomial_d . More... | |
concept | SquareFreeFactorizeUpToConstantFactor |
This AdaptableFunctor computes a square-free factorization up to a constant factor (utcf) of a PolynomialTraits_d::Polynomial_d . More... | |
concept | SturmHabichtSequence |
Computes the Sturm-Habicht sequence (aka the signed subresultant sequence) of a polynomial \( f\) of type PolynomialTraits_d::Polynomial_d with respect to a certain variable \( x_i\). The Sturm-Habicht sequence is similar to the polynomial subresultant sequence of \( f\) and its derivative \( f':=\frac{\partial f}{\partial x_i}\) with respect to \( x_i\). The implementation is based on the following definition: More... | |
concept | SturmHabichtSequenceWithCofactors |
Computes the Sturm-Habicht polynomials of a polynomial \( f\) of degree \( n\), as defined in the documentation of PolynomialTraits_d::SturmHabichtSequence . Moreover, for \( \mathrm{Stha}_i(f)\), polynomials \( u_i\) and \( v_i\) with \( \deg u_i\leq n-i-2\) and \( \deg v_i\leq n-i-1\) are computed such that \( \mathrm{Sres}_i(p,q)=u_i f + v_i f'\). \( u_i\) and \( v_i\) are called the cofactors of \( \mathrm{Stha}_i(f)\). More... | |
concept | Substitute |
This Functor substitutes all variables of a given multivariate PolynomialTraits_d::Polynomial_d by the values given in the iterator range, where begin refers the value for the innermost variable. More... | |
concept | SubstituteHomogeneous |
This Functor substitutes all variables of a given multivariate PolynomialTraits_d::Polynomial_d \( p\) by the values given in the iterator range, where begin refers the value for the innermost variable. In contrast to PolynomialTraits_d::Substitute the given polynomial \( p\) is interpreted as a homogeneous polynomial. Hence the iterator range is required to be of length PolynomialTraits_d::d+1 . More... | |
concept | Swap |
This AdaptableFunctor swaps two variables of a multivariate polynomial. More... | |
concept | TotalDegree |
This AdaptableUnaryFunction computes the total degree of a PolynomialTraits_d::Polynomial_d . More... | |
concept | Translate |
This AdaptableBinaryFunction translates a PolynomialTraits_d::Polynomial_d with respect to one variable, that is, for a given polynomial \( p\) and constant \( c\) it computes \( p(x+c)\). More... | |
concept | TranslateHomogeneous |
Given numerator \( a\) and denominator \( b\) this AdaptableFunctor translates a PolynomialTraits_d::Polynomial_d \( p\) with respect to one variable by \( a/b\), that is, it computes \( b^{degree(p)}\cdot p(x+a/b)\). More... | |
concept | UnivariateContent |
This AdaptableUnaryFunction computes the content of a PolynomialTraits_d::Polynomial_d with respect to the univariate (recursive) view on the polynomial, that is, it computes the gcd of all coefficients with respect to one variable. More... | |
concept | UnivariateContentUpToConstantFactor |
This AdaptableUnaryFunction computes the content of a PolynomialTraits_d::Polynomial_d with respect to the univariate (recursive) view on the polynomial up to a constant factor (utcf), that is, it computes the \( \mathrm{gcd\_utcf}\) of all coefficients with respect to one variable. More... | |
Constants | |
static const int | d |
The dimension and the number of variables respectively. | |
Types | |
typedef unspecified_type | Polynomial_d |
Type representing \( R[x_0,\dots,x_{d-1}]\). | |
typedef unspecified_type | Coefficient_type |
Type representing \( R[x_0,\dots,x_{d-2}]\). | |
typedef unspecified_type | Innermost_coefficient_type |
Type representing the base ring \( R\). | |
typedef unspecified_type | Coefficient_const_iterator |
Const iterator used to iterate through all coefficients of the polynomial. | |
typedef unspecified_type | Innermost_coefficient_const_iterator |
Const iterator used to iterate through all innermost coefficients of the polynomial. | |
template<typename T , int d> | |
using | Rebind = unspecified_type |
This template class has to define a type Rebind<T,d>::Other which is a model of the concept PolynomialTraits_d , where d is the number of variables and T the Innermost_coefficient_type . More... | |
A model of PolynomialTraits_d::Compare
.
In case Innermost_coefficient_type
is not RealEmbeddable
this is CGAL::Null_functor
.
using PolynomialTraits_d::Rebind = unspecified_type |
This template class has to define a type Rebind<T,d>::Other
which is a model of the concept PolynomialTraits_d
, where d
is the number of variables and T
the Innermost_coefficient_type
.
A model of PolynomialTraits_d::SignAt
.
In case Innermost_coefficient_type
is not RealEmbeddable
this is CGAL::Null_functor
.
A model of PolynomialTraits_d::SignAtHomogeneous
.
In case Innermost_coefficient_type
is not RealEmbeddable
this is CGAL::Null_functor
.