mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-09 22:51:51 +08:00
change the Arch constants: const int ---> enum, more explicit names, and use
of a namespace instead of Prefix_Name.
This commit is contained in:
parent
832045d363
commit
d5f3b2dc94
@ -228,8 +228,7 @@ enum {
|
|||||||
RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
|
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 */
|
/** \internal Align the matrix itself if it is vectorizable fixed-size */
|
||||||
AutoAlign = 0,
|
AutoAlign = 0,
|
||||||
/** \internal Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be
|
/** \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
|
||||||
requested to be aligned) */
|
|
||||||
DontAlign = 0x2
|
DontAlign = 0x2
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -277,16 +276,20 @@ enum TransformTraits {
|
|||||||
Projective = 0x20
|
Projective = 0x20
|
||||||
};
|
};
|
||||||
|
|
||||||
const int EiArch_Generic = 0x0;
|
namespace Architecture
|
||||||
const int EiArch_SSE = 0x1;
|
{
|
||||||
const int EiArch_AltiVec = 0x2;
|
enum Type {
|
||||||
|
Generic = 0x0,
|
||||||
|
SSE = 0x1,
|
||||||
|
AltiVec = 0x2,
|
||||||
#if defined EIGEN_VECTORIZE_SSE
|
#if defined EIGEN_VECTORIZE_SSE
|
||||||
const int EiArch = EiArch_SSE;
|
Target = SSE
|
||||||
#elif defined EIGEN_VECTORIZE_ALTIVEC
|
#elif defined EIGEN_VECTORIZE_ALTIVEC
|
||||||
const int EiArch = EiArch_AltiVec;
|
Target = AltiVec
|
||||||
#else
|
#else
|
||||||
const int EiArch = EiArch_Generic;
|
Target = Generic
|
||||||
#endif
|
#endif
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
#endif // EIGEN_CONSTANTS_H
|
#endif // EIGEN_CONSTANTS_H
|
||||||
|
@ -90,7 +90,8 @@ MatrixBase<Derived>::cross3(const MatrixBase<OtherDerived>& other) const
|
|||||||
const DerivedNested lhs(derived());
|
const DerivedNested lhs(derived());
|
||||||
const OtherDerivedNested rhs(other.derived());
|
const OtherDerivedNested rhs(other.derived());
|
||||||
|
|
||||||
return ei_cross3_impl<EiArch,typename ei_cleantype<DerivedNested>::type,
|
return ei_cross3_impl<Architecture::Target,
|
||||||
|
typename ei_cleantype<DerivedNested>::type,
|
||||||
typename ei_cleantype<OtherDerivedNested>::type>::run(lhs,rhs);
|
typename ei_cleantype<OtherDerivedNested>::type>::run(lhs,rhs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -367,7 +367,7 @@ QuaternionBase<Derived>::operator* (const QuaternionBase<OtherDerived>& other) c
|
|||||||
{
|
{
|
||||||
EIGEN_STATIC_ASSERT((ei_is_same_type<typename Derived::Scalar, typename OtherDerived::Scalar>::ret),
|
EIGEN_STATIC_ASSERT((ei_is_same_type<typename Derived::Scalar, typename OtherDerived::Scalar>::ret),
|
||||||
YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
|
YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
|
||||||
return ei_quat_product<EiArch, Derived, OtherDerived,
|
return ei_quat_product<Architecture::Target, Derived, OtherDerived,
|
||||||
typename ei_traits<Derived>::Scalar,
|
typename ei_traits<Derived>::Scalar,
|
||||||
ei_traits<Derived>::PacketAccess && ei_traits<OtherDerived>::PacketAccess>::run(*this, other);
|
ei_traits<Derived>::PacketAccess && ei_traits<OtherDerived>::PacketAccess>::run(*this, other);
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,8 @@
|
|||||||
#ifndef EIGEN_GEOMETRY_SSE_H
|
#ifndef EIGEN_GEOMETRY_SSE_H
|
||||||
#define EIGEN_GEOMETRY_SSE_H
|
#define EIGEN_GEOMETRY_SSE_H
|
||||||
|
|
||||||
template<class Derived, class OtherDerived> struct ei_quat_product<EiArch_SSE, Derived, OtherDerived, float, Aligned>
|
template<class Derived, class OtherDerived>
|
||||||
|
struct ei_quat_product<Architecture::SSE, Derived, OtherDerived, float, Aligned>
|
||||||
{
|
{
|
||||||
inline static Quaternion<float> run(const QuaternionBase<Derived>& _a, const QuaternionBase<OtherDerived>& _b)
|
inline static Quaternion<float> run(const QuaternionBase<Derived>& _a, const QuaternionBase<OtherDerived>& _b)
|
||||||
{
|
{
|
||||||
@ -48,7 +49,8 @@ template<class Derived, class OtherDerived> struct ei_quat_product<EiArch_SSE, D
|
|||||||
};
|
};
|
||||||
|
|
||||||
template<typename VectorLhs,typename VectorRhs>
|
template<typename VectorLhs,typename VectorRhs>
|
||||||
struct ei_cross3_impl<EiArch_SSE,VectorLhs,VectorRhs,float,true> {
|
struct ei_cross3_impl<Architecture::SSE,VectorLhs,VectorRhs,float,true>
|
||||||
|
{
|
||||||
inline static typename ei_plain_matrix_type<VectorLhs>::type
|
inline static typename ei_plain_matrix_type<VectorLhs>::type
|
||||||
run(const VectorLhs& lhs, const VectorRhs& rhs)
|
run(const VectorLhs& lhs, const VectorRhs& rhs)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user