Innermost_coefficient -> Innermost_coefficient_type

Coefficient -> Coefficient_type
This commit is contained in:
Michael Hemmer 2008-08-07 12:12:36 +00:00
parent cbfe39e67c
commit 3ffec6b1fe
35 changed files with 85 additions and 86 deletions

View File

@ -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}

View File

@ -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}.}

View File

@ -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}.}

View File

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

View File

@ -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

View File

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

View File

@ -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,

View File

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

View File

@ -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

View File

@ -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;}{}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;}{}

View File

@ -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,

View File

@ -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,

View File

@ -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}$.
}

View File

@ -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

View File

@ -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,

View File

@ -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$

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>}.

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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$

View File

@ -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

View File

@ -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;}{}

View File

@ -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

View File

@ -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}

View File

@ -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}. \\