|
CGAL 6.0 - Algebraic Foundations
|
This is the most basic concept for algebraic structures considered within CGAL.
A model IntegralDomainWithoutDivision represents an integral domain, i.e. commutative ring with 0, 1, +, * and unity free of zero divisors.
Note: A model is not required to offer the always well defined integral division.
It refines Assignable, CopyConstructible, DefaultConstructible and FromIntConstructible.
It refines EqualityComparable, where equality is defined w.r.t. the ring element being represented.
The operators unary and binary plus +, unary and binary minus -, multiplication * and their compound forms +=, -=, *= are required and implement the respective ring operations.
Moreover, CGAL::Algebraic_structure_traits< IntegralDomainWithoutDivision > is a model of AlgebraicStructureTraits providing:
CGAL::Algebraic_structure_traits< IntegralDomainWithoutDivision >::Algebraic_category derived from CGAL::Integral_domain_without_division_tagCGAL::Algebraic_structure_traits< IntegralDomainWithoutDivision >::Is_zero which is a model of AlgebraicStructureTraits_::IsZeroCGAL::Algebraic_structure_traits< IntegralDomainWithoutDivision >::Is_one which is a model of AlgebraicStructureTraits_::IsOneCGAL::Algebraic_structure_traits< IntegralDomainWithoutDivision >::Square which is a model of AlgebraicStructureTraits_::SquareCGAL::Algebraic_structure_traits< IntegralDomainWithoutDivision >::Simplify which is a model of AlgebraicStructureTraits_::SimplifyCGAL::Algebraic_structure_traits< IntegralDomainWithoutDivision >::Unit_part which is a model of AlgebraicStructureTraits_::UnitPart