cgal/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_SquareFr...

68 lines
2.7 KiB
TeX

\begin{ccRefConcept}{PolynomialTraits_d::SquareFreeFactorization}
\ccDefinition
This \ccc{AdaptableFunctor} computes a square-free factorization
of a \ccc{PolynomialTraits_d::Polynomial_d}.
A polynomial $p$ is factored into square-free and pairwise coprime non-constant
factors $g_i$ with multiplicities $m_i$ and a constant factor $a$, such that
$p = a \cdot g_1m_1 \cdot ... \cdot g_nm_n$.
The provided operator returns the number of factors $n$.
The factors $g_i$ and
multiplicities $m_i$ are written through the respective output iterators,
$a$ is a constant factor of type \ccc{PolynomialTraits_d::Innermost_coefficient}
\ccRefines
\ccTypes
\ccTypedef{typedef int result_type;}{}
\ccOperations
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
\ccCreationVariable{sqaure_free_factorization}
\ccMethod{template<class OutputIterator_1, class OutputIterator_2>
int operator()(PolynomialTraits_d::Polynomial_d p,
OutputIterator_1 it_1,
OutputIterator_2 it_2,
PolynomialTraits_d::Innermost_coefficient& a);}{
computes square-free factorization of $p$.\\
\ccPrecond \ccc{OutputIterator_1} must allow the value type
\ccc{PolynomialTraits_d:.Polynomial_d}.
\ccPrecond \ccc{OutputIterator_2} must allow the value type int.}
% This is the original documentation, but the manual tools are not able to handle this part:
%\ccMethod{template<class OutputIterator_1, class OutputIterator_2>
% int
% operator()(PolynomialTraits_d::Polynomial_d p,
% OutputIterator_1 it_1,
% OutputIterator_2 it_2,
% PolynomialTraits_d::Innermost_coefficient& a);}
% { factor the polynomial $p$ by multiplicities.
% That means: factor it into square-free and pairwise coprime non-constant factors $g_i$
% with multiplicities $m_i$ such that $p = a \cdot g_1m_1 \cdot ... \cdot g_nm_n$.
%
% This is known as square-free factorization in the literature.
% The number n is returned. The factors $g_i$ and multiplicities $m_i$ are written through
% the respective output iterators.\\
%
% \ccPrecond \ccc{OutputIterator_1} must allow the value type \ccc{PolynomialTraits_d:.Polynomial_d}. \\
% \ccPrecond \ccc{OutputIterator_1} must allow the value type int.
% }
%\ccHasModels
\ccSeeAlso
\ccRefIdfierPage{Polynomial_d}\\
\ccRefIdfierPage{PolynomialTraits_d}\\
\ccRefIdfierPage{PolynomialTraits_d::SquareFreeFactorizationUpToConstantFactor}\\
\ccRefIdfierPage{PolynomialTraits_d::MakeSquareFree}\\
\end{ccRefConcept}