Givaro 4.2.1
modular-integral.h File Reference

representation of Z/mZ over int types. More...

#include "givaro/givinteger.h"
#include "givaro/givcaster.h"
#include "givaro/givranditer.h"
#include "givaro/givtypestring.h"
#include "givaro/ring-interface.h"
#include "givaro/modular-general.h"
#include "givaro/modular-implem.h"
#include "modular-mulprecomp.inl"
#include "modular-integral.inl"

Data Structures

class  Modular< _Storage_t, _Compute_t, typename std::enable_if< std::is_integral< _Storage_t >::value &&std::is_integral< _Compute_t >::value &&(sizeof(_Storage_t)==sizeof(_Compute_t)||2 *sizeof(_Storage_t)==sizeof(_Compute_t))>::type >
 

Namespaces

namespace  Givaro
 Namespace in which the whole Givaro library resides.
 

Macros

#define IS_INT(T)
 
#define IS_SINT(T)
 
#define IS_UINT(T)
 
#define IS_FLOAT(T)
 
#define SUITABLE_INTEGRAL_TYPES(ELEMENT, COMPUTE_T, s)
 
#define SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE(ELEMENT, COMPUTE_T, s)
 
#define SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE(ELEMENT, COMPUTE_T, s)
 

Detailed Description

representation of Z/mZ over int types.

Macro Definition Documentation

◆ IS_INT

#define IS_INT ( T)
Value:
std::is_integral<T>::value

◆ IS_SINT

#define IS_SINT ( T)
Value:
std::is_integral<T>::value && std::is_signed<T>::value

◆ IS_UINT

#define IS_UINT ( T)
Value:
std::is_integral<T>::value && std::is_unsigned<T>::value

◆ IS_FLOAT

#define IS_FLOAT ( T)
Value:
std::is_floating_point<T>::value

◆ SUITABLE_INTEGRAL_TYPES

#define SUITABLE_INTEGRAL_TYPES ( ELEMENT,
COMPUTE_T,
s )
Value:
(2 * sizeof(ELEMENT) >= sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \
&& (std::is_integral<ELEMENT>::value) && (std::is_integral<COMPUTE_T>::value)

◆ SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE

#define SUITABLE_INTEGRAL_TYPES_AND_HALF_SIZE ( ELEMENT,
COMPUTE_T,
s )
Value:
(2 * sizeof(ELEMENT) == sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \
&& (std::is_integral<ELEMENT>::value) && (std::is_integral<COMPUTE_T>::value)

◆ SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE

#define SUITABLE_INTEGRAL_TYPES_AND_FULL_SIZE ( ELEMENT,
COMPUTE_T,
s )
Value:
(sizeof(ELEMENT) == sizeof(COMPUTE_T)) && (sizeof(COMPUTE_T) == s) \
&& (std::is_integral<ELEMENT>::value) && (std::is_integral<COMPUTE_T>::value)