# NumTraits Class Reference

`#include <NumTraits.h>`

## Detailed Description

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

**Parameters:**-
| *T* | the numeric type about which this class provides data. Recall that Eigen allows only the following types for *T:* `int` , `float` , `double` , `std::complex<float>` , `std::complex<double>` , and `long` `double` (especially useful to enforce x87 arithmetics when SSE is the default). |

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
*FloatingPoint*, giving the "floating-point type" of *T*. If *T* is `int`

, then *FloatingPoint* is a typedef to `double`

. Otherwise, *FloatingPoint* is a typedef to *T*.
- An enum value
*IsComplex*. It is equal to 1 if *T* is a `std::complex`

type, and to 0 otherwise.
- An enum
*HasFloatingPoint*. It is equal to `0`

if *T* is `int`

, and to `1`

otherwise.

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

- blender-2.50~alpha~0~svn24834/extern/Eigen2/Eigen/src/Core/NumTraits.h