mirror of https://github.com/CGAL/cgal
Innermost_coefficient -> Innermost_coefficient_type
Coefficient -> Coefficient_type
This commit is contained in:
parent
cbfe39e67c
commit
3ffec6b1fe
|
|
@ -34,9 +34,9 @@ considers the polynomials as an element of $R [x_0,\dots,x_{d-1}]$.
|
|||
According to these two different views the traits class provides two
|
||||
different coefficients types:
|
||||
\begin{itemize}
|
||||
\item \ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Coefficient}
|
||||
\item \ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Coefficient_type}
|
||||
representing $R[x_0,\dots,x_{d-2}]$.
|
||||
\item \ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Innermost_coefficient}
|
||||
\item \ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type}
|
||||
representing the base ring $R$.
|
||||
\end{itemize}
|
||||
|
||||
|
|
@ -61,12 +61,12 @@ In general a polynomial is constructed using the functor
|
|||
\ccc{PolynomialTraits_d::ConstructPolynomial}. Basically there are two options:
|
||||
\begin{itemize}
|
||||
\item The polynomial is constructed from an iterator range with value type
|
||||
\ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Coefficient},
|
||||
\ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Coefficient_type},
|
||||
where the $begin$ iterator refers to the constant term
|
||||
(constant with respect to the outermost variable).
|
||||
\item The polynomial is constructed from an iterator range with value type
|
||||
\ccc{std::pair< CGAL::Exponent_vector,
|
||||
CGAL::Polynomial_traits_d<Polynomial_d>::Innermost_coefficient>},
|
||||
CGAL::Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type>},
|
||||
where each pair defines the coefficient for the monomial defined by
|
||||
the exponent vector.
|
||||
\end{itemize}
|
||||
|
|
|
|||
|
|
@ -16,16 +16,16 @@ it is arbitrary but fixed for a certain model of this concept.
|
|||
\ccHeading{Functors}
|
||||
|
||||
In case a functor is not provided it is set to \ccc{CGAL::Null_functor}.
|
||||
%,e.g., \ccc{Sign_at} if \ccc{Innermost_coefficient} is not \ccc{RealEmbeddable}.
|
||||
%,e.g., \ccc{Sign_at} if \ccc{Innermost_coefficient_type} is not \ccc{RealEmbeddable}.
|
||||
\ccSetTwoColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{}
|
||||
|
||||
\ccNestedType{Univariate_content}{
|
||||
In case \ccc{PolynomialTraits_d::Coefficient} is {\bf not} a model of
|
||||
In case \ccc{PolynomialTraits_d::Coefficient_type} is {\bf not} a model of
|
||||
\ccc{UniqueFactorizationDomain}, this is \ccc{CGAL::Null_type}, otherwise this is
|
||||
a model of \ccc{PolynomialTraits_d::UnivariateContent}.}
|
||||
%\begin{ccAdvanced}
|
||||
\ccNestedType{Multivariate_content}{
|
||||
In case \ccc{PolynomialTraits_d::Innermost_coefficient} is {\bf not}
|
||||
In case \ccc{PolynomialTraits_d::Innermost_coefficient_type} is {\bf not}
|
||||
a model of \ccc{UniqueFactorizationDomain}, this is \ccc{CGAL::Null_type},
|
||||
otherwise this is a model of
|
||||
\ccc{PolynomialTraits_d::MultivariateContent}.}
|
||||
|
|
|
|||
|
|
@ -36,18 +36,18 @@ is possible to select a certain variable.
|
|||
\ccTypes
|
||||
|
||||
\ccNestedType{Polynomial_d}{ Type representing $R[x_0,\dots,x_{d-1}]$.}\ccGlue
|
||||
\ccNestedType{Coefficient }{ Type representing $R[x_0,\dots,x_{d-2}]$.}\ccGlue
|
||||
\ccNestedType{Innermost_coefficient}{ Type representing the base ring $R$.}
|
||||
\ccNestedType{Coefficient_type }{ Type representing $R[x_0,\dots,x_{d-2}]$.}\ccGlue
|
||||
\ccNestedType{Innermost_coefficient_type}{ Type representing the base ring $R$.}
|
||||
|
||||
\ccNestedType{template <typename T, int d> struct Rebind}
|
||||
{This nested template class has to define a type \ccc{Other} which is a model
|
||||
of the concept \ccc{PolynomialTraits_d}, where \ccc{d} is the number of
|
||||
variables and \ccc{T} the \ccc{Innermost_coefficient}.}
|
||||
variables and \ccc{T} the \ccc{Innermost_coefficient_type}.}
|
||||
|
||||
\ccHeading{Functors}
|
||||
|
||||
In case a functor is not provided it is set to \ccc{CGAL::Null_functor}.
|
||||
%,e.g., \ccc{Sign_at} if \ccc{Innermost_coefficient} is not \ccc{RealEmbeddable}.
|
||||
%,e.g., \ccc{Sign_at} if \ccc{Innermost_coefficient_type} is not \ccc{RealEmbeddable}.
|
||||
\ccSetTwoColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{}
|
||||
|
||||
\ccNestedType{Construct_polynomial}
|
||||
|
|
@ -99,25 +99,25 @@ In case a functor is not provided it is set to \ccc{CGAL::Null_functor}.
|
|||
|
||||
\ccNestedType{Sign_at}{
|
||||
A model of \ccc{PolynomialTraits_d::SignAt}.\\
|
||||
In case \ccc{Innermost_coefficient} is not \ccc{RealEmbeddable} this
|
||||
In case \ccc{Innermost_coefficient_type} is not \ccc{RealEmbeddable} this
|
||||
is \ccc{CGAL::Null_functor}.}
|
||||
\ccNestedType{Sign_at_homogeneous}{
|
||||
A model of \ccc{PolynomialTraits_d::SignAtHomogeneous}.\\
|
||||
In case \ccc{Innermost_coefficient} is not \ccc{RealEmbeddable} this
|
||||
In case \ccc{Innermost_coefficient_type} is not \ccc{RealEmbeddable} this
|
||||
is \ccc{CGAL::Null_functor}.}
|
||||
|
||||
\ccNestedType{Compare}{
|
||||
A model of \ccc{PolynomialTraits_d::Compare}. \\
|
||||
In case \ccc{Innermost_coefficient} is not \ccc{RealEmbeddable} this
|
||||
In case \ccc{Innermost_coefficient_type} is not \ccc{RealEmbeddable} this
|
||||
is \ccc{CGAL::Null_functor}.}
|
||||
|
||||
\ccNestedType{Univariate_content}{
|
||||
In case \ccc{PolynomialTraits_d::Coefficient} is {\bf not} a model of
|
||||
In case \ccc{PolynomialTraits_d::Coefficient_type} is {\bf not} a model of
|
||||
\ccc{UniqueFactorizationDomain}, this is \ccc{CGAL::Null_type}, otherwise this is
|
||||
a model of \ccc{PolynomialTraits_d::UnivariateContent}.}
|
||||
%\begin{ccAdvanced}
|
||||
\ccNestedType{Multivariate_content}{
|
||||
In case \ccc{PolynomialTraits_d::Innermost_coefficient} is {\bf not}
|
||||
In case \ccc{PolynomialTraits_d::Innermost_coefficient_type} is {\bf not}
|
||||
a model of \ccc{UniqueFactorizationDomain}, this is \ccc{CGAL::Null_type},
|
||||
otherwise this is a model of
|
||||
\ccc{PolynomialTraits_d::MultivariateContent}.}
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ $\{ q | \lambda * q = p with \lambda \in R \}$, where $p$ is the given polynomi
|
|||
$R$ the base of the polynomial ring.
|
||||
In particular, the computed polynomial has the same zero set as the given one.
|
||||
|
||||
In case \ccc{PolynomialTraits::Innermost_coefficient} is a model of \ccc{Field},
|
||||
In case \ccc{PolynomialTraits::Innermost_coefficient_type} is a model of \ccc{Field},
|
||||
the computed polynomial is the {\em monic} polynomial,
|
||||
that is the innermost leading coefficient equals one.
|
||||
In case \ccc{PolynomialTraits::Innermost_coefficient} is a model
|
||||
In case \ccc{PolynomialTraits::Innermost_coefficient_type} is a model
|
||||
of \ccc{UniqueFactorizationDomain}, the gcd over all innermost coefficients of
|
||||
the computed polynomial is one.
|
||||
For all other cases the notion of uniqueness is up to the concrete model.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
This \ccc{AdaptableBinaryFunction} compares two polynomials, with respect to the lexicographic
|
||||
order with preference to the outermost variable.
|
||||
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficient} is
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficient_type} is
|
||||
\ccc{RealEmbeddable}.
|
||||
|
||||
\ccRefines
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ to construct objects of type \ccc{PolynomialTraits_d::Polynomial_d}.
|
|||
\ccMethod{template < class InputIterator >
|
||||
result_type operator()(InputIterator begin, InputIterator end);}
|
||||
{\ccPrecond The value type of \ccc{InputIterator} is
|
||||
\ccc{PolynomialTraits_d::Coefficient}. \\
|
||||
\ccc{PolynomialTraits_d::Coefficient_type}. \\
|
||||
|
||||
The operator constructs the a polynomial from the iterator range,
|
||||
with respect to the outermost variable, $x_{d-1}$. \\
|
||||
|
|
@ -38,14 +38,14 @@ to construct objects of type \ccc{PolynomialTraits_d::Polynomial_d}.
|
|||
%result_type operator()(InputIterator begin, InputIterator end, bool is_sorted = false);}{
|
||||
|
||||
Constructs a \ccc{Polynomial_d} from a given iterator range of
|
||||
\ccc{std::pair<Exponent_vector, PolynomialTraits_d::Innermost_coefficient>}.
|
||||
\ccc{std::pair<Exponent_vector, PolynomialTraits_d::Innermost_coefficient_type>}.
|
||||
|
||||
The optional parameter \ccc{is_sorted} indicates whether the given iterator range is
|
||||
already sorted.
|
||||
|
||||
\ccPrecond The value type of \ccc{InputIterator} is
|
||||
\ccc{std::pair<Exponent_vector,
|
||||
PolynomialTraits_d::Innermost_coefficient>}.
|
||||
PolynomialTraits_d::Innermost_coefficient_type>}.
|
||||
\ccPrecond Each \ccc{Exponent_vector} must have size $d$.
|
||||
\ccPrecond All appearing \ccc{Exponent_vector}s are different.
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ This \ccc{AdaptableBinaryFunction} evaluates
|
|||
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
|
||||
\ccCreationVariable{evaluate}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d first_argument_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient second_argument_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type second_argument_type;}{}
|
||||
|
||||
\ccOperations
|
||||
\ccMethod{result_type operator()(first_argument_type p,
|
||||
|
|
|
|||
|
|
@ -14,19 +14,19 @@ $p(u,v) = u^3 + uv^2$ and evaluated as such.
|
|||
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
|
||||
\ccCreationVariable{evaluate_homogeneous}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient result_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type result_type;}{}
|
||||
|
||||
\ccOperations
|
||||
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
PolynomialTraits_d::Coefficient u,
|
||||
PolynomialTraits_d::Coefficient v);}
|
||||
PolynomialTraits_d::Coefficient_type u,
|
||||
PolynomialTraits_d::Coefficient_type v);}
|
||||
{ return $p(u,v)$, with respect to the outermost variable. \\
|
||||
The homogeneous degree is considered as equal to the degree of $p$. }
|
||||
|
||||
|
||||
\ccMethod{result_type operator()( PolynomialTraits_d::Polynomial_d p,
|
||||
PolynomialTraits_d::Coefficient u,
|
||||
PolynomialTraits_d::Coefficient v,
|
||||
PolynomialTraits_d::Coefficient_type u,
|
||||
PolynomialTraits_d::Coefficient_type v,
|
||||
int i);}
|
||||
{ return $p(u,v)$, with respect to the variable $x_i$. \\
|
||||
The homogeneous degree is considered as equal to the $degree(p,i)$.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ This \ccc{AdaptableBinaryFunction} computes the $gcd$
|
|||
{\em up to a constant factor (utcf)} of two polynomials of type
|
||||
\ccc{PolynomialTraits_d::Polynomial_d}.
|
||||
|
||||
In case the base ring $R$, \ccc{PolynomialTraits_d::Innermost_coefficient},
|
||||
In case the base ring $R$, \ccc{PolynomialTraits_d::Innermost_coefficient_type},
|
||||
is not a \ccc{UniqueFactorizationDomain} or not a \ccc{Field} the polynomial ring
|
||||
$R[x_0,\dots,x_{d-1}]$ ,\ccc{PolynomialTraits_d::Polynomial_d}, may not
|
||||
possess greatest common divisor. However, since the $R$ is an integral
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ This \ccc{AdaptableBinaryFunction} provides access to coefficients of a
|
|||
\ccTypes
|
||||
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxx}{xxxxxxxxxxx}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient result_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type result_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d first_argument_type ;}{}
|
||||
\ccTypedef{typedef int second_argument_type;}{}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ the (multivariate) monomial specified by the given \ccc{Exponent_vector}.
|
|||
\ccTypes
|
||||
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxx}{xxxxxxxxxxx}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Innermost_coefficient result_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Innermost_coefficient_type result_type;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d first_argument_type ;}{}
|
||||
\ccGlue
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ of a \ccc{PolynomialTraits_d::Polynomial_d}. The innermost leading coefficient i
|
|||
\ccTypes
|
||||
\ccCreationVariable{innermost_leading_coefficient}
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Innermost_coefficient result_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Innermost_coefficient_type result_type;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d argument_type;}{}
|
||||
\ccGlue
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ of two polynomials of type \ccc{PolynomialTraits_d::Polynomial_d}
|
|||
|
||||
|
||||
\ccPrecond $g$ divides $f$ in $Q(R)[x_0,\dots,x_{d-1}]$, where $Q(R)$ is the quotient
|
||||
field of the base ring $R$, \ccc{PolynomialTraits_d::Innermost_coefficient}.
|
||||
field of the base ring $R$, \ccc{PolynomialTraits_d::Innermost_coefficient_type}.
|
||||
|
||||
\ccRefines
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ template <class InputIterator>
|
|||
Computes whether $p$ is zero at the homogeneous point given by the iterator range,
|
||||
where $begin$ is referring to the innermost variable.
|
||||
\ccPrecond{\ccc{std::iterator_traits< InputIterator >::value_type} is
|
||||
\ccc{PolynomialTraits_d::Innermost_coefficient}.}
|
||||
\ccc{PolynomialTraits_d::Innermost_coefficient_type}.}
|
||||
\ccPrecond
|
||||
}
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ of a \ccc{PolynomialTraits_d::Polynomial_d}.
|
|||
\ccTypes
|
||||
\ccCreationVariable{leading_coefficient}
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d argument_type;}{}\ccGlue
|
||||
|
||||
\ccOperations
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ This \ccc{AdaptableUnaryFunction} computes the content of a
|
|||
\ccc{PolynomialTraits_d::Polynomial_d} with respect to the symmetric
|
||||
view on the polynomial, that is, it computes the gcd of all innermost coefficients.
|
||||
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficients} is a
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficient_type} is a
|
||||
\ccc{Field} or a \ccc{UniqueFactorizationDomain}.
|
||||
|
||||
\ccRefines
|
||||
|
|
@ -16,7 +16,7 @@ This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficients}
|
|||
|
||||
\ccCreationVariable{multivariate_content}
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx}{xxx}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Innermost_coefficient result_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Innermost_coefficient_type result_type;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d argument_type;}{}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ necessarily give the leading coefficient of the Sturm-Habicht polynomials
|
|||
{ computes the principal coefficients of the
|
||||
Sturm-Habicht sequence of $f$,
|
||||
with respect to the outermost variable. Each element is of type
|
||||
\ccc{PolynomialTraits_d::Coefficient}.}
|
||||
\ccc{PolynomialTraits_d::Coefficient_type}.}
|
||||
|
||||
\ccMethod{template<typename OutputIterator>
|
||||
OutputIterator operator()(Polynomial_d f,
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ starting with the $0$th principal subresultant
|
|||
OutputIterator out);}
|
||||
{ computes the principal subresultants of $f$ and $g$,
|
||||
with respect to the outermost variable. Each element is of type
|
||||
\ccc{PolynomialTraits_d::Coefficient}.}
|
||||
\ccc{PolynomialTraits_d::Coefficient_type}.}
|
||||
|
||||
\ccMethod{template<typename OutputIterator>
|
||||
OutputIterator operator()(Polynomial_d f,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ remainder $r$ such that $D \cdot f = g \cdot q + r$ and $degree(r) < degree(g)$,
|
|||
where $ D = leading\_coefficient(g)^{max(0, degree(f)-degree(g)+1)}$
|
||||
|
||||
This functor is useful if the regular division is not available,
|
||||
which is the case if \ccc{PolynomialTraits_d::Coefficient} is not a \ccc{Field}.
|
||||
which is the case if \ccc{PolynomialTraits_d::Coefficient_type} is not a \ccc{Field}.
|
||||
Hence in general it is not possible to invert the leading coefficient of $g$.
|
||||
Instead $f$ is extended by $D$ allowing integral divisions in the internal
|
||||
computation.
|
||||
|
|
@ -32,7 +32,7 @@ computation.
|
|||
PolynomialTraits_d::Polynomial_d g,
|
||||
PolynomialTraits_d::Polynomial_d & q,
|
||||
PolynomialTraits_d::Polynomial_d & r,
|
||||
PolynomialTraits_d::Coefficient & D);}{
|
||||
PolynomialTraits_d::Coefficient_type & D);}{
|
||||
Computes the pseudo division with respect to the outermost variable
|
||||
$x_{d-1}$.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,16 +24,13 @@ which is a variant of the Euclidean Algorithm.
|
|||
More sophisticated methods may use modular arithmetic and interpolation.
|
||||
For more information we refer to, e.g., \cite{gg-mca-99}.
|
||||
|
||||
|
||||
|
||||
|
||||
\ccRefines
|
||||
\ccc{AdaptableBinaryFunction}
|
||||
|
||||
\ccTypes
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
|
||||
\ccCreationVariable{resultant}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient result_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type result_type;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d first_argument_type;}{}
|
||||
\ccGlue
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ the polynomial is considered as a univariate polynomial in one specific variable
|
|||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d first_argument_type;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient second_argument_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type second_argument_type;}{}
|
||||
|
||||
\ccOperations
|
||||
\ccMethod{result_type operator()(first_argument_type p,
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ This \ccc{AdaptableFunctor} scale a
|
|||
Note that this functor operates on the polynomial in the univariate view, that is,
|
||||
the polynomial is considered as a univariate polynomial in one specific variable.
|
||||
Moreover, the polynomial is considered as a homogeneous polynomial in that variable.
|
||||
Note that $a$ and $b$ are of type \ccc{PolynomialTraits_d::Coefficient}.
|
||||
Note that $a$ and $b$ are of type \ccc{PolynomialTraits_d::Coefficient_type}.
|
||||
|
||||
|
||||
\ccRefines
|
||||
|
|
@ -21,12 +21,12 @@ Note that $a$ and $b$ are of type \ccc{PolynomialTraits_d::Coefficient}.
|
|||
|
||||
\ccOperations
|
||||
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
PolynomialTraits_d::Coefficient a,
|
||||
PolynomialTraits_d::Coefficient b);}
|
||||
PolynomialTraits_d::Coefficient_type a,
|
||||
PolynomialTraits_d::Coefficient_type b);}
|
||||
{ return $b^{degree}\cdot p(a/b\cdot x)$, with respect to the outermost variable. }
|
||||
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
PolynomialTraits_d::Coefficient a,
|
||||
PolynomialTraits_d::Coefficient b,
|
||||
PolynomialTraits_d::Coefficient_type a,
|
||||
PolynomialTraits_d::Coefficient_type b,
|
||||
int i);}
|
||||
{ Same as first operator but for variable $x_i$.
|
||||
\ccPrecond $0 \leq i < d$
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ This \ccc{AdaptableFunctor} returns the sign of a
|
|||
\ccc{PolynomialTraits_d::Polynomial_d} $p$ at given Cartesian point represented
|
||||
as an iterator range.
|
||||
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficient} is
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficient_type} is
|
||||
\ccc{RealEmbeddable}.
|
||||
|
||||
\ccRefines
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ The polynomial is interpreted as a homogeneous polynomial in all variables. \\
|
|||
For instance the polynomial $p(x_0,x_1) = x_0^2x_1^3+x_1^4$ is interpreted as the homogeneous
|
||||
polynomial $p(x_0,x_1,w) = x_0^2x_1^3+x_1^4w^1$.
|
||||
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficient} is
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Innermost_coefficient_type} is
|
||||
\ccc{RealEmbeddable}.
|
||||
|
||||
\ccRefines
|
||||
|
|
@ -29,7 +29,7 @@ template <class InputIterator>
|
|||
Returns the sign of $p$ at the given homogeneous point, where $begin$ is
|
||||
referring to the innermost variable.
|
||||
\ccPrecond{\ccc{std::iterator_traits< InputIterator >::value_type} is
|
||||
\ccc{PolynomialTraits_d::Innermost_coefficient}.}
|
||||
\ccc{PolynomialTraits_d::Innermost_coefficient_type}.}
|
||||
\ccPrecond (end-begin == \ccc{PolynomialTraits_d::d} + 1)
|
||||
}
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ DefaultConstructible\\
|
|||
\ccMethod{template<class OutputIterator>
|
||||
OutputIterator operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
OutputIterator it,
|
||||
PolynomialTraits_d::Innermost_coefficient& a);}
|
||||
PolynomialTraits_d::Innermost_coefficient_type& a);}
|
||||
{ computes square-free factorization of $p$.\\
|
||||
The \ccc{OutputIterator} must allow the value type
|
||||
\ccc{std::pair<PolynomialTraits_d::Polynomial_d,int>}.
|
||||
|
|
@ -39,7 +39,7 @@ OutputIterator operator()(PolynomialTraits_d::Polynomial_d p,
|
|||
\ccMethod{template<class OutputIterator>
|
||||
OutputIterator operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
OutputIterator it,
|
||||
PolynomialTraits_d::Innermost_coefficient& a);}
|
||||
PolynomialTraits_d::Innermost_coefficient_type& a);}
|
||||
{ As the first operator, just not computing the factor $a$. }
|
||||
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ The pairs $(g_i,m_i)$ are written into the given output iterator.\\
|
|||
The constant factor $a$ is not computed.
|
||||
|
||||
This functor is well defined even though
|
||||
\ccc{PolynomialTraits_d::Innermost_coefficient} may not be a
|
||||
\ccc{PolynomialTraits_d::Innermost_coefficient_type} may not be a
|
||||
\ccc{UniqueFactorizationDomain}.
|
||||
|
||||
\ccRefines
|
||||
|
|
@ -34,7 +34,7 @@ DefaultConstructible\\
|
|||
\ccMethod{template<class OutputIterator>
|
||||
OutputIterator operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
OutputIterator it,
|
||||
PolynomialTraits_d::Innermost_coefficient& a);}
|
||||
PolynomialTraits_d::Innermost_coefficient_type& a);}
|
||||
{ computes square-free factorization of $p$.\\
|
||||
The \ccc{OutputIterator} must allow the value type
|
||||
\ccc{std::pair<PolynomialTraits_d::Polynomial_d,int>}.
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ This \ccc{Functor} substitutes all variables of a given multivariate
|
|||
iterator range, where begin refers the the value for the innermost variable.
|
||||
|
||||
Note that the \ccc{result_type} is the coercion type of the value type of the
|
||||
given iterator range and \ccc{PolynomialTraits_d::Innermost_coefficient}.
|
||||
given iterator range and \ccc{PolynomialTraits_d::Innermost_coefficient_type}.
|
||||
In particular \ccc{std::iterator_traits<Input_iterator>::value_type} must be at least
|
||||
\ccc{ExplicitInteroperable} with \ccc{PolynomialTraits_d::Innermost_coefficient}.
|
||||
\ccc{ExplicitInteroperable} with \ccc{PolynomialTraits_d::Innermost_coefficient_type}.
|
||||
|
||||
\ccRefines
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ For instance the polynomial $p(x_0,x_1) = x_0^2x_1^3+x_1^4$ is interpreted as th
|
|||
polynomial $p(x_0,x_1,w) = x_0^2x_1^3+x_1^4w^1$.
|
||||
|
||||
Note that the \ccc{result_type} is the coercion type of the value type of the
|
||||
given iterator range and \ccc{PolynomialTraits_d::Innermost_coefficient}.
|
||||
given iterator range and \ccc{PolynomialTraits_d::Innermost_coefficient_type}.
|
||||
In particular \ccc{std::iterator_traits<Input_iterator>::value_type} must be at least
|
||||
\ccc{ExplicitInteroperable} with \ccc{PolynomialTraits_d::Innermost_coefficient}.
|
||||
\ccc{ExplicitInteroperable} with \ccc{PolynomialTraits_d::Innermost_coefficient_type}.
|
||||
|
||||
\ccRefines
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ the polynomial is considered as a univariate polynomial in one specific variable
|
|||
\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d first_argument_type;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient second_argument_type;}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type second_argument_type;}{}
|
||||
|
||||
\ccOperations
|
||||
\ccMethod{result_type operator()(first_argument_type p,
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Given numerator $a$ and denominator $b$ this \ccc{AdaptableFunctor} translates a
|
|||
Note that this functor operates on the polynomial in the univariate view, that is,
|
||||
the polynomial is considered as a univariate polynomial in one specific variable.
|
||||
Moreover, the polynomial is considered as a homogeneous polynomial in that variable.
|
||||
Note that $a$ and $b$ are of type \ccc{PolynomialTraits_d::Coefficient}.
|
||||
Note that $a$ and $b$ are of type \ccc{PolynomialTraits_d::Coefficient_type}.
|
||||
|
||||
|
||||
\ccRefines
|
||||
|
|
@ -21,12 +21,12 @@ Note that $a$ and $b$ are of type \ccc{PolynomialTraits_d::Coefficient}.
|
|||
|
||||
\ccOperations
|
||||
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
PolynomialTraits_d::Coefficient a,
|
||||
PolynomialTraits_d::Coefficient b);}
|
||||
PolynomialTraits_d::Coefficient_type a,
|
||||
PolynomialTraits_d::Coefficient_type b);}
|
||||
{ return $b^{degree}\cdot p(x+a/b)$, with respect to the outermost variable. }
|
||||
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d p,
|
||||
PolynomialTraits_d::Coefficient a,
|
||||
PolynomialTraits_d::Coefficient b,
|
||||
PolynomialTraits_d::Coefficient_type a,
|
||||
PolynomialTraits_d::Coefficient_type b,
|
||||
int i);}
|
||||
{ Same as first operator but for variable $x_i$.
|
||||
\ccPrecond $0 \leq i < d$
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ with respect to the univariate (recursive) view on the
|
|||
polynomial, that is, it computes the gcd of all
|
||||
coefficients with respect to one variable.
|
||||
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Coefficient} is
|
||||
This functor is well defined if \ccc{PolynomialTraits_d::Coefficient_type} is
|
||||
a \ccc{Field} or a \ccc{UniqueFactorizationDomain}.
|
||||
|
||||
\ccRefines
|
||||
|
|
@ -18,7 +18,7 @@ a \ccc{Field} or a \ccc{UniqueFactorizationDomain}.
|
|||
|
||||
\ccCreationVariable{univariate_content}
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d argument_type;}{}\ccGlue
|
||||
|
||||
\ccOperations
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ does not exist since the result is trivial.
|
|||
\ccTypes
|
||||
|
||||
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Coefficient_type result_type;}{}\ccGlue
|
||||
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d first_argument_type;}{}\ccGlue
|
||||
\ccTypedef{typedef int second_argument_type;}{}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,18 +13,18 @@ all functionality related to polynomials is provided by the traits.
|
|||
|
||||
%The innermost coefficient type of the polynomial is accessible through
|
||||
%the traits, that is, the traits provides the public type
|
||||
%\ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Innermost_coefficient}.
|
||||
%\ccc{CGAL::Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type}.
|
||||
|
||||
\ccRefines
|
||||
|
||||
\ccc{IntegralDomainWithoutDiv} \\
|
||||
|
||||
The algebraic structure of \ccc{Polynomial_d} depends on the
|
||||
algebraic structure of \ccc{Innermost_coefficient}:
|
||||
algebraic structure of \ccc{Innermost_coefficient_type}:
|
||||
|
||||
\begin{tabular}{|l|l|}
|
||||
\hline
|
||||
\ccc{Innermost_coefficient}&\ccc{Polynomial_d}\\
|
||||
\ccc{Innermost_coefficient_type}&\ccc{Polynomial_d}\\
|
||||
\hline
|
||||
\ccc{IntegralDomainWithoutDiv}&\ccc{IntegralDomainWithoutDiv}\\
|
||||
\ccc{IntegralDomain}&\ccc{IntegralDomain}\\
|
||||
|
|
@ -37,7 +37,7 @@ algebraic structure of \ccc{Innermost_coefficient}:
|
|||
Note: In case the polynomial is univariate and the innermost coefficient is a \ccc{Field} the polynomial is model of \ccc{EuclideanRing}.
|
||||
|
||||
%Note:The concept \ccc{Polynomial_1} refines \ccc{EuclideanRing} in case
|
||||
%\ccc{Innermost_coefficient} is a \ccc{Field}.
|
||||
%\ccc{Innermost_coefficient_type} is a \ccc{Field}.
|
||||
|
||||
\ccSeeAlso
|
||||
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
\input{Polynomial_ref/intro.tex}
|
||||
|
||||
\input{Polynomial_ref/Polynomial_d.tex}
|
||||
%\input{Polynomial_ref/Polynomial_1.tex}
|
||||
%\input{Polynomial_ref/Polynomial_2.tex}
|
||||
\input{Polynomial_ref/Polynomial_d.tex}
|
||||
%%//\input{Polynomial_ref/Polynomial_1.tex}
|
||||
%%//\input{Polynomial_ref/Polynomial_2.tex}
|
||||
|
||||
\input{Polynomial_ref/PolynomialTraits_d.tex}
|
||||
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
\input{Polynomial_ref/PolynomialTraits_d_Compare.tex}
|
||||
|
||||
%\input{Polynomial_ref/PolynomialToolBox_d.tex}
|
||||
%//%\input{Polynomial_ref/PolynomialToolBox_d.tex}
|
||||
|
||||
\input{Polynomial_ref/PolynomialTraits_d_UnivariateContent.tex}
|
||||
\input{Polynomial_ref/PolynomialTraits_d_MultivariateContent.tex}
|
||||
|
|
@ -54,6 +54,8 @@
|
|||
\input{Polynomial_ref/PolynomialTraits_d_UnivariateContentUpToConstantFactor.tex}
|
||||
\input{Polynomial_ref/PolynomialTraits_d_SquareFreeFactorizeUpToConstantFactor.tex}
|
||||
|
||||
|
||||
|
||||
\input{Polynomial_ref/PolynomialTraits_d_Shift.tex}
|
||||
\input{Polynomial_ref/PolynomialTraits_d_Negate.tex}
|
||||
\input{Polynomial_ref/PolynomialTraits_d_Invert.tex}
|
||||
|
|
@ -65,11 +67,11 @@
|
|||
\input{Polynomial_ref/PolynomialTraits_d_Resultant.tex}
|
||||
|
||||
%// This was added by Michael Kerber, missing review
|
||||
%\input{Polynomial_ref/PolynomialTraits_d_Polynomial_subresultants.tex}
|
||||
%\input{Polynomial_ref/PolynomialTraits_d_Principal_subresultants.tex}
|
||||
%\input{Polynomial_ref/PolynomialTraits_d_Sturm_habicht_sequence.tex}
|
||||
%\input{Polynomial_ref/PolynomialTraits_d_Sturm_habicht_sequence_with_cofactors.tex}
|
||||
%\input{Polynomial_ref/PolynomialTraits_d_Principal_sturm_habicht_sequence.tex}
|
||||
%%\input{Polynomial_ref/PolynomialTraits_d_Polynomial_subresultants.tex}
|
||||
%%\input{Polynomial_ref/PolynomialTraits_d_Principal_subresultants.tex}
|
||||
%%\input{Polynomial_ref/PolynomialTraits_d_Sturm_habicht_sequence.tex}
|
||||
%%\input{Polynomial_ref/PolynomialTraits_d_Sturm_habicht_sequence_with_cofactors.tex}
|
||||
%%\input{Polynomial_ref/PolynomialTraits_d_Principal_sturm_habicht_sequence.tex}
|
||||
|
||||
\input{Polynomial_ref/Polynomial.tex}
|
||||
\input{Polynomial_ref/Polynomial_traits_d.tex}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
However, the \ccc{Polynomial_traits} could easily derive from \ccc{Algebraic_structure_traits}.\\
|
||||
see also package: \ccc{Algebraic_foundations}.
|
||||
|
||||
\item \ccc{PolynomialTraits_d::Evaluate}: take \ccc{Innermost_coefficient} as argument type only.
|
||||
\item \ccc{PolynomialTraits_d::Evaluate}: take \ccc{Innermost_coefficient_type} as argument type only.
|
||||
this relates \ccc{Coercion_traits} \ccc{Algebraic_foundations}
|
||||
|
||||
\item This is just the general concept for \ccc{Polynomial_d}. \\
|
||||
|
|
|
|||
Loading…
Reference in New Issue