\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12.1 - Algebraic Foundations
Class and Concept List
Here is the list of all concepts and classes of this package. Classes are inside the namespace CGAL. Concepts are in the global namespace.
[detail level 12]
 NAlgebraicStructureTraits_
 CDivAdaptableBinaryFunction computes the integral quotient of division with remainder
 CDividesAdaptableBinaryFunction, returns true if the first argument divides the second argument
 CDivModAdaptableFunctor computes both integral quotient and remainder of division with remainder. The quotient \( q\) and remainder \( r\) are computed such that \( x = q*y + r\) and \( |r| < |y|\) with respect to the proper integer norm of the represented ring. For integers this norm is the absolute value. For univariate polynomials this norm is the degree. In particular, \( r\) is chosen to be \( 0\) if possible. Moreover, we require \( q\) to be minimized with respect to the proper integer norm
 CGcdAdaptableBinaryFunction providing the gcd
 CIntegralDivisionAdaptableBinaryFunction providing an integral division
 CInverseAdaptableUnaryFunction providing the inverse element with respect to multiplication of a Field
 CIsOneAdaptableUnaryFunction, returns true in case the argument is the one of the ring
 CIsSquareAdaptableBinaryFunction that computes whether the first argument is a square. If the first argument is a square the second argument, which is taken by reference, contains the square root. Otherwise, the content of the second argument is undefined
 CIsZeroAdaptableUnaryFunction, returns true in case the argument is the zero element of the ring
 CKthRootAdaptableBinaryFunction providing the k-th root
 CModAdaptableBinaryFunction computes the remainder of division with remainder
 CRootOfAdaptableFunctor computes a real root of a square-free univariate polynomial
 CSimplifyThis AdaptableUnaryFunction may simplify a given object
 CSqrtAdaptableUnaryFunction providing the square root
 CSquareAdaptableUnaryFunction, computing the square of the argument
 CUnitPartThis AdaptableUnaryFunction computes the unit part of a given ring element
 NCGAL
 CAlgebraic_structure_traitsAn instance of Algebraic_structure_traits is a model of AlgebraicStructureTraits, where T is the associated type
 CCoercion_traitsAn instance of Coercion_traits reflects the type coercion of the types A and B, it is symmetric in the two template arguments
 CEuclidean_ring_tagTag indicating that a type is a model of the EuclideanRing concept
 CField_tagTag indicating that a type is a model of the Field concept
 CField_with_kth_root_tagTag indicating that a type is a model of the FieldWithKthRoot concept
 CField_with_root_of_tagTag indicating that a type is a model of the FieldWithRootOf concept
 CField_with_sqrt_tagTag indicating that a type is a model of the FieldWithSqrt concept
 CFraction_traitsAn instance of Fraction_traits is a model of FractionTraits, where T is the associated type
 CIntegral_domain_tagTag indicating that a type is a model of the IntegralDomain concept
 CIntegral_domain_without_division_tagTag indicating that a type is a model of the IntegralDomainWithoutDivision concept
 CReal_embeddable_traitsAn instance of Real_embeddable_traits is a model of RealEmbeddableTraits, where T is the associated type
 CUnique_factorization_domain_tagTag indicating that a type is a model of the UniqueFactorizationDomain concept
 NFractionTraits_
 CCommonFactorAdaptableBinaryFunction, finds great common factor of denominators
 CComposeAdaptableBinaryFunction, returns the fraction of its arguments
 CDecomposeFunctor decomposing a Fraction into its numerator and denominator
 NRealEmbeddableTraits_
 CAbsAdaptableUnaryFunction computes the absolute value of a number
 CCompareAdaptableBinaryFunction compares two real embeddable numbers
 CIsNegativeAdaptableUnaryFunction, returns true in case the argument is negative
 CIsPositiveAdaptableUnaryFunction, returns true in case the argument is positive
 CIsZeroAdaptableUnaryFunction, returns true in case the argument is 0
 CSgnThis AdaptableUnaryFunction computes the sign of a real embeddable number
 CToDoubleAdaptableUnaryFunction computes a double approximation of a real embeddable number
 CToIntervalAdaptableUnaryFunction computes for a given real embeddable number \( x\) a double interval containing \( x\). This interval is represented by std::pair<double,double>
 CAlgebraicStructureTraitsA model of AlgebraicStructureTraits reflects the algebraic structure of an associated type Type
 CEuclideanRingA model of EuclideanRing represents an euclidean ring (or Euclidean domain). It is an UniqueFactorizationDomain that affords a suitable notion of minimality of remainders such that given \( x\) and \( y \neq 0\) we obtain an (almost) unique solution to \( x = qy + r \) by demanding that a solution \( (q,r)\) is chosen to minimize \( r\). In particular, \( r\) is chosen to be \( 0\) if possible
 CExplicitInteroperableTwo types A and B are a model of the ExplicitInteroperable concept, if it is possible to derive a superior type for A and B, such that both types are embeddable into this type. This type is CGAL::Coercion_traits<A,B>::Type
 CFieldA model of Field is an IntegralDomain in which every non-zero element has a multiplicative inverse. Thus, one can divide by any non-zero element. Hence division is defined for any divisor != 0. For a Field, we require this division operation to be available through operators / and /=
 CFieldNumberTypeThe concept FieldNumberType combines the requirements of the concepts Field and RealEmbeddable. A model of FieldNumberType can be used as a template parameter for Cartesian kernels
 CFieldWithKthRootA model of FieldWithKthRoot is a FieldWithSqrt that has operations to take k-th roots
 CFieldWithRootOfA model of FieldWithRootOf is a FieldWithKthRoot with the possibility to construct it as the root of a univariate polynomial
 CFieldWithSqrtA model of FieldWithSqrt is a Field that has operations to take square roots
 CFractionA type is considered as a Fraction, if there is a reasonable way to decompose it into a numerator and denominator. In this case the relevant functionality for decomposing and re-composing as well as the numerator and denominator type are provided by CGAL::Fraction_traits
 CFractionTraitsA model of FractionTraits is associated with a type Type
 CFromDoubleConstructibleA model of the concept FromDoubleConstructible is required to be constructible from the type double
 CFromIntConstructibleA model of the concept FromIntConstructible is required to be constructible from int
 CImplicitInteroperableTwo types A and B are a model of the concept ImplicitInteroperable, if there is a superior type, such that binary arithmetic operations involving A and B result in this type. This type is CGAL::Coercion_traits<A,B>::Type. In case types are RealEmbeddable this also implies that mixed compare operators are available
 CIntegralDomainIntegralDomain refines IntegralDomainWithoutDivision by providing an integral division
 CIntegralDomainWithoutDivisionThis is the most basic concept for algebraic structures considered within CGAL
 CRealEmbeddableA model of this concepts represents numbers that are embeddable on the real axis. The type obeys the algebraic structure and compares two values according to the total order of the real numbers
 CRealEmbeddableTraitsA model of RealEmbeddableTraits is associated to a number type Type and reflects the properties of this type with respect to the concept RealEmbeddable
 CRingNumberTypeThe concept RingNumberType combines the requirements of the concepts IntegralDomainWithoutDivision and RealEmbeddable. A model of RingNumberType can be used as a template parameter for Homogeneous kernels
 CUniqueFactorizationDomainA model of UniqueFactorizationDomain is an IntegralDomain with the additional property that the ring it represents is a unique factorization domain (a.k.a. UFD or factorial ring), meaning that every non-zero non-unit element has a factorization into irreducible elements that is unique up to order and up to multiplication by invertible elements (units). (An irreducible element is a non-unit ring element that cannot be factored further into two non-unit elements. In a UFD, the irreducible elements are precisely the prime elements.)