glucat  0.8.4
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
global.h File Reference
#include "glucat/portability.h"
#include <limits>
#include <climits>
Include dependency graph for global.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  glucat::CTAssertion< bool >
 Compile time assertion. More...
 
struct  glucat::CTAssertion< true >
 
class  glucat::compare_types< LHS_T, RHS_T >
 Type comparison. More...
 
class  glucat::compare_types< T, T >
 
class  glucat::bool_to_type< truth_value >
 Bool to type. More...
 
struct  glucat::tuning< Mult_Matrix_Threshold, Div_Max_Steps, Sqrt_Max_Steps, Log_Max_Outer_Steps, Log_Max_Inner_Steps, Basis_Max_Count, Fast_Size_Threshold, Inv_Fast_Dim_Threshold, Products_Size_Threshold, Function_Precision >
 Tuning policy. More...
 

Namespaces

 glucat
 

Macros

#define _GLUCAT_CTAssert(expr, msg)   namespace { struct msg { glucat::CTAssertion<(expr)> ERROR_##msg; }; }
 

Typedefs

typedef int glucat::index_t
 Size of index_t should be enough to represent LO, HI. More...
 
typedef unsigned long glucat::set_value_t
 Size of set_value_t should be enough to contain index_set<LO,HI> More...
 

Enumerations

enum  glucat::precision_t { glucat::precision_demoted, glucat::precision_same, glucat::precision_promoted }
 Precision policy. More...
 

Functions

 glucat::_GLUCAT_CTAssert (std::numeric_limits< unsigned char >::radix==2, CannotDetermineBitsPerChar) const index_t BITS_PER_CHAR
 If radix of unsigned char is not 2, we can't easily determine number of bits from sizeof. More...
 
 glucat::_GLUCAT_CTAssert (_GLUCAT_BITS_PER_ULONG==BITS_PER_SET_VALUE, BitsPerULongDoesNotMatchSetValueT) const index_t DEFAULT_LO
 Default lowest index in an index set. More...
 
template<typename LHS_T , typename RHS_T >
LHS_T glucat::pos_mod (LHS_T lhs, RHS_T rhs)
 Modulo function which works reliably for lhs < 0. More...
 

Variables

const double glucat::MS_PER_S = 1000.0
 Timing constant: deprecated here - moved to test/timing.h. More...
 
const index_t glucat::BITS_PER_SET_VALUE = std::numeric_limits<set_value_t>::digits
 Number of bits in set_value_t. More...
 
const index_t glucat::DEFAULT_HI = index_t(BITS_PER_SET_VALUE / 2)
 Default highest index in an index set. More...
 
const double glucat::DEFAULT_TRUNCATION = std::numeric_limits<float>::epsilon()
 Default for truncation. More...
 
const unsigned int glucat::DEFAULT_Mult_Matrix_Threshold = 8
 
const unsigned int glucat::DEFAULT_Div_Max_Steps = 4
 
const unsigned int glucat::DEFAULT_Sqrt_Max_Steps = 256
 
const unsigned int glucat::DEFAULT_Log_Max_Outer_Steps = 256
 
const unsigned int glucat::DEFAULT_Log_Max_Inner_Steps = 32
 
const unsigned int glucat::DEFAULT_Basis_Max_Count = 12
 
const unsigned int glucat::DEFAULT_Fast_Size_Threshold = 1 << 6
 
const unsigned int glucat::DEFAULT_Inv_Fast_Dim_Threshold = 1 << 3
 
const unsigned int glucat::DEFAULT_Products_Size_Threshold = 1 << 22
 
const precision_t glucat::DEFAULT_Function_Precision = precision_same
 

Macro Definition Documentation

◆ _GLUCAT_CTAssert

#define _GLUCAT_CTAssert (   expr,
  msg 
)    namespace { struct msg { glucat::CTAssertion<(expr)> ERROR_##msg; }; }

Definition at line 78 of file global.h.