31#if defined(ModuloComputer_RECURSES)
32#error Recursive header files inclusion detected in ModuloComputer.h
35#define ModuloComputer_RECURSES
37#if !defined ModuloComputer_h
39#define ModuloComputer_h
44#include "DGtal/base/Common.h"
45#include "DGtal/kernel/NumberTraits.h"
46#include "DGtal/kernel/CInteger.h"
78 template <
typename TInteger>
204 template <
typename T>
209 object.selfDisplay( out );
218#include "DGtal/arithmetic/ModuloComputer.ih"
225#undef ModuloComputer_RECURSES
implements basic functions on modular arithmetic.
void decrement(UnsignedInteger &i) const
UnsignedInteger previous(UnsignedIntegerParamType i) const
NumberTraits< Integer >::ParamType IntegerParamType
void increment(UnsignedInteger &i) const
NumberTraits< TInteger >::UnsignedVersion UnsignedInteger
void selfDisplay(std::ostream &out) const
UnsignedInteger posDiff(UnsignedIntegerParamType j, UnsignedIntegerParamType i) const
NumberTraits< UnsignedInteger >::ParamType UnsignedIntegerParamType
UnsignedInteger next(UnsignedIntegerParamType i) const
ModuloComputer & operator=(const ModuloComputer &other)
ModuloComputer(UnsignedIntegerParamType m)
UnsignedInteger cast(IntegerParamType i) const
BOOST_CONCEPT_ASSERT((concepts::CInteger< Integer >))
bool less(UnsignedIntegerParamType i, UnsignedIntegerParamType j) const
ModuloComputer(const ModuloComputer &other)
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
std::decay< T >::type UnsignedVersion
Alias to the unsigned version of the number type.
boost::call_traits< std::decay< T >::type >::param_type ParamType
Defines a type that represents the "best" way to pass a parameter of type T to a function.
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...