Holds information about the various numeric (i.e. scalar) types allowed by Eigen. More...

`#include <NumTraits.h>`

Inheritance diagram for NumTraits< T >:

Collaboration diagram for NumTraits< T >:

class NumTraits< T >

Holds information about the various numeric (i.e. scalar) types allowed by Eigen.

**Parameters:**-
T the numeric type at hand

This class stores enums, typedefs and static methods giving information about a numeric type.

The provided data consists of:

- A typedef
*Real*, giving the "real part" type of*T*. If*T*is already real, then*Real*is just a typedef to*T*. If*T*is`std::complex<U>`

then*Real*is a typedef to*U*. - A typedef
*NonInteger*, giving the type that should be used for operations producing non-integral values, such as quotients, square roots, etc. If*T*is a floating-point type, then this typedef just gives*T*again. Note however that many Eigen functions such as internal::sqrt simply refuse to take integers. Outside of a few cases, Eigen doesn't do automatic type promotion. Thus, this typedef is only intended as a helper for code that needs to explicitly promote types. - A typedef
*Nested*giving the type to use to nest a value inside of the expression tree. If you don't know what this means, just use*T*here. - An enum value
*IsComplex*. It is equal to 1 if*T*is a`std::complex`

type, and to 0 otherwise. - An enum value
*IsInteger*. It is equal to`1`

if*T*is an integer type such as`int`

, and to`0`

otherwise. - Enum values ReadCost, AddCost and MulCost representing a rough estimate of the number of CPU cycles needed to by move / add / mul instructions respectively, assuming the data is already stored in CPU registers. Stay vague here. No need to do architecture-specific stuff.
- An enum value
*IsSigned*. It is equal to`1`

if*T*is a signed type and to 0 if*T*is unsigned. - An enum value
*RequireInitialization*. It is equal to`1`

if the constructor of the numeric type*T*must be called, and to 0 if it is safe not to call it. Default is 0 if*T*is an arithmetic type, and 1 otherwise. - An epsilon() function which, unlike std::numeric_limits::epsilon(), returns a
*Real*instead of a*T*. - A dummy_precision() function returning a weak epsilon value. It is mainly used as a default value by the fuzzy comparison operators.
- highest() and lowest() functions returning the highest and lowest possible values respectively.

Definition at line 101 of file NumTraits.h.

The documentation for this class was generated from the following file:

- eigen-eigen-65ee2328342f/Eigen/src/Core/NumTraits.h

Generated by Doxygen 1.6.0 Back to index