-merge patch from Gael Guennebaud adding NumTraits for long long

and long double.
-define scalar-multiple operators only for the current Scalar type;
 thanks to Gael for expaining how to make the compiler understand
 when automatic casting is needed.
-take ScalarMultiple take only 1 template param, again.
 We lose some flexibility especially when dealing with complex numbers,
 but we gain a lot of extensibility to new scalar types.
This commit is contained in:
Benoit Jacob
2008-02-29 13:20:44 +00:00
parent aa8e2bcbde
commit b3268a6e2f
6 changed files with 89 additions and 91 deletions

View File

@@ -87,4 +87,24 @@ template<typename _Real> struct NumTraits<std::complex<_Real> >
};
};
template<> struct NumTraits<long long int>
{
typedef long long int Real;
typedef long double FloatingPoint;
enum {
IsComplex = 0,
HasFloatingPoint = 0
};
};
template<> struct NumTraits<long double>
{
typedef long double Real;
typedef long double FloatingPoint;
enum {
IsComplex = 0,
HasFloatingPoint = 1
};
};
#endif // EIGEN_NUMTRAITS_H