From 0c03354117e9bb783e9f08feedc964a5c463d350 Mon Sep 17 00:00:00 2001 From: Michael Hemmer Date: Tue, 23 Jun 2009 13:51:26 +0000 Subject: [PATCH] added PT::IsSquareFree and CGAL::is_square_free --- .gitattributes | 1 + .../PolynomialTraits_d_IsSquareFree.tex | 36 +++++++++++++++++++ .../PolynomialTraits_d_MakeSquareFree.tex | 2 ++ ...PolynomialTraits_d_SquareFreeFactorize.tex | 1 + Polynomial/doc_tex/Polynomial_ref/intro.tex | 1 + Polynomial/doc_tex/Polynomial_ref/main.tex | 1 + .../Polynomial_ref/polynomial_utils.tex | 21 +++++++++++ 7 files changed, 63 insertions(+) create mode 100644 Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsSquareFree.tex diff --git a/.gitattributes b/.gitattributes index c024d9399f3..22fda117f80 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3028,6 +3028,7 @@ Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_DegreeVector.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_GetCoefficient.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_GetInnermostCoefficient.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_InnermostLeadingCoefficient.tex -text +Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsSquareFree.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsZeroAt.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsZeroAtHomogeneous.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_MonomialRepresentation.tex -text diff --git a/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsSquareFree.tex b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsSquareFree.tex new file mode 100644 index 00000000000..de829f0c118 --- /dev/null +++ b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsSquareFree.tex @@ -0,0 +1,36 @@ +\begin{ccRefConcept}{PolynomialTraits_d::IsSquareFree} +\ccDefinition + +This \ccc{AdaptableBinaryFunction} computes whether the given +a polynomial of type \ccc{PolynomialTraits_d::Polynomial_d} +is square free. + +Note that this statement does cover constant factors, +i.e., whether the multivariate content contains a square + +\ccRefines +\ccc{AdaptableUnaryFunction} + +\ccTypes + +\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{} +\ccCreationVariable{fo} +\ccTypedef{typedef bool result_type;}{}\ccGlue +\ccTypedef{typedef PolynomialTraits_d::Polynomial_d argument_type;}{} + +\ccOperations +\ccMethod{result_type operator()(argument_type p);} + { Returns whether the $p$ is square free. } + + +%\ccHasModels + +\ccSeeAlso + +\ccRefIdfierPage{Polynomial_d}\\ +\ccRefIdfierPage{PolynomialTraits_d}\\ +\ccRefIdfierPage{PolynomialTraits_d::SquareFreeFactorize}\\ +\ccRefIdfierPage{PolynomialTraits_d::MakeSquareFree}\\ +\ccRefIdfierPage{PolynomialTraits_d::MultivariateContent}\\ + +\end{ccRefConcept} diff --git a/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_MakeSquareFree.tex b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_MakeSquareFree.tex index 343fa24c584..6cfe9591ae9 100644 --- a/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_MakeSquareFree.tex +++ b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_MakeSquareFree.tex @@ -35,5 +35,7 @@ which is computed by this functor. \ccRefIdfierPage{Polynomial_d}\\ \ccRefIdfierPage{PolynomialTraits_d}\\ \ccRefIdfierPage{PolynomialTraits_d::Canonicalize}\\ +\ccRefIdfierPage{PolynomialTraits_d::SquareFreeFactorize}\\ +\ccRefIdfierPage{PolynomialTraits_d::IsSquareFree}\\ \end{ccRefConcept} diff --git a/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_SquareFreeFactorize.tex b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_SquareFreeFactorize.tex index 0abbb3b7db7..d467bccab34 100644 --- a/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_SquareFreeFactorize.tex +++ b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_SquareFreeFactorize.tex @@ -51,5 +51,6 @@ OutputIterator operator()(PolynomialTraits_d::Polynomial_d p, \ccRefIdfierPage{PolynomialTraits_d}\\ \ccRefIdfierPage{PolynomialTraits_d::SquareFreeFactorizeUpToConstantFactor}\\ \ccRefIdfierPage{PolynomialTraits_d::MakeSquareFree}\\ +\ccRefIdfierPage{PolynomialTraits_d::IsSquareFree}\\ \end{ccRefConcept} diff --git a/Polynomial/doc_tex/Polynomial_ref/intro.tex b/Polynomial/doc_tex/Polynomial_ref/intro.tex index cbf7b6ddf34..d479ee32fa4 100644 --- a/Polynomial/doc_tex/Polynomial_ref/intro.tex +++ b/Polynomial/doc_tex/Polynomial_ref/intro.tex @@ -59,6 +59,7 @@ \ccRefConceptPage{PolynomialTraits_d::SquareFreeFactorize}\\ \ccRefConceptPage{PolynomialTraits_d::MakeSquareFree}\\ +\ccRefConceptPage{PolynomialTraits_d::IsSquareFree}\\ \ccRefConceptPage{PolynomialTraits_d::PseudoDivision}\\ \ccRefConceptPage{PolynomialTraits_d::PseudoDivisionQuotient}\\ diff --git a/Polynomial/doc_tex/Polynomial_ref/main.tex b/Polynomial/doc_tex/Polynomial_ref/main.tex index 8d9c398af7a..db5639a8f8f 100644 --- a/Polynomial/doc_tex/Polynomial_ref/main.tex +++ b/Polynomial/doc_tex/Polynomial_ref/main.tex @@ -49,6 +49,7 @@ \input{Polynomial_ref/PolynomialTraits_d_SquareFreeFactorize.tex} \input{Polynomial_ref/PolynomialTraits_d_MakeSquareFree.tex} +\input{Polynomial_ref/PolynomialTraits_d_IsSquareFree.tex} \input{Polynomial_ref/PolynomialTraits_d_PseudoDivision.tex} \input{Polynomial_ref/PolynomialTraits_d_PseudoDivisionQuotient.tex} diff --git a/Polynomial/doc_tex/Polynomial_ref/polynomial_utils.tex b/Polynomial/doc_tex/Polynomial_ref/polynomial_utils.tex index a74d7c37777..846540aaa83 100644 --- a/Polynomial/doc_tex/Polynomial_ref/polynomial_utils.tex +++ b/Polynomial/doc_tex/Polynomial_ref/polynomial_utils.tex @@ -470,6 +470,7 @@ Adapts \ccc{Polynomial_traits_d::Square_free_factorize}. \ccRefConceptPage{PolynomialTraits_d}\\ \ccRefConceptPage{PolynomialTraits_d::SquareFreeFactorize}\\ \end{ccRefFunction} + % MakeSquareFree \begin{ccRefFunction}{make_square_free} \ccDefinition @@ -490,6 +491,26 @@ Adapts \ccc{Polynomial_traits_d::Make_square_free}. \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}. \\ \\ +For more details see the concept \ccc{PolynomialTraits_d::IsSquareFree}. \\ \\ +\ccInclude{CGAL/polynomial_utils.h} +\ccFunction{ +template +Polynomial_traits_d::Is_square_free::result_type +is_square_free(const Polynomial_d& p); +}{ +Adapts \ccc{Polynomial_traits_d::Is_square_free}. +} +\ccSeeAlso +\ccRefConceptPage{Polynomial_d}\\ +\ccRefConceptPage{PolynomialTraits_d}\\ +\ccRefConceptPage{PolynomialTraits_d::IsSquareFree}\\ +\end{ccRefFunction} + % PseudoDivision \begin{ccRefFunction}{pseudo_division} \ccDefinition