WPILibC++ 2023.4.3-108-ge5452e3
gcem_options.hpp File Reference
#include <cstddef>
#include <limits>
#include <type_traits>

Go to the source code of this file.

Namespaces

namespace  gcem
 

Macros

#define GCEM_VERSION_MAJOR   1
 
#define GCEM_VERSION_MINOR   16
 
#define GCEM_VERSION_PATCH   0
 
#define GCEM_LOG_2   0.6931471805599453094172321214581765680755L
 
#define GCEM_LOG_10   2.3025850929940456840179914546843642076011L
 
#define GCEM_PI   3.1415926535897932384626433832795028841972L
 
#define GCEM_LOG_PI   1.1447298858494001741434273513530587116473L
 
#define GCEM_LOG_2PI   1.8378770664093454835606594728112352797228L
 
#define GCEM_LOG_SQRT_2PI   0.9189385332046727417803297364056176398614L
 
#define GCEM_SQRT_2   1.4142135623730950488016887242096980785697L
 
#define GCEM_HALF_PI   1.5707963267948966192313216916397514420986L
 
#define GCEM_SQRT_PI   1.7724538509055160272981674833411451827975L
 
#define GCEM_SQRT_HALF_PI   1.2533141373155002512078826424055226265035L
 
#define GCEM_E   2.7182818284590452353602874713526624977572L
 
#define GCEM_ERF_MAX_ITER   60
 
#define GCEM_ERF_INV_MAX_ITER   60
 
#define GCEM_EXP_MAX_ITER_SMALL   25
 
#define GCEM_LOG_MAX_ITER_SMALL   25
 
#define GCEM_LOG_MAX_ITER_BIG   255
 
#define GCEM_INCML_BETA_TOL   1E-15
 
#define GCEM_INCML_BETA_MAX_ITER   205
 
#define GCEM_INCML_BETA_INV_MAX_ITER   35
 
#define GCEM_INCML_GAMMA_MAX_ITER   55
 
#define GCEM_INCML_GAMMA_INV_MAX_ITER   35
 
#define GCEM_SQRT_MAX_ITER   100
 
#define GCEM_INV_SQRT_MAX_ITER   100
 
#define GCEM_TAN_MAX_ITER   35
 
#define GCEM_TANH_MAX_ITER   35
 
#define GCEM_SIGNBIT(x)   __builtin_signbit(x)
 
#define GCEM_COPYSIGN(x, y)   __builtin_copysign(x,y)
 

Typedefs

using gcem::uint_t = unsigned int
 
using gcem::ullint_t = unsigned long long int
 
using gcem::llint_t = long long int
 
template<class T >
using gcem::GCLIM = std::numeric_limits< T >
 
template<typename T >
using gcem::return_t = typename std::conditional< std::is_integral< T >::value, double, T >::type
 
template<typename ... T>
using gcem::common_t = typename std::common_type< T... >::type
 
template<typename ... T>
using gcem::common_return_t = return_t< common_t< T... > >
 

Macro Definition Documentation

◆ GCEM_COPYSIGN

#define GCEM_COPYSIGN (   x,
 
)    __builtin_copysign(x,y)

◆ GCEM_E

#define GCEM_E   2.7182818284590452353602874713526624977572L

◆ GCEM_ERF_INV_MAX_ITER

#define GCEM_ERF_INV_MAX_ITER   60

◆ GCEM_ERF_MAX_ITER

#define GCEM_ERF_MAX_ITER   60

◆ GCEM_EXP_MAX_ITER_SMALL

#define GCEM_EXP_MAX_ITER_SMALL   25

◆ GCEM_HALF_PI

#define GCEM_HALF_PI   1.5707963267948966192313216916397514420986L

◆ GCEM_INCML_BETA_INV_MAX_ITER

#define GCEM_INCML_BETA_INV_MAX_ITER   35

◆ GCEM_INCML_BETA_MAX_ITER

#define GCEM_INCML_BETA_MAX_ITER   205

◆ GCEM_INCML_BETA_TOL

#define GCEM_INCML_BETA_TOL   1E-15

◆ GCEM_INCML_GAMMA_INV_MAX_ITER

#define GCEM_INCML_GAMMA_INV_MAX_ITER   35

◆ GCEM_INCML_GAMMA_MAX_ITER

#define GCEM_INCML_GAMMA_MAX_ITER   55

◆ GCEM_INV_SQRT_MAX_ITER

#define GCEM_INV_SQRT_MAX_ITER   100

◆ GCEM_LOG_10

#define GCEM_LOG_10   2.3025850929940456840179914546843642076011L

◆ GCEM_LOG_2

#define GCEM_LOG_2   0.6931471805599453094172321214581765680755L

◆ GCEM_LOG_2PI

#define GCEM_LOG_2PI   1.8378770664093454835606594728112352797228L

◆ GCEM_LOG_MAX_ITER_BIG

#define GCEM_LOG_MAX_ITER_BIG   255

◆ GCEM_LOG_MAX_ITER_SMALL

#define GCEM_LOG_MAX_ITER_SMALL   25

◆ GCEM_LOG_PI

#define GCEM_LOG_PI   1.1447298858494001741434273513530587116473L

◆ GCEM_LOG_SQRT_2PI

#define GCEM_LOG_SQRT_2PI   0.9189385332046727417803297364056176398614L

◆ GCEM_PI

#define GCEM_PI   3.1415926535897932384626433832795028841972L

◆ GCEM_SIGNBIT

#define GCEM_SIGNBIT (   x)    __builtin_signbit(x)

◆ GCEM_SQRT_2

#define GCEM_SQRT_2   1.4142135623730950488016887242096980785697L

◆ GCEM_SQRT_HALF_PI

#define GCEM_SQRT_HALF_PI   1.2533141373155002512078826424055226265035L

◆ GCEM_SQRT_MAX_ITER

#define GCEM_SQRT_MAX_ITER   100

◆ GCEM_SQRT_PI

#define GCEM_SQRT_PI   1.7724538509055160272981674833411451827975L

◆ GCEM_TAN_MAX_ITER

#define GCEM_TAN_MAX_ITER   35

◆ GCEM_TANH_MAX_ITER

#define GCEM_TANH_MAX_ITER   35

◆ GCEM_VERSION_MAJOR

#define GCEM_VERSION_MAJOR   1

◆ GCEM_VERSION_MINOR

#define GCEM_VERSION_MINOR   16

◆ GCEM_VERSION_PATCH

#define GCEM_VERSION_PATCH   0