CGAL 5.1 - Algebraic Foundations
AlgebraicStructureTraits Class Reference

#include <Concepts/AlgebraicStructureTraits.h>

Definition

A model of AlgebraicStructureTraits reflects the algebraic structure of an associated type Type.

Depending on the concepts that Type fulfills, it contains various functors and descriptive tags. Moreover it gives access to the several possible algebraic operations within that structure.

See also
IntegralDomainWithoutDivision
IntegralDomain
UniqueFactorizationDomain
EuclideanRing
Field
FieldWithSqrt
FieldWithKthRoot
FieldWithRootOf
CGAL::Integral_domain_without_division_tag
CGAL::Integral_domain_tag
CGAL::Unique_factorization_domain_tag
CGAL::Euclidean_ring_tag
CGAL::Field_tag
CGAL::Field_with_sqrt_tag
CGAL::Field_with_kth_root_tag
CGAL::Field_with_root_of_tag
Has Models:
CGAL::Algebraic_structure_traits<T>

Types

A model of AlgebraicStructureTraits is supposed to provide:

typedef unspecified_type Type
 The associated type. More...
 
typedef unspecified_type Algebraic_category
 Tag indicating the algebraic structure of the associated type. More...
 
typedef unspecified_type Is_exact
 Tag indicating whether Type is exact. More...
 
typedef unspecified_type Is_numerical_sensitive
 Tag indicating whether Type is numerical sensitive. More...
 
typedef unspecified_type Boolean
 This type specifies the return type of the predicates provided by this traits. More...
 

Functors

In case a functor is not provided, it is set to CGAL::Null_functor.

typedef unspecified_type Is_zero
 A model of AlgebraicStructureTraits_::IsZero. More...
 
typedef unspecified_type Is_one
 A model of AlgebraicStructureTraits_::IsOne. More...
 
typedef unspecified_type Square
 A model of AlgebraicStructureTraits_::Square. More...
 
typedef unspecified_type Simplify
 A model of AlgebraicStructureTraits_::Simplify. More...
 
typedef unspecified_type Unit_part
 A model of AlgebraicStructureTraits_::UnitPart. More...
 
typedef unspecified_type Integral_division
 A model of AlgebraicStructureTraits_::IntegralDivision. More...
 
typedef unspecified_type Divides
 A model of AlgebraicStructureTraits_::Divides. More...
 
typedef unspecified_type Is_square
 A model of AlgebraicStructureTraits_::IsSquare. More...
 
typedef unspecified_type Gcd
 A model of AlgebraicStructureTraits_::Gcd. More...
 
typedef unspecified_type Mod
 A model of AlgebraicStructureTraits_::Mod. More...
 
typedef unspecified_type Div
 A model of AlgebraicStructureTraits_::Div. More...
 
typedef unspecified_type Div_mod
 A model of AlgebraicStructureTraits_::DivMod. More...
 
typedef unspecified_type Inverse
 A model of AlgebraicStructureTraits_::Inverse. More...
 
typedef unspecified_type Sqrt
 A model of AlgebraicStructureTraits_::Sqrt. More...
 
typedef unspecified_type Kth_root
 A model of AlgebraicStructureTraits_::KthRoot. More...
 
typedef unspecified_type Root_of
 A model of AlgebraicStructureTraits_::RootOf. More...
 

Member Typedef Documentation

◆ Algebraic_category

◆ Boolean

typedef unspecified_type AlgebraicStructureTraits::Boolean

This type specifies the return type of the predicates provided by this traits.

The type must be convertible to bool and typically the type indeed maps to bool. However, there are also cases such as interval arithmetic, in which it is Uncertain<bool> or some similar type.

◆ Div

typedef unspecified_type AlgebraicStructureTraits::Div

A model of AlgebraicStructureTraits_::Div.

Required by the concept EuclideanRing.

◆ Div_mod

typedef unspecified_type AlgebraicStructureTraits::Div_mod

A model of AlgebraicStructureTraits_::DivMod.

Required by the concept EuclideanRing.

◆ Divides

typedef unspecified_type AlgebraicStructureTraits::Divides

A model of AlgebraicStructureTraits_::Divides.

Required by the concept IntegralDomain.

◆ Gcd

typedef unspecified_type AlgebraicStructureTraits::Gcd

A model of AlgebraicStructureTraits_::Gcd.

Required by the concept UniqueFactorizationDomain.

◆ Integral_division

◆ Inverse

typedef unspecified_type AlgebraicStructureTraits::Inverse

A model of AlgebraicStructureTraits_::Inverse.

Required by the concept Field.

◆ Is_exact

typedef unspecified_type AlgebraicStructureTraits::Is_exact

Tag indicating whether Type is exact.

This is either CGAL::Tag_true or CGAL::Tag_false.

An algebraic structure is considered exact, if all operations required by its concept are computed such that a comparison of two algebraic expressions is always correct. The exactness covers only those operations that are required by the algebraic structure concept.

e.g. an exact Field may have a Sqrt functor that is not exact.

◆ Is_numerical_sensitive

Tag indicating whether Type is numerical sensitive.

This is either CGAL::Tag_true or CGAL::Tag_false.

An algebraic structure is considered as numerically sensitive, if the performance of the type is sensitive to the condition number of an algorithm.

◆ Is_one

typedef unspecified_type AlgebraicStructureTraits::Is_one

◆ Is_square

typedef unspecified_type AlgebraicStructureTraits::Is_square

◆ Is_zero

typedef unspecified_type AlgebraicStructureTraits::Is_zero

A model of AlgebraicStructureTraits_::IsZero.

Required by the concept IntegralDomainWithoutDivision. In case Type is also model of RealEmbeddable this is a model of RealEmbeddableTraits_::IsZero.

◆ Kth_root

typedef unspecified_type AlgebraicStructureTraits::Kth_root

A model of AlgebraicStructureTraits_::KthRoot.

Required by the concept FieldWithKthRoot.

◆ Mod

typedef unspecified_type AlgebraicStructureTraits::Mod

A model of AlgebraicStructureTraits_::Mod.

Required by the concept EuclideanRing.

◆ Root_of

typedef unspecified_type AlgebraicStructureTraits::Root_of

A model of AlgebraicStructureTraits_::RootOf.

Required by the concept FieldWithRootOf.

◆ Simplify

typedef unspecified_type AlgebraicStructureTraits::Simplify

◆ Sqrt

typedef unspecified_type AlgebraicStructureTraits::Sqrt

A model of AlgebraicStructureTraits_::Sqrt.

Required by the concept FieldWithSqrt.

◆ Square

typedef unspecified_type AlgebraicStructureTraits::Square

◆ Type

typedef unspecified_type AlgebraicStructureTraits::Type

The associated type.

◆ Unit_part

typedef unspecified_type AlgebraicStructureTraits::Unit_part