cgal/Polynomial/doc_tex/Polynomial_ref/polynomial_utils.tex

1031 lines
38 KiB
TeX

% GetCoefficient
% GetInnermostCoefficient
% ConstructCoefficientConstIteratorRange
% ConstructInnermostCoefficientConstIteratorRange
% Permute
\begin{ccRefFunction}{permute}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Permute}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d, class InputIterator >
Polynomial_traits_d<Polynomial_d>::Permute::result_type
permute(const Polynomial_d& p, InputIterator begin, InputIterator end );
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Permute}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Permute}\\
\end{ccRefFunction}
% Swap
\begin{ccRefFunction}{swap}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Swap}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Swap::result_type
swap(const Polynomial_d& p, int i, int j);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Swap}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Swap}\\
\end{ccRefFunction}
% Move
\begin{ccRefFunction}{move}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Move}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Move::result_type
move(const Polynomial_d& p, int i, int j);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Move}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Move}\\
\end{ccRefFunction}
% Degree
\begin{ccRefFunction}{degree}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Degree}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Degree::result_type
degree(const Polynomial_d& p,
int i,
index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Degree}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Degree}\\
\end{ccRefFunction}
% TotalDegree
\begin{ccRefFunction}{total_degree}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::TotalDegree}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Total_degree::result_type
total_degree(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Total_degree}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::TotalDegree}\\
\end{ccRefFunction}
% DegreeVector
\begin{ccRefFunction}{degree_vector}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::DegreeVector}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Degree_vector::result_type
degree_vector(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::DegreeVector}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Degree_vector}\\
\end{ccRefFunction}
% LeadingCoefficient
\begin{ccRefFunction}{leading_coefficient}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::LeadingCoefficient}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Leading_coefficient::result_type
leading_coefficient(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Leading_coefficient}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::LeadingCoefficient}\\
\end{ccRefFunction}
% InnermostLeadingCoefficient
\begin{ccRefFunction}{innermost_leading_coefficient}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept
\ccc{PolynomialTraits_d::InnermostLeadingCoefficient}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Innermost_leading_coefficient::result_type
innermost_leading_coefficient(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::InnermostLeadingCoefficient}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::InnermostLeadingCoefficient}\\
\end{ccRefFunction}
% Canonicalize
\begin{ccRefFunction}{canonicalize}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Canonicalize}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Canonicalize::result_type
canonicalize(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Canonicalize}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Canonicalize}\\
\end{ccRefFunction}
% Differentiate
\begin{ccRefFunction}{differentiate}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Differentiate}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Differentiate::result_type
differentiate(const Polynomial_d& p,
index = Polynomial_traits_d<Polynomial_d>::d-1 );
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Differentiate}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Differentiate}\\
\end{ccRefFunction}
% Evaluate
\begin{ccRefFunction}{evaluate}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Evaluate}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Evaluate::result_type
evaluate(const Polynomial_d& p,
Polynomial_traits_d<Polynomial_d>::Coefficient_type x);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Evaluate}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Evaluate}\\
\end{ccRefFunction}
% EvaluateHomogeneous
\begin{ccRefFunction}{evaluate_homogeneous}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::EvaluateHomogeneous}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Evaluate_homogeneous::result_type
evaluate_homogeneous(
const Polynomial_d& p,
Polynomial_traits_d<Polynomial_d>::Coefficient_type u,
Polynomial_traits_d<Polynomial_d>::Coefficient_type v);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Evaluate_homogeneous}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::EvaluateHomogeneous}\\
\end{ccRefFunction}
% Substitute
\begin{ccRefFunction}{substitute}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Substitute}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template < class Polynomial_d, class InputIterator >
CGAL::Coercion_traits<
Polynomial_traits_d<Polynomial_d>::Innermost_coefficient,
std::iterator_traits<Input_iterator>::value_type
>::Type
substitute(
const Polynomial_d& p, InputIterator begin, InputIterator end);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Substitute}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Substitute}\\
\end{ccRefFunction}
% IsZeroAt
\begin{ccRefFunction}{is_zero_at}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::IsZeroAt}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template < class Polynomial_d, class InputIterator >
Polynomial_traits_d<Polynomial_d>::Is_zero_at::result_type
is_zero_at(
const Polynomial_d& p, InputIterator begin, InputIterator end);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Is_zero_at}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::IsZeroAt}\\
\end{ccRefFunction}
% SignAt
\begin{ccRefFunction}{sign_at}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::SignAt}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template < class Polynomial_d, class InputIterator >
Polynomial_traits_d<Polynomial_d>::Sign_at::result_type
sign_at(
const Polynomial_d& p, InputIterator begin, InputIterator end);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Sign_at}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::SignAt}\\
\end{ccRefFunction}
% SubstituteHomogeneous
\begin{ccRefFunction}{substitute_homogeneous}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::SubstituteHomogeneous}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template < class Polynomial_d, class InputIterator >
CGAL::Coercion_traits<
Polynomial_traits_d<Polynomial_d>::Innermost_coefficient,
std::iterator_traits<Input_iterator>::value_type
>::Type
substitute_homogeneous(
const Polynomial_d& p, InputIterator begin, InputIterator end);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Substitute_homogeneous}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::SubstituteHomogeneous}\\
\end{ccRefFunction}
% IsZeroAtHomogeneous
\begin{ccRefFunction}{is_zero_at_homogeneous}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::IsZeroAtHomogeneous}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template < class Polynomial_d, class InputIterator >
Polynomial_traits_d<Polynomial_d>::Is_zero_at_homogeneous::result_type
is_zero_at_homogeneous(
const Polynomial_d& p, InputIterator begin, InputIterator end);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Is_zero_at_homogeneous}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::IsZeroAtHomogeneous}\\
\end{ccRefFunction}
% SignAtHomogeneous
\begin{ccRefFunction}{sign_at_homogeneous}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::SignAtHomogeneous}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template < class Polynomial_d, class InputIterator >
Polynomial_traits_d<Polynomial_d>::Sign_at_homogeneous::result_type
sign_at_homogeneous(
const Polynomial_d& p, InputIterator begin, InputIterator end);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Sign_at_homogeneous}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::SignAtHomogeneous}\\
\end{ccRefFunction}
% Compare
\begin{ccRefFunction}{compare}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Compare}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Compare::result_type
compare(const Polynomial_d& p, const Polynomial_d& q);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Compare}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Compare}\\
\end{ccRefFunction}
% UnivariateContent
\begin{ccRefFunction}{univariate_content}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::UnivariateContent}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Univariate_content::result_type
univariate_content(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::UnivariateContent}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Univariate_Content}\\
\end{ccRefFunction}
% MultivariateContent
\begin{ccRefFunction}{multivariate_content}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::MultivariateContent}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Multivariate_content::result_type
multivariate_content(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Multivariate_content}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::MultivariateContent}\\
\end{ccRefFunction}
% SquareFreeFactorize
\begin{ccRefFunction}{square_free_factorize}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::SquareFreeFactorize}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d, class OutputIterator >
OutputIterator
square_free_factorize(
const Polynomial_d& p,
OutputIterator it,
Polynomial_traits_d<Polynomial>::Innermost_coefficient& a);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Square_free_factorize}.
}
\ccFunction{
template <class Polynomial_d, class OutputIterator >
OutputIterator
square_free_factorize(const Polynomial_d& p, OutputIterator it);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Square_free_factorize}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::SquareFreeFactorize}\\
\end{ccRefFunction}
% MakeSquareFree
\begin{ccRefFunction}{make_square_free}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::MakeSquareFree}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Make_square_free::result_type
make_square_free(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Make_square_free}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::MakeSquareFree}\\
\end{ccRefFunction}
% IsSquareFree
\begin{ccRefFunction}{is_square_free}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::IsSquareFree}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Is_square_free::result_type
is_square_free(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Is_square_free}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::IsSquareFree}\\
\end{ccRefFunction}
% PseudoDivision
\begin{ccRefFunction}{pseudo_division}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::PseudoDivision}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
void
pseudo_division(
const Polynomial_d& f, const Polynomial_d& g,
Polynomial_d& q, Polynomial_d& r, Polynomial_traits_d<Polynomial_d>::Coefficient_type& D );
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Pseudo_division}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PseudoDivision}\\
\end{ccRefFunction}
% PseudoDivisionQuotient
\begin{ccRefFunction}{pseudo_division_quotient}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::PseudoDivisionQuotient}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Pseudo_division_quotient::result_type
pseudo_division_quotient(const Polynomial_d& p, const Polynomial_d& q);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Pseudo_division_quotient}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PseudoDivisionQuotient}\\
\end{ccRefFunction}
% PseudoDivisionRemainder
\begin{ccRefFunction}{pseudo_division_remainder}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::PseudoDivisionRemainder}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Pseudo_division_remainder::result_type
pseudo_division_remainder(const Polynomial_d& p, const Polynomial_d& q);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Pseudo_division_remainder}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PseudoDivisionRemainder}\\
\end{ccRefFunction}
% GcdUpToConstantFactor
\begin{ccRefFunction}{gcd_up_to_constant_factor}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::GcdUpToConstantFactor}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Gcd_up_to_constant_factor::result_type
gcd_up_to_constant_factor(const Polynomial_d& p, const Polynomial_d& q);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Gcd_up_to_constant_factor}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::GcdUpToConstantFactor}\\
\end{ccRefFunction}
% IntegralDivisionUpToConstantFactor
\begin{ccRefFunction}{integral_division_up_to_constant_factor}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::IntegralDivisionUpToConstantFactor}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Integral_division_up_to_constant_factor::result_type
integral_division_up_to_constant_factor(const Polynomial_d& p, const Polynomial_d& q);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Integral_division_up_to_constant_factor}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::IntegralDivisionUpToConstantFactor}\\
\end{ccRefFunction}
% UnivariateContentUpToConstantFactor
\begin{ccRefFunction}{univariate_content_up_to_constant_factor}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::UnivariateContentUpToConstantFactor}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Univariate_content_up_to_constant_factor::result_type
univariate_content_up_to_constant_factor(const Polynomial_d& p);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Univariate_content_up_to_constant_factor}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::UnivariateContentUpToConstantFactor}\\
\end{ccRefFunction}
% SquareFreeFactorizeUpToConstantFactorUpToConstantFactor
\begin{ccRefFunction}{square_free_factorize_up_to_constant_factor}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::SquareFreeFactorizeUpToConstantFactor}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d, class OutputIterator >
OutputIterator
square_free_factorize_up_to_constant_factor(const Polynomial_d& p, OutputIterator it);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Square_free_factorize_up_to_constant_factor}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::SquareFreeFactorizeUpToConstantFactor}\\
\end{ccRefFunction}
% Shift
\begin{ccRefFunction}{shift}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Shift}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Shift::result_type
shift(const Polynomial_d& p, int i, int index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Shift}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Shift}\\
\end{ccRefFunction}
% Negate
\begin{ccRefFunction}{negate}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Negate}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Negate::result_type
negate(const Polynomial_d& p, int index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Negate}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Negate}\\
\end{ccRefFunction}
% Invert
\begin{ccRefFunction}{invert}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Invert}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Invert::result_type
invert(const Polynomial_d& p, int index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Invert}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Invert}\\
\end{ccRefFunction}
% Translate
\begin{ccRefFunction}{translate}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Translate}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Translate::result_type
translate(
const Polynomial_d& p,
const Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type& a,
int index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Translate}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Translate}\\
\end{ccRefFunction}
% TranslateHomogeneous
\begin{ccRefFunction}{translate_homogeneous}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::TranslateHomogeneous}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Translate_homogeneous::result_type
translate_homogeneous(
const Polynomial_d& p,
const Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type& u,
const Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type& v,
int index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Translate_homogeneous}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::TranslateHomogeneous}\\
\end{ccRefFunction}
% Scale
\begin{ccRefFunction}{scale}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Scale}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Scale::result_type
scale(
const Polynomial_d& p,
const Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type& a,
int index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Scale}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Scale}\\
\end{ccRefFunction}
% ScaleHomogeneous
\begin{ccRefFunction}{scale_homogeneous}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::ScaleHomogeneous}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Scale_homogeneous::result_type
scale_homogeneous(
const Polynomial_d& p,
const Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type& u,
const Polynomial_traits_d<Polynomial_d>::Innermost_coefficient_type& v,
int index = Polynomial_traits_d<Polynomial_d>::d-1);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Scale_homogeneous}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::ScaleHomogeneous}\\
\end{ccRefFunction}
% Resultant
% Compare
\begin{ccRefFunction}{resultant}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept \ccc{PolynomialTraits_d::Resultant}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}
\ccFunction{
template <class Polynomial_d>
Polynomial_traits_d<Polynomial_d>::Resultant::result_type
resultant(const Polynomial_d& p, const Polynomial_d& q);
}{
Adapts \ccc{Polynomial_traits_d<Polynomial_d>::Resultant}.
}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::Resultant}\\
\end{ccRefFunction}
% polynomial_subresultants
\begin{ccRefFunction}{polynomial_subresultants}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept
\ccc{PolynomialTraits_d::PolynomialSubresultants}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}\\ \\
\ccFunction{template<typename Polynomial_d,typename OutputIterator>
OutputIterator polynomial_subresultants
(Polynomial_d p,
Polynomial_d q,
OutputIterator out);}
{ computes the polynomial subresultants of $p$ and $q$,
with respect to the outermost variable. Each element is of type
\ccc{Polynomial_d}.}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PolynomialSubresultants}\\
\end{ccRefFunction}
% polynomial_subresultants_with_cofactors
\begin{ccRefFunction}{polynomial_subresultants_with_cofactors}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept
\ccc{PolynomialTraits_d::PolynomialSubresultantsWithCofactors}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}\\ \\
\ccFunction{template<typename Polynomial_d,
typename OutputIterator1,
typename OutputIterator2,
typename OutputIterator3>
OutputIterator1 polynomial_subresultants_with_cofactors
(Polynomial_d p,
Polynomial_d q,
OutputIterator1 sres_out,
OutputIterator2 coP_out,
OutputIterator3 coQ_out);}
{ computes the polynomial subresultants of $p$ and $q$,
\ccc{sres_out}, with respect to the outermost variable, and
the cofactors for $P$, \ccc{coP_out} and $Q$, \ccc{coQ_out}.
The elements of each output range are of type
\ccc{Polynomial_d}.}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PolynomialSubresultantsWithCofactors}\\
\end{ccRefFunction}
% principal_subresultants
\begin{ccRefFunction}{principal_subresultants}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept
\ccc{PolynomialTraits_d::PrincipalSubresultants}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}\\ \\
\ccFunction{template<typename Polynomial_d,typename OutputIterator>
OutputIterator principal_subresultants
(Polynomial_d p,
Polynomial_d q,
OutputIterator out);}
{ computes the principal subresultants of $p$ and $q$,
with respect to the outermost variable. Each element is of type
\ccc{Polynomial_traits_d<Polynomial_d>::Coefficient_type}.}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PrincipalSubresultants}\\
\end{ccRefFunction}
% sturm_habicht_sequence
\begin{ccRefFunction}{sturm_habicht_sequence}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept
\ccc{PolynomialTraits_d::SturmHabichtSequence}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}\\ \\
\ccFunction{template<typename Polynomial_d,typename OutputIterator> OutputIterator
sturm_habicht_sequence(Polynomial_d f,
OutputIterator out);}
{ computes the Sturm-Habicht-sequence of $f$
with respect to the outermost variable. Each element is of type
\ccc{Polynomial_d}.}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::SturmHabichtSequence}\\
\end{ccRefFunction}
% sturm_habicht_sequence_with_cofactors
\begin{ccRefFunction}{sturm_habicht_sequence_with_cofactors}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept
\ccc{PolynomialTraits_d::SturmHabichtSequenceWithCofactors}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}\\ \\
\ccFunction{template<typename Polynomial_d,
typename OutputIterator1,
typename OutputIterator2,
typename OutputIterator3>
OutputIterator1
sturm_habicht_sequence_with_cofactors
(Polynomial_d f,
OutputIterator1 stha_out,
OutputIterator2 cof_out,
OutputIterator3 cofx_out);}
{ computes the Sturm-Habicht sequence of $f$
\ccc{stha_out}, with respect to the outermost variable, and
the cofactors for $f$, \ccc{cof_out} and $f'$, \ccc{cofx_out}.
The elements of each output range are of type
\ccc{Polynomial_d}.}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::SturmHabichtSequenceWithCofactors}\\
\end{ccRefFunction}
% principal_sturm_habicht_sequence
\begin{ccRefFunction}{principal_sturm_habicht_sequence}
\ccDefinition
For a given \ccc{Polynomial_d} the function \ccRefName\ adapts the
according functor in \ccc{Polynomial_traits_d<Polynomial_d>}. \\ \\
For more details see the concept
\ccc{PolynomialTraits_d::PrincipalSturmHabichtSequence}. \\ \\
\ccInclude{CGAL/polynomial_utils.h}\\ \\
\ccFunction{ template <typename Polynomial_d,typename OutputIterator> inline
OutputIterator
principal_sturm_habicht_sequence
(typename Polynomial_d f,
OutputIterator out);}
{ computes the principal Sturm-Habicht coefficients of $f$
with respect to the outermost variable. Each element is of type
\ccc{Polynomial_traits_d<Polynomial_d>::Coefficient_type}.}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PrincipalSturmHabichtSequence}\\
\end{ccRefFunction}
% number_of_real_roots
\begin{ccRefFunction}{number_of_real_roots}
\ccDefinition
Given a polynomial $f$, or a range of values that is interpreted
as the principal Sturm-Habicht coefficients of $f$, the function computes
$$m:=\# \{\alpha\in\mathbb{R}\mid f(\alpha)=0\}$$
that is, the number of distinct real roots of $f$.
The coefficient type of the polynomial,
or the value type of the iterator range, respectively
must be a model of \ccc{RealEmbeddable}.
In the second version,
it is not required to pass the exact princiapl Sturm-Habicht coefficients
to the functions; it is only required that the sign of each element
corresponds to the sign of the actual principal Sturm-Habicht coefficient.
\begin{ccAdvanced}
We explain the internals of this function.
For a sequence $I:=(a_0,\ldots,a_n)$ of real numbers with $a_0\neq 0$, define
$$C(I)=\ccSum{i=1}{s}\epsilon_i$$
where $s$ is the number of subsequences of $I$ of the form
\begin{ccTexOnly}
$$(a,\underbrace{0,\ldots,0}_k,b)$$
\end{ccTexOnly}
\begin{ccHtmlOnly}
<CENTER>
<IMG BORDER=0 SRC="./underbrace.gif" ALIGN=middle ALT="">
</CENTER>
\end{ccHtmlOnly}
with $a\neq 0,b\neq 0, k\geq 0$.\\
For the $i$-th subsequence of $I$, define
$$\epsilon_i:=\begin{array}{cc}
0 & \mbox{if $k$ is odd},\\
(-1)^{k/2}\mathrm{sign}(ab) & \mbox{if $k$ is even}.
\end{array}$$
For $f\in\mathbb{R}[x]$ with $\deg f=n$, we have:
$$C(\mathrm{stha}_n(f),\ldots,\mathrm{stha}_0(f)) = \#\{\alpha\in\R\mid f(\alpha)=0\}$$
In other words, the signs of the principal Sturm-Habicht coefficients
determine the number of distinct real roots of $f$.
\end{ccAdvanced}
\ccOperations
\ccFunction{ template<typename Polynomial_d>
int number_of_real_roots(Polynomial_d f);}
{ computes the number of distinct real roots of $f$}
\ccFunction{ template<typename InputIterator>
int number_of_real_roots(InputIterator start,InputIterator end);}
{ computes the number of distinct real roots of $f$ whose principal Sturm-Habicht coefficients are passed by the iterator range.}
\ccSeeAlso
\ccRefConceptPage{Polynomial_d}\\
\ccRefConceptPage{PolynomialTraits_d}\\
\ccRefConceptPage{PolynomialTraits_d::PrincipalSturmHabichtSequence}\\
\end{ccRefFunction}