Givaro
Data Structures | Namespaces | Macros | Typedefs
recdefine.h File Reference
#include <cstdlib>
#include <cstdint>
#include <type_traits>
#include "reclonglong.h"
+ Include dependency graph for recdefine.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  NBLIMB< K >
 
struct  NBLIMB< 6 >
 
struct  NBBITS< K >
 
struct  NBBITS< 6 >
 

Namespaces

 RecInt
 NOTE : For this common file, either basic/reduc.h or mg/reduc.h has to be pre-included.
 

Macros

#define __RECINT_LIMB_BITS   64
 
#define __RECINT_LIMB_SIZE   6
 
#define __RECINT_MINUSONE   limb(0xffffffffffffffff)
 
#define __RECINT_MAXPOWTWO   limb(0x8000000000000000)
 
#define __RECINT_TYPENOTMAXPOWTWO(T)   ~(T(1) << (8 * sizeof(T) - 1))
 
#define __RECINT_THIRTYONEPOINTFIVE   3037000499u
 
#define __RECINT_IS_ARITH(T, ...)   typename std::enable_if<std::is_arithmetic<T>::value, __VA_ARGS__>::type
 
#define __RECINT_IS_UNSIGNED(T, ...)   typename std::enable_if<std::is_unsigned<T>::value, __VA_ARGS__>::type
 
#define __RECINT_IS_SIGNED(T, ...)   typename std::enable_if<std::is_signed<T>::value, __VA_ARGS__>::type
 
#define __RECINT_IS_NOT_FUNDAMENTAL(T, ...)   typename std::enable_if<!std::is_fundamental<T>::value, __VA_ARGS__>::type
 
#define __RECINT_DEBUG_LINE()   std::cout << "------" << std::endl
 
#define __RECINT_DEBUG_SHOW(X)   std::cout << std::hex << (X) << std::dec << std::endl
 
#define NO_ASM
 
#define W_TYPE_SIZE   64
 

Typedefs

typedef uint64_t limb
 
typedef uint64_t UWtype
 
typedef uint64_t UHWtype
 
typedef uint64_t UDWtype
 
typedef uint64_t UDItype
 
typedef uint32_t USItype
 
typedef int64_t DItype
 
typedef int32_t SItype
 

Macro Definition Documentation

◆ __RECINT_LIMB_BITS

#define __RECINT_LIMB_BITS   64

◆ __RECINT_LIMB_SIZE

#define __RECINT_LIMB_SIZE   6

◆ __RECINT_MINUSONE

#define __RECINT_MINUSONE   limb(0xffffffffffffffff)

◆ __RECINT_MAXPOWTWO

#define __RECINT_MAXPOWTWO   limb(0x8000000000000000)

◆ __RECINT_TYPENOTMAXPOWTWO

#define __RECINT_TYPENOTMAXPOWTWO (   T)    ~(T(1) << (8 * sizeof(T) - 1))

◆ __RECINT_THIRTYONEPOINTFIVE

#define __RECINT_THIRTYONEPOINTFIVE   3037000499u

◆ __RECINT_IS_ARITH

#define __RECINT_IS_ARITH (   T,
  ... 
)    typename std::enable_if<std::is_arithmetic<T>::value, __VA_ARGS__>::type

◆ __RECINT_IS_UNSIGNED

#define __RECINT_IS_UNSIGNED (   T,
  ... 
)    typename std::enable_if<std::is_unsigned<T>::value, __VA_ARGS__>::type

◆ __RECINT_IS_SIGNED

#define __RECINT_IS_SIGNED (   T,
  ... 
)    typename std::enable_if<std::is_signed<T>::value, __VA_ARGS__>::type

◆ __RECINT_IS_NOT_FUNDAMENTAL

#define __RECINT_IS_NOT_FUNDAMENTAL (   T,
  ... 
)    typename std::enable_if<!std::is_fundamental<T>::value, __VA_ARGS__>::type

◆ __RECINT_DEBUG_LINE

#define __RECINT_DEBUG_LINE ( )    std::cout << "------" << std::endl

◆ __RECINT_DEBUG_SHOW

#define __RECINT_DEBUG_SHOW (   X)    std::cout << std::hex << (X) << std::dec << std::endl

◆ NO_ASM

#define NO_ASM

◆ W_TYPE_SIZE

#define W_TYPE_SIZE   64