CGAL 5.0 - Modular Arithmetic
ModularTraits Concept Reference

## Definition

A model of ModularTraits is associated to a specific Type. In case this associated type is a model of Modularizable, this is indicated by the Boolean tag ModularTraits::Is_modularizable. The mapping into the Residue_type is provided by the functor ModularTraits::Modular_image.

Has Models:
CGAL::Modular_traits<T>
CGAL::Residue
Modularizable

## Concepts

conceptModularImage
This AdaptableUnaryFunction computes the modular image of the given value with respect to a homomorphism $$\varphi$$ from the ModularTraits::Type into the ModularTraits::Residue_type. More...

conceptModularImageRepresentative
This AdaptableUnaryFunction returns a representative in the original type of a given modular image. More precisely, it implements the right inverse of a proper restriction of the homomorphism $$\varphi$$, which is implemented by ModularTraits::ModularImage. More...

## Types

A model of ModularTraits is supposed to provide:

typedef unspecified_type Type
The associated type.

typedef unspecified_type Is_modularizable
Tag indicating whether the associated type is modularizable. More...

typedef unspecified_type Residue_type
The type of the modular image. More...

## Functors

In case the associated type is a model of Modularizable all functors are provided.

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

typedef unspecified_type Modular_image
A model of ModularTraits::ModularImage

typedef unspecified_type Modular_image_representative
A model of ModularTraits::ModularImageRepresentative

## ◆ Is_modularizable

Tag indicating whether the associated type is modularizable.

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

## ◆ Residue_type

The type of the modular image.

In case the associated type is not a model of Modularizable this is undefined.