10#ifndef EIGEN_NUMTRAITS_H
11#define EIGEN_NUMTRAITS_H
20 bool use_numeric_limits = std::numeric_limits<T>::is_specialized,
25 static int run() {
return std::numeric_limits<T>::digits10; }
44 static int run() {
return 0; }
51 bool use_numeric_limits = std::numeric_limits<T>::is_specialized,
56 static int run() {
return std::numeric_limits<T>::digits; }
75 static int run() {
return 0; }
84template <
typename Tgt,
typename Src>
86#if EIGEN_HAS_TYPE_TRAITS
89 EIGEN_STATIC_ASSERT(std::is_trivially_copyable<Tgt>::value && std::is_default_constructible<Tgt>::value,
90 THIS_TYPE_IS_NOT_SUPPORTED);
96 memcpy(&tgt, &src,
sizeof(Tgt));
174 static inline Real epsilon()
176 return numext::numeric_limits<T>::epsilon();
180 static inline int digits10()
186 static inline int digits()
192 static inline int min_exponent()
194 return numext::numeric_limits<T>::min_exponent;
198 static inline int max_exponent()
200 return numext::numeric_limits<T>::max_exponent;
204 static inline Real dummy_precision()
211 static inline T highest() {
212 return (numext::numeric_limits<T>::max)();
216 static inline T lowest() {
217 return IsInteger ? (numext::numeric_limits<T>::min)()
218 : static_cast<
T>(-(numext::numeric_limits<
T>::
max)());
222 static inline T infinity() {
223 return numext::numeric_limits<T>::infinity();
227 static inline T quiet_NaN() {
228 return numext::numeric_limits<T>::quiet_NaN();
276template<
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
320 static inline std::string epsilon();
321 static inline std::string dummy_precision();
322 static inline std::string lowest();
323 static inline std::string highest();
324 static inline std::string infinity();
325 static inline std::string quiet_NaN();
EIGEN_DEVICE_FUNC const Log10ReturnType log10() const
Definition ArrayCwiseUnaryOps.h:158
EIGEN_DEVICE_FUNC const LogReturnType log() const
Definition ArrayCwiseUnaryOps.h:128
EIGEN_DEVICE_FUNC const CeilReturnType ceil() const
Definition ArrayCwiseUnaryOps.h:495
Array< double, 1, 3 > e(1./3., 0.5, 2.)
#define EIGEN_USING_STD(FUNC)
Definition Macros.h:1185
#define EIGEN_CONSTEXPR
Definition Macros.h:787
#define EIGEN_DEVICE_FUNC
Definition Macros.h:976
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition StaticAssert.h:127
Eigen::Triplet< double > T
Definition Tutorial_sparse_example.cpp:6
SCALAR Scalar
Definition bench_gemm.cpp:46
mp::number< mp::cpp_dec_float< 100 >, mp::et_on > Real
Definition boostmultiprec.cpp:78
General-purpose arrays with easy API for coefficient-wise operations.
Definition Array.h:47
#define max(a, b)
Definition datatypes.h:20
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Tgt bit_cast(const Src &src)
Definition NumTraits.h:85
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
const int HugeCost
Definition Constants.h:44
const int Dynamic
Definition Constants.h:22
Definition BandTriangularSolver.h:13
Definition NumTraits.h:153
T Real
Definition NumTraits.h:164
@ RequireInitialization
Definition NumTraits.h:158
@ IsSigned
Definition NumTraits.h:156
@ ReadCost
Definition NumTraits.h:159
@ AddCost
Definition NumTraits.h:160
@ IsInteger
Definition NumTraits.h:155
@ IsComplex
Definition NumTraits.h:157
@ MulCost
Definition NumTraits.h:161
NumTraits< Scalar >::Real RealScalar
Definition NumTraits.h:280
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR RealScalar epsilon()
Definition NumTraits.h:298
NumTraits< Scalar >::Literal Literal
Definition NumTraits.h:285
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR RealScalar dummy_precision()
Definition NumTraits.h:300
ArrayType & Nested
Definition NumTraits.h:284
NumTraits< Scalar >::NonInteger NonIntegerScalar
Definition NumTraits.h:282
Array< RealScalar, Rows, Cols, Options, MaxRows, MaxCols > Real
Definition NumTraits.h:281
Array< Scalar, Rows, Cols, Options, MaxRows, MaxCols > ArrayType
Definition NumTraits.h:279
static EIGEN_CONSTEXPR int digits10()
Definition NumTraits.h:303
Array< NonIntegerScalar, Rows, Cols, Options, MaxRows, MaxCols > NonInteger
Definition NumTraits.h:283
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR double dummy_precision()
Definition NumTraits.h:245
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR float dummy_precision()
Definition NumTraits.h:239
static EIGEN_CONSTEXPR long double dummy_precision()
Definition NumTraits.h:252
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Real dummy_precision()
Definition NumTraits.h:271
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR int digits10()
Definition NumTraits.h:273
NumTraits< _Real >::Literal Literal
Definition NumTraits.h:259
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Real epsilon()
Definition NumTraits.h:269
_Real Real
Definition NumTraits.h:258
static EIGEN_CONSTEXPR int digits10()
Definition NumTraits.h:317
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition NumTraits.h:233
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR int run()
Definition NumTraits.h:32
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR int run()
Definition NumTraits.h:44
Definition NumTraits.h:23
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR int run()
Definition NumTraits.h:25
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR int run()
Definition NumTraits.h:63
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR int run()
Definition NumTraits.h:75
Definition NumTraits.h:54
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR int run()
Definition NumTraits.h:56
Definition ForwardDeclarations.h:17
Definition datatypes.h:12