DGtal  0.9.4beta
DGtal::concepts::CCommutativeRing< T > Struct Template Reference

#include <DGtal/kernel/CCommutativeRing.h>

Inheritance diagram for DGtal::concepts::CCommutativeRing< T >:
[legend]
Collaboration diagram for DGtal::concepts::CCommutativeRing< T >:
[legend]

## Public Member Functions

BOOST_CONCEPT_USAGE (CCommutativeRing)

Public Member Functions inherited from DGtal::concepts::CSignedNumber< T >
BOOST_CONCEPT_USAGE (CSignedNumber)

a

b

c

## Detailed Description

### template<typename T> struct DGtal::concepts::CCommutativeRing< T >

Aim: Defines the mathematical concept equivalent to a unitary commutative ring.

Description of concept 'CCommutativeRing'

### Refinement of

• CSignedNumber<T>

### Valid expressions and semantics

Name Expression Type requirements Return typePrecondition Semantics Postcondition Complexity
Construction from basic integer type X( i ) X represents the integer i
Should have a 0 X(0) Neutral element for addition
Should have a 1 X(1) Neutral element for multiplication
Substraction x - y X substraction of two numbers
Multiplication x * y X multiplication of two numbers
Opposite operator - x X opposite of a number

### Models

DGtal::int32_t, DGtal::int64_t, DGtal::int8_t, float, double, long double, DGtal::BigInteger

### Notes

Template Parameters
 T the type that should be a model of commutative ring.

Definition at line 100 of file CCommutativeRing.h.

## Member Function Documentation

template<typename T >
 DGtal::concepts::CCommutativeRing< T >::BOOST_CONCEPT_USAGE ( CCommutativeRing< T > )
inline

The 0 and 1 neutral elements should be tested.

Definition at line 105 of file CCommutativeRing.h.

References DGtal::concepts::ConceptUtils::sameType().

106  {
107  ConceptUtils::sameType( c, T( 25 ) );
108  ConceptUtils::sameType( c, T( -25 ) );
109  ConceptUtils::sameType( c, T( a+b ) );
110  ConceptUtils::sameType( c, T( -a ) );
111  ConceptUtils::sameType( c, T( a-b ) );
112  ConceptUtils::sameType( c, T( a*b ) );
113  ConceptUtils::sameType( c, T( 0 ) );
114  ConceptUtils::sameType( c, T( 1 ) );
115
117  }
void sameType(const T &t1, const T &t2)

## Field Documentation

template<typename T >
 T DGtal::concepts::CCommutativeRing< T >::a
private

Definition at line 120 of file CCommutativeRing.h.

template<typename T >
 T DGtal::concepts::CCommutativeRing< T >::b
private

Definition at line 120 of file CCommutativeRing.h.

template<typename T >
 T DGtal::concepts::CCommutativeRing< T >::c
private

Definition at line 120 of file CCommutativeRing.h.

The documentation for this struct was generated from the following file: