\( \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.8.2 - Algebraic Foundations
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
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]
oNAlgebraicStructureTraits_
|oCDivAdaptableBinaryFunction computes the integral quotient of division with remainder
|oCDividesAdaptableBinaryFunction, returns true if the first argument divides the second argument
|oCDivModAdaptableFunctor 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
|oCGcdAdaptableBinaryFunction providing the gcd
|oCIntegralDivisionAdaptableBinaryFunction providing an integral division
|oCInverseAdaptableUnaryFunction providing the inverse element with respect to multiplication of a Field
|oCIsOneAdaptableUnaryFunction, returns true in case the argument is the one of the ring
|oCIsSquareAdaptableBinaryFunction 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
|oCIsZeroAdaptableUnaryFunction, returns true in case the argument is the zero element of the ring
|oCKthRootAdaptableBinaryFunction providing the k-th root
|oCModAdaptableBinaryFunction computes the remainder of division with remainder
|oCRootOfAdaptableFunctor computes a real root of a square-free univariate polynomial
|oCSimplifyThis AdaptableUnaryFunction may simplify a given object
|oCSqrtAdaptableUnaryFunction providing the square root
|oCSquareAdaptableUnaryFunction, computing the square of the argument
|\CUnitPartThis AdaptableUnaryFunction computes the unit part of a given ring element
oNCGAL
|oCAlgebraic_structure_traitsAn instance of Algebraic_structure_traits is a model of AlgebraicStructureTraits, where T is the associated type
|oCEuclidean_ring_tagTag indicating that a type is a model of the EuclideanRing concept
|oCField_tagTag indicating that a type is a model of the Field concept
|oCField_with_kth_root_tagTag indicating that a type is a model of the FieldWithKthRoot concept
|oCField_with_root_of_tagTag indicating that a type is a model of the FieldWithRootOf concept
|oCField_with_sqrt_tagTag indicating that a type is a model of the FieldWithSqrt concept
|oCIntegral_domain_tagTag indicating that a type is a model of the IntegralDomain concept
|oCIntegral_domain_without_division_tagTag indicating that a type is a model of the IntegralDomainWithoutDivision concept
|oCUnique_factorization_domain_tagTag indicating that a type is a model of the UniqueFactorizationDomain concept
|oCCoercion_traitsAn instance of Coercion_traits reflects the type coercion of the types A and B, it is symmetric in the two template arguments
|oCFraction_traitsAn instance of Fraction_traits is a model of FractionTraits, where T is the associated type
|\CReal_embeddable_traitsAn instance of Real_embeddable_traits is a model of RealEmbeddableTraits, where T is the associated type
oNFractionTraits_
|oCDecomposeFunctor decomposing a Fraction into its numerator and denominator
|oCComposeAdaptableBinaryFunction, returns the fraction of its arguments
|\CCommonFactorAdaptableBinaryFunction, finds great common factor of denominators
oNRealEmbeddableTraits_
|oCAbsAdaptableUnaryFunction computes the absolute value of a number
|oCCompareAdaptableBinaryFunction compares two real embeddable numbers
|oCIsNegativeAdaptableUnaryFunction, returns true in case the argument is negative
|oCIsPositiveAdaptableUnaryFunction, returns true in case the argument is positive
|oCIsZeroAdaptableUnaryFunction, returns true in case the argument is 0
|oCSgnThis AdaptableUnaryFunction computes the sign of a real embeddable number
|oCToDoubleAdaptableUnaryFunction 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>
oCAlgebraicStructureTraitsA model of AlgebraicStructureTraits reflects the algebraic structure of an associated type Type
oCEuclideanRingA 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
oCExplicitInteroperableTwo 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
oCFieldA 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 /=
oCFieldNumberTypeThe 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
oCFieldWithKthRootA model of FieldWithKthRoot is a FieldWithSqrt that has operations to take k-th roots
oCFieldWithRootOfA model of FieldWithRootOf is a FieldWithKthRoot with the possibility to construct it as the root of a univariate polynomial
oCFieldWithSqrtA model of FieldWithSqrt is a Field that has operations to take square roots
oCFractionA 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
oCFractionTraitsA model of FractionTraits is associated with a type Type
oCFromDoubleConstructibleA model of the concept FromDoubleConstructible is required to be constructible from the type double
oCFromIntConstructibleA model of the concept FromIntConstructible is required to be constructible from int
oCImplicitInteroperableTwo 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
oCIntegralDomainIntegralDomain refines IntegralDomainWithoutDivision by providing an integral division
oCIntegralDomainWithoutDivisionThis is the most basic concept for algebraic structures considered within CGAL
oCRealEmbeddableA 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
oCRealEmbeddableTraitsA model of RealEmbeddableTraits is associated to a number type Type and reflects the properties of this type with respect to the concept RealEmbeddable
oCRingNumberTypeThe 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.)