CGAL 5.0  Algebraic Foundations

▼NAlgebraicStructureTraits_  
CDiv  AdaptableBinaryFunction computes the integral quotient of division with remainder 
CDivides  AdaptableBinaryFunction , returns true if the first argument divides the second argument 
CDivMod  AdaptableFunctor 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 
CGcd  AdaptableBinaryFunction providing the gcd 
CIntegralDivision  AdaptableBinaryFunction providing an integral division 
CInverse  AdaptableUnaryFunction providing the inverse element with respect to multiplication of a Field 
CIsOne  AdaptableUnaryFunction , returns true in case the argument is the one of the ring 
CIsSquare  AdaptableBinaryFunction 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 
CIsZero  AdaptableUnaryFunction , returns true in case the argument is the zero element of the ring 
CKthRoot  AdaptableBinaryFunction providing the kth root 
CMod  AdaptableBinaryFunction computes the remainder of division with remainder 
CRootOf  AdaptableFunctor computes a real root of a squarefree univariate polynomial 
CSimplify  This AdaptableUnaryFunction may simplify a given object 
CSqrt  AdaptableUnaryFunction providing the square root 
CSquare  AdaptableUnaryFunction , computing the square of the argument 
CUnitPart  This AdaptableUnaryFunction computes the unit part of a given ring element 
▼NCGAL  
CAlgebraic_structure_traits  An instance of Algebraic_structure_traits is a model of AlgebraicStructureTraits , where T is the associated type 
CCoercion_traits  An instance of Coercion_traits reflects the type coercion of the types A and B, it is symmetric in the two template arguments 
CEuclidean_ring_tag  Tag indicating that a type is a model of the EuclideanRing concept 
CField_tag  Tag indicating that a type is a model of the Field concept 
CField_with_kth_root_tag  Tag indicating that a type is a model of the FieldWithKthRoot concept 
CField_with_root_of_tag  Tag indicating that a type is a model of the FieldWithRootOf concept 
CField_with_sqrt_tag  Tag indicating that a type is a model of the FieldWithSqrt concept 
CFraction_traits  An instance of Fraction_traits is a model of FractionTraits , where T is the associated type 
CIntegral_domain_tag  Tag indicating that a type is a model of the IntegralDomain concept 
CIntegral_domain_without_division_tag  Tag indicating that a type is a model of the IntegralDomainWithoutDivision concept 
CReal_embeddable_traits  An instance of Real_embeddable_traits is a model of RealEmbeddableTraits , where T is the associated type 
CUnique_factorization_domain_tag  Tag indicating that a type is a model of the UniqueFactorizationDomain concept 
▼NFractionTraits_  
CCommonFactor  AdaptableBinaryFunction , finds great common factor of denominators 
CCompose  AdaptableBinaryFunction , returns the fraction of its arguments 
CDecompose  Functor decomposing a Fraction into its numerator and denominator 
▼NRealEmbeddableTraits_  
CAbs  AdaptableUnaryFunction computes the absolute value of a number 
CCompare  AdaptableBinaryFunction compares two real embeddable numbers 
CIsNegative  AdaptableUnaryFunction , returns true in case the argument is negative 
CIsPositive  AdaptableUnaryFunction , returns true in case the argument is positive 
CIsZero  AdaptableUnaryFunction , returns true in case the argument is 0 
CSgn  This AdaptableUnaryFunction computes the sign of a real embeddable number 
CToDouble  AdaptableUnaryFunction computes a double approximation of a real embeddable number 
CToInterval  AdaptableUnaryFunction computes for a given real embeddable number \( x\) a double interval containing \( x\). This interval is represented by std::pair<double,double> 
CAlgebraicStructureTraits  A model of AlgebraicStructureTraits reflects the algebraic structure of an associated type Type 
CEuclideanRing  A 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 
CExplicitInteroperable  Two 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 
CField  A model of Field is an IntegralDomain in which every nonzero element has a multiplicative inverse. Thus, one can divide by any nonzero element. Hence division is defined for any divisor != 0. For a Field, we require this division operation to be available through operators / and /= 
CFieldNumberType  The 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 
CFieldWithKthRoot  A model of FieldWithKthRoot is a FieldWithSqrt that has operations to take kth roots 
CFieldWithRootOf  A model of FieldWithRootOf is a FieldWithKthRoot with the possibility to construct it as the root of a univariate polynomial 
CFieldWithSqrt  A model of FieldWithSqrt is a Field that has operations to take square roots 
CFraction  A 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 recomposing as well as the numerator and denominator type are provided by CGAL::Fraction_traits 
CFractionTraits  A model of FractionTraits is associated with a type Type 
CFromDoubleConstructible  A model of the concept FromDoubleConstructible is required to be constructible from the type double 
CFromIntConstructible  A model of the concept FromIntConstructible is required to be constructible from int 
CImplicitInteroperable  Two 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 
CIntegralDomain  IntegralDomain refines IntegralDomainWithoutDivision by providing an integral division 
CIntegralDomainWithoutDivision  This is the most basic concept for algebraic structures considered within CGAL 
CRealEmbeddable  A 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 
CRealEmbeddableTraits  A model of RealEmbeddableTraits is associated to a number type Type and reflects the properties of this type with respect to the concept RealEmbeddable 
CRingNumberType  The 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 
CUniqueFactorizationDomain  A 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 nonzero nonunit 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 nonunit ring element that cannot be factored further into two nonunit elements. In a UFD, the irreducible elements are precisely the prime elements.) 