change the Arch constants: const int ---> enum, more explicit names, and use

of a namespace instead of Prefix_Name.
This commit is contained in:
Benoit Jacob
2009-12-14 17:26:24 -05:00
parent 832045d363
commit d5f3b2dc94
4 changed files with 20 additions and 14 deletions

View File

@@ -228,8 +228,7 @@ enum {
RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
/** \internal Align the matrix itself if it is vectorizable fixed-size */
AutoAlign = 0,
/** \internal Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be
requested to be aligned) */
/** \internal Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be requested to be aligned) */ // FIXME --- clarify the situation
DontAlign = 0x2
};
@@ -277,16 +276,20 @@ enum TransformTraits {
Projective = 0x20
};
const int EiArch_Generic = 0x0;
const int EiArch_SSE = 0x1;
const int EiArch_AltiVec = 0x2;
namespace Architecture
{
enum Type {
Generic = 0x0,
SSE = 0x1,
AltiVec = 0x2,
#if defined EIGEN_VECTORIZE_SSE
const int EiArch = EiArch_SSE;
Target = SSE
#elif defined EIGEN_VECTORIZE_ALTIVEC
const int EiArch = EiArch_AltiVec;
Target = AltiVec
#else
const int EiArch = EiArch_Generic;
Target = Generic
#endif
};
}
#endif // EIGEN_CONSTANTS_H