Kernel
The concept of a kernel is defined by a set of requirements on the provision of certain types and access member functions to create objects of these types. The types are function object classes to be used within the algorithms and data structures of Cgal . This allows you to use any model of a kernel as a traits class in the Cgal algorithms and data structures, unless they require types beyond those provided by a kernel.
A kernel provides types , construction objects , and generalized predicates . The former replace constructors of the kernel classes and constructive procedures in the kernel. There are also function objects replacing operators, especially for equality testing.
RingNumberType
Definition
The concept RingNumberType defines the syntactic requirements a number type must meet in order to be used in CGAL as a ring type. This implies that CGAL::Number_type_traits <RingNumberType >::Has_division is not required to be CGAL::Tag_true . Unsigned numbers are excluded due to semantical limitations in the ordering.
FieldNumberType
The concept FieldNumberType defines the syntactic requirements of a number type to be used as a template parameter for the Cartesian kernels. This number type supports the operations + , - , * and / . This implies that CGAL::Number_type_traits < FieldNumberType >::Has_division is CGAL::Tag_true .