CGAL 4.7 - Algebraic Foundations: Class and Concept List

\( \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.7 - 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]

AlgebraicStructureTraits_ |
Div | `AdaptableBinaryFunction` computes the integral quotient of division with remainder
Divides | `AdaptableBinaryFunction`, returns true if the first argument divides the second argument
DivMod | `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
Gcd | `AdaptableBinaryFunction` providing the gcd
IntegralDivision | `AdaptableBinaryFunction` providing an integral division
Inverse | `AdaptableUnaryFunction` providing the inverse element with respect to multiplication of a `Field`
IsOne | `AdaptableUnaryFunction`, returns true in case the argument is the one of the ring
IsSquare | `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
IsZero | `AdaptableUnaryFunction`, returns true in case the argument is the zero element of the ring
KthRoot | `AdaptableBinaryFunction` providing the k-th root
Mod | `AdaptableBinaryFunction` computes the remainder of division with remainder
RootOf | `AdaptableFunctor` computes a real root of a square-free univariate polynomial
Simplify | This `AdaptableUnaryFunction` may simplify a given object
Sqrt | `AdaptableUnaryFunction` providing the square root
Square | `AdaptableUnaryFunction`, computing the square of the argument
UnitPart | This `AdaptableUnaryFunction` computes the unit part of a given ring element
CGAL |
Algebraic_structure_traits | An instance of `Algebraic_structure_traits` is a model of `AlgebraicStructureTraits`, where T is the associated type
Euclidean_ring_tag | Tag indicating that a type is a model of the `EuclideanRing` concept
Field_tag | Tag indicating that a type is a model of the `Field` concept
Field_with_kth_root_tag | Tag indicating that a type is a model of the `FieldWithKthRoot` concept
Field_with_root_of_tag | Tag indicating that a type is a model of the `FieldWithRootOf` concept
Field_with_sqrt_tag | Tag indicating that a type is a model of the `FieldWithSqrt` concept
Integral_domain_tag | Tag indicating that a type is a model of the `IntegralDomain` concept
Integral_domain_without_division_tag | Tag indicating that a type is a model of the `IntegralDomainWithoutDivision` concept
Unique_factorization_domain_tag | Tag indicating that a type is a model of the `UniqueFactorizationDomain` concept
Coercion_traits | An instance of `Coercion_traits` reflects the type coercion of the types A and B, it is symmetric in the two template arguments
Fraction_traits | An instance of `Fraction_traits` is a model of `FractionTraits`, where `T` is the associated type
Real_embeddable_traits | An instance of `Real_embeddable_traits` is a model of `RealEmbeddableTraits`, where T is the associated type
FractionTraits_ |
Decompose | Functor decomposing a `Fraction` into its numerator and denominator
Compose | `AdaptableBinaryFunction`, returns the fraction of its arguments
CommonFactor | `AdaptableBinaryFunction`, finds great common factor of denominators
RealEmbeddableTraits_ |
Abs | `AdaptableUnaryFunction` computes the absolute value of a number
Compare | `AdaptableBinaryFunction` compares two real embeddable numbers
IsNegative | `AdaptableUnaryFunction`, returns true in case the argument is negative
IsPositive | `AdaptableUnaryFunction`, returns true in case the argument is positive
IsZero | `AdaptableUnaryFunction`, returns true in case the argument is 0
Sgn | This `AdaptableUnaryFunction` computes the sign of a real embeddable number
ToDouble | `AdaptableUnaryFunction` computes a double approximation of a real embeddable number
ToInterval | `AdaptableUnaryFunction` computes for a given real embeddable number \( x\) a double interval containing \( x\). This interval is represented by `std::pair<double,double>`
AlgebraicStructureTraits | A model of `AlgebraicStructureTraits` reflects the algebraic structure of an associated type `Type`
EuclideanRing | 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
ExplicitInteroperable | 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`
Field | A 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 /=
FieldNumberType | 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
FieldWithKthRoot | A model of `FieldWithKthRoot` is a `FieldWithSqrt` that has operations to take k-th roots
FieldWithRootOf | A model of `FieldWithRootOf` is a `FieldWithKthRoot` with the possibility to construct it as the root of a univariate polynomial
FieldWithSqrt | A model of `FieldWithSqrt` is a `Field` that has operations to take square roots
Fraction | 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 re-composing as well as the numerator and denominator type are provided by `CGAL::Fraction_traits`
FractionTraits | A model of `FractionTraits` is associated with a type `Type`
FromDoubleConstructible | A model of the concept `FromDoubleConstructible` is required to be constructible from the type `double`
FromIntConstructible | A model of the concept `FromIntConstructible` is required to be constructible from int
ImplicitInteroperable | 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
IntegralDomain | `IntegralDomain` refines `IntegralDomainWithoutDivision` by providing an integral division
IntegralDomainWithoutDivision | This is the most basic concept for algebraic structures considered within CGAL
RealEmbeddable | 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
RealEmbeddableTraits | A model of `RealEmbeddableTraits` is associated to a number type `Type` and reflects the properties of this type with respect to the concept `RealEmbeddable`
RingNumberType | 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
UniqueFactorizationDomain | 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 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.)