mirror of https://github.com/CGAL/cgal
135 lines
4.0 KiB
TeX
135 lines
4.0 KiB
TeX
\begin{ccRefConcept}{AlgebraicStructureTraits}
|
|
|
|
|
|
\ccDefinition
|
|
|
|
A model of \ccc{AlgebraicStructureTraits} refelcts the algebraic structure
|
|
of an assosiated type AS.
|
|
|
|
|
|
Depending on the concepts that AS fulfills, it contains various functors and
|
|
descriptive tags.
|
|
Moreover it gives access to the several possible
|
|
algebraic operations within that structure.
|
|
|
|
|
|
\ccTypes
|
|
|
|
A model of \ccc{AlgebraicStructureTraits} is supposed to provide:\\
|
|
|
|
\ccNestedType{AS}
|
|
{The assosiated algebraic structure.}
|
|
|
|
\ccNestedType{Algebraic_structure}
|
|
{ Tag indicating the algebraic structure of the assoziated type. \\
|
|
This is one of: \\
|
|
\begin{tabular}{ll}
|
|
- \ccc{Null_type}& AS fullfills no algebraic concept\\
|
|
- \ccc{Integral_domain_without_div_tag}& AS is model of \ccc{IntegralDomainWithoutDiv}\\
|
|
- \ccc{Integral_domain_tag}& AS is model of \ccc{IntegralDomain}\\
|
|
- \ccc{UFDomain_tag}& AS is model of \ccc{UFDomain}\\
|
|
- \ccc{Euclidean_ring_tag}& AS is model of \ccc{EuclideanRing}\\
|
|
- \ccc{Field_tag}& AS is model of \ccc{Field}\\
|
|
- \ccc{Field_with_sqrt_tag}& AS is model of \ccc{FieldWithSqrt}\\
|
|
\end{tabular}
|
|
}
|
|
|
|
\ccNestedType{Is_exact}
|
|
{ Tag indicating whether AS is an exact type. \\
|
|
This is either \ccc{CGAL::Tag_true} or \ccc{CGAL::Tag_false}. }
|
|
|
|
|
|
\ccHeading{Functors}
|
|
|
|
Functors for \ccc{IntegralDomainWithoutDiv}: \hfill\\
|
|
\ccNestedType{Simplify}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::Simplify}
|
|
In case \ccc{AS} is a model of \ccc{IntegralDomainWithoutDiv}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
|
|
\ccNestedType{Unit_part}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::UnitPart}.
|
|
In case \ccc{AS} is a model of \ccc{IntegralDomainWithoutDiv}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
|
|
|
|
Functors for \ccc{IntegralDomain}: \hfill\\
|
|
\ccNestedType{Integral_divsion}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::IntegralDivision}.
|
|
In case \ccc{AS} is a model of \ccc{IntegralDomain}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
\begin{ccAdvanced}
|
|
\ccNestedType{Integral_sqrt}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::IntegralSqrt}.
|
|
In case \ccc{AS} is a model of \ccc{IntegralDomain}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
\end{ccAdvanced}
|
|
|
|
Functors for \ccc{UFDomain}: \hfill\\
|
|
\ccNestedType{Gcd}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::Gcd}.
|
|
In case \ccc{AS} is a model of \ccc{UFDomain}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
|
|
|
|
Functors for \ccc{EuclideanRing}: \hfill\\
|
|
\ccNestedType{Mod}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::Mod}.
|
|
In case \ccc{AS} is a model of \ccc{EuclideanRing}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
|
|
\ccNestedType{Div}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::Div}.
|
|
In case \ccc{AS} is a model of \ccc{EuclideanRing}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
\ccNestedType{Div_mod}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::DivMod}.
|
|
In case \ccc{AS} is a model of \ccc{EuclideanRing}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
|
|
|
|
Functors for \ccc{FieldWithSqrt}: \hfill\\
|
|
\ccNestedType{Sqrt}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::Sqrt}.
|
|
In case \ccc{AS} is a model of \ccc{FieldWithSqrt}
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
|
|
\begin{ccAdvanced}
|
|
\ccNestedType{Kth_root}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::KthRoot}.
|
|
In case \ccc{AS} is a model of \ccc{FieldWithSqrt} [\ccc{FieldWithKthRoot}]
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
|
|
\ccNestedType{Root_of}{
|
|
This is either \ccc{CGAL::Null_type} or a model of
|
|
\ccc{AlgebraicStructureTraits::RootOf}.
|
|
In case \ccc{AS} is a model of \ccc{FieldWithSqrt} [\ccc{FieldWithRootOf}]
|
|
this is not \ccc{CGAL::Null_type}.
|
|
}
|
|
\end{ccAdvanced}
|
|
|
|
%\ccHasModels
|
|
|
|
|
|
\end{ccRefConcept}
|