52#define LASS_NUM_PI 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
53#define LASS_NUM_E 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427
54#define LASS_NUM_SQRT_2 1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641572
55#define LASS_NUM_SQRT_PI 1.772453850905516027298167483341145
69template <>
struct LASS_DLL NumTraits<float>;
70constexpr size_t NumTraits<float>::memorySize;
71constexpr size_t NumTraits<float>::mantisseSize;
72constexpr float NumTraits<float>::one;
73constexpr float NumTraits<float>::zero;
74constexpr float NumTraits<float>::qNaN;
75constexpr float NumTraits<float>::sNaN;
76constexpr float NumTraits<float>::infinity;
77constexpr float NumTraits<float>::epsilon;
78constexpr float NumTraits<float>::min;
79constexpr float NumTraits<float>::max ;
80constexpr float NumTraits<float>::minStrictPositive;
81constexpr float NumTraits<float>::pi;
82constexpr float NumTraits<float>::e;
83constexpr float NumTraits<float>::sqrt2 ;
84constexpr float NumTraits<float>::sqrtPi;
87template <>
struct LASS_DLL NumTraits< std::complex<float> >;
88constexpr size_t NumTraits< std::complex<float> >::memorySize;
89constexpr size_t NumTraits< std::complex<float> >::mantisseSize;
90constexpr std::complex<float> NumTraits< std::complex<float> >::one;
91constexpr std::complex<float> NumTraits< std::complex<float> >::zero;
92constexpr std::complex<float> NumTraits< std::complex<float> >::pi;
93constexpr std::complex<float> NumTraits< std::complex<float> >::e;
94constexpr std::complex<float> NumTraits< std::complex<float> >::sqrt2;
95constexpr std::complex<float> NumTraits< std::complex<float> >::sqrtPi;
100template <> struct
LASS_DLL NumTraits<double>;
101constexpr size_t NumTraits<double>::memorySize;
102constexpr size_t NumTraits<double>::mantisseSize;
103constexpr double NumTraits<double>::one;
104constexpr double NumTraits<double>::zero;
105constexpr double NumTraits<double>::qNaN;
106constexpr double NumTraits<double>::sNaN;
107constexpr double NumTraits<double>::infinity;
108constexpr double NumTraits<double>::epsilon;
109constexpr double NumTraits<double>::min;
110constexpr double NumTraits<double>::max;
111constexpr double NumTraits<double>::minStrictPositive;
112constexpr double NumTraits<double>::pi;
113constexpr double NumTraits<double>::e;
114constexpr double NumTraits<double>::sqrt2;
115constexpr double NumTraits<double>::sqrtPi;
118template <> struct
LASS_DLL NumTraits< std::complex<double> >;
119constexpr size_t NumTraits< std::complex<double> >::memorySize;
120constexpr size_t NumTraits< std::complex<double> >::mantisseSize;
121constexpr std::complex<double> NumTraits< std::complex<double> >::one;
122constexpr std::complex<double> NumTraits< std::complex<double> >::zero;
123constexpr std::complex<double> NumTraits< std::complex<double> >::pi;
124constexpr std::complex<double> NumTraits< std::complex<double> >::e;
125constexpr std::complex<double> NumTraits< std::complex<double> >::sqrt2;
126constexpr std::complex<double> NumTraits< std::complex<double> >::sqrtPi;
131template <> struct
LASS_DLL NumTraits<long double>;
132constexpr size_t NumTraits<long double>::memorySize;
133constexpr size_t NumTraits<long double>::mantisseSize;
134constexpr long double NumTraits<long double>::one;
135constexpr long double NumTraits<long double>::zero;
136constexpr long double NumTraits<long double>::qNaN;
137constexpr long double NumTraits<long double>::sNaN;
138constexpr long double NumTraits<long double>::infinity;
139constexpr long double NumTraits<long double>::epsilon;
140constexpr long double NumTraits<long double>::min;
141constexpr long double NumTraits<long double>::max;
142constexpr long double NumTraits<long double>::minStrictPositive;
143constexpr long double NumTraits<long double>::pi;
144constexpr long double NumTraits<long double>::e;
145constexpr long double NumTraits<long double>::sqrt2;
146constexpr long double NumTraits<long double>::sqrtPi;
149template <> struct
LASS_DLL NumTraits< std::complex<long double> >;
150constexpr size_t NumTraits< std::complex<long double> >::memorySize;
151constexpr size_t NumTraits< std::complex<long double> >::mantisseSize;
152constexpr std::complex<long double> NumTraits< std::complex<long double> >::one;
153constexpr std::complex<long double> NumTraits< std::complex<long double> >::zero;
154constexpr std::complex<long double> NumTraits< std::complex<long double> >::pi;
155constexpr std::complex<long double> NumTraits< std::complex<long double> >::e;
156constexpr std::complex<long double> NumTraits< std::complex<long double> >::sqrt2;
157constexpr std::complex<long double> NumTraits< std::complex<long double> >::sqrtPi;
165#define LASS_NUM_TRAITS_INTEGRAL_TEMPLATE_SPEC( t_type ) \
166template <> struct LASS_DLL NumTraits<t_type>;\
167constexpr size_t NumTraits<t_type>::memorySize;\
168constexpr size_t NumTraits<t_type>::mantisseSize;\
169constexpr t_type NumTraits<t_type>::one ;\
170constexpr t_type NumTraits<t_type>::zero;\
171constexpr t_type NumTraits<t_type>::epsilon;\
172constexpr t_type NumTraits<t_type>::min;\
173constexpr t_type NumTraits<t_type>::max ;\
174constexpr t_type NumTraits<t_type>::minStrictPositive;
185#if LASS_HAVE_LONG_LONG
188#elif LASS_PLATFORM_TYPE == LASS_PLATFORM_TYPE_WIN32
#define LASS_DLL
DLL interface: import or export symbols?
numeric types and traits.
Library for Assembled Shared Sources.
#define LASS_NUM_TRAITS_INTEGRAL_TEMPLATE_SPEC(t_type)
code generating macro for integral types