51#ifndef GCEM_VERSION_MAJOR
52 #define GCEM_VERSION_MAJOR 1
55#ifndef GCEM_VERSION_MINOR
56 #define GCEM_VERSION_MINOR 17
59#ifndef GCEM_VERSION_PATCH
60 #define GCEM_VERSION_PATCH 0
74 using GCLIM = std::numeric_limits<T>;
77 using return_t =
typename std::conditional<std::is_integral<T>::value,double,T>
::type;
79 template<
typename ...T>
82 template<
typename ...T>
90 #define GCEM_LOG_2 0.6931471805599453094172321214581765680755L
94 #define GCEM_LOG_10 2.3025850929940456840179914546843642076011L
98 #define GCEM_PI 3.1415926535897932384626433832795028841972L
102 #define GCEM_LOG_PI 1.1447298858494001741434273513530587116473L
106 #define GCEM_LOG_2PI 1.8378770664093454835606594728112352797228L
109#ifndef GCEM_LOG_SQRT_2PI
110 #define GCEM_LOG_SQRT_2PI 0.9189385332046727417803297364056176398614L
114 #define GCEM_SQRT_2 1.4142135623730950488016887242096980785697L
118 #define GCEM_HALF_PI 1.5707963267948966192313216916397514420986L
122 #define GCEM_SQRT_PI 1.7724538509055160272981674833411451827975L
125#ifndef GCEM_SQRT_HALF_PI
126 #define GCEM_SQRT_HALF_PI 1.2533141373155002512078826424055226265035L
130 #define GCEM_E 2.7182818284590452353602874713526624977572L
136#ifndef GCEM_ERF_MAX_ITER
137 #define GCEM_ERF_MAX_ITER 60
140#ifndef GCEM_ERF_INV_MAX_ITER
141 #define GCEM_ERF_INV_MAX_ITER 60
144#ifndef GCEM_EXP_MAX_ITER_SMALL
145 #define GCEM_EXP_MAX_ITER_SMALL 25
152#ifndef GCEM_LOG_MAX_ITER_SMALL
153 #define GCEM_LOG_MAX_ITER_SMALL 25
156#ifndef GCEM_LOG_MAX_ITER_BIG
157 #define GCEM_LOG_MAX_ITER_BIG 255
160#ifndef GCEM_INCML_BETA_TOL
161 #define GCEM_INCML_BETA_TOL 1E-15
164#ifndef GCEM_INCML_BETA_MAX_ITER
165 #define GCEM_INCML_BETA_MAX_ITER 205
168#ifndef GCEM_INCML_BETA_INV_MAX_ITER
169 #define GCEM_INCML_BETA_INV_MAX_ITER 35
172#ifndef GCEM_INCML_GAMMA_MAX_ITER
173 #define GCEM_INCML_GAMMA_MAX_ITER 55
176#ifndef GCEM_INCML_GAMMA_INV_MAX_ITER
177 #define GCEM_INCML_GAMMA_INV_MAX_ITER 35
180#ifndef GCEM_SQRT_MAX_ITER
181 #define GCEM_SQRT_MAX_ITER 100
184#ifndef GCEM_INV_SQRT_MAX_ITER
185 #define GCEM_INV_SQRT_MAX_ITER 100
188#ifndef GCEM_TAN_MAX_ITER
189 #define GCEM_TAN_MAX_ITER 35
192#ifndef GCEM_TANH_MAX_ITER
193 #define GCEM_TANH_MAX_ITER 35
201 #define GCEM_SIGNBIT(x) _signbit(x)
203 #ifndef GCEM_COPYSIGN
204 #define GCEM_COPYSIGN(x,y) _copysign(x,y)
208 #define GCEM_SIGNBIT(x) __builtin_signbit(x)
210 #ifndef GCEM_COPYSIGN
211 #define GCEM_COPYSIGN(x,y) __builtin_copysign(x,y)
type
Definition: core.h:556
Definition: is_even.hpp:29
unsigned long long int ullint_t
Definition: gcem_options.hpp:69
long long int llint_t
Definition: gcem_options.hpp:71
return_t< common_t< T... > > common_return_t
Definition: gcem_options.hpp:83
std::numeric_limits< T > GCLIM
Definition: gcem_options.hpp:74
typename std::common_type< T... >::type common_t
Definition: gcem_options.hpp:80
unsigned int uint_t
Definition: gcem_options.hpp:68
typename std::conditional< std::is_integral< T >::value, double, T >::type return_t
Definition: gcem_options.hpp:77