EIGEN_MAKE_ALIGNED_OPERATOR_NEW didn't actually need to get the class

name as parameter
This commit is contained in:
Benoit Jacob 2009-01-08 15:37:13 +00:00
parent 1d52bd4cad
commit eb7dcbbfce
12 changed files with 24 additions and 24 deletions

View File

@ -135,7 +135,7 @@ class Matrix
public: public:
enum { NeedsToAlign = (Options&AutoAlign) == AutoAlign enum { NeedsToAlign = (Options&AutoAlign) == AutoAlign
&& SizeAtCompileTime!=Dynamic && ((sizeof(Scalar)*SizeAtCompileTime)%16)==0 }; && SizeAtCompileTime!=Dynamic && ((sizeof(Scalar)*SizeAtCompileTime)%16)==0 };
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(Matrix,NeedsToAlign) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
EIGEN_STRONG_INLINE int rows() const { return m_storage.rows(); } EIGEN_STRONG_INLINE int rows() const { return m_storage.rows(); }
EIGEN_STRONG_INLINE int cols() const { return m_storage.cols(); } EIGEN_STRONG_INLINE int cols() const { return m_storage.cols(); }

View File

@ -219,7 +219,7 @@ inline static int ei_alignmentOffset(const Scalar* ptr, int maxOffset)
* Here is a similar safe example: * Here is a similar safe example:
* \code * \code
* struct Foo { * struct Foo {
* EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Foo) * EIGEN_MAKE_ALIGNED_OPERATOR_NEW
* char dummy; * char dummy;
* Vector4f some_vector; * Vector4f some_vector;
* }; * };
@ -229,7 +229,7 @@ inline static int ei_alignmentOffset(const Scalar* ptr, int maxOffset)
* *
* \sa class ei_new_allocator * \sa class ei_new_allocator
*/ */
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(Type,NeedsToAlign) \ #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \
void *operator new(size_t size) throw() { \ void *operator new(size_t size) throw() { \
return Eigen::ei_conditional_aligned_malloc<NeedsToAlign>(size); \ return Eigen::ei_conditional_aligned_malloc<NeedsToAlign>(size); \
} \ } \
@ -239,14 +239,14 @@ inline static int ei_alignmentOffset(const Scalar* ptr, int maxOffset)
void operator delete(void * ptr) { Eigen::ei_aligned_free(ptr); } \ void operator delete(void * ptr) { Eigen::ei_aligned_free(ptr); } \
void operator delete[](void * ptr) { Eigen::ei_aligned_free(ptr); } void operator delete[](void * ptr) { Eigen::ei_aligned_free(ptr); }
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Type) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(Type,true) #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(true)
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(Type,Scalar,Size) \ #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(Scalar,Size) \
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(Type,((Size)!=Eigen::Dynamic) && ((sizeof(Scalar)*(Size))%16==0)) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(((Size)!=Eigen::Dynamic) && ((sizeof(Scalar)*(Size))%16==0))
/** Deprecated, use the EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Class) macro instead in your own class */ /** Deprecated, use the EIGEN_MAKE_ALIGNED_OPERATOR_NEW macro instead in your own class */
struct WithAlignedOperatorNew struct WithAlignedOperatorNew
{ {
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(WithAlignedOperatorNew) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
}; };
/** \class ei_new_allocator /** \class ei_new_allocator

View File

@ -41,7 +41,7 @@ template <typename _Scalar, int _AmbientDim>
class AlignedBox class AlignedBox
{ {
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(AlignedBox,_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
enum { AmbientDimAtCompileTime = _AmbientDim }; enum { AmbientDimAtCompileTime = _AmbientDim };
typedef _Scalar Scalar; typedef _Scalar Scalar;
typedef typename NumTraits<Scalar>::Real RealScalar; typedef typename NumTraits<Scalar>::Real RealScalar;

View File

@ -47,7 +47,7 @@ template <typename _Scalar, int _AmbientDim>
class Hyperplane class Hyperplane
{ {
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(Hyperplane,_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
enum { AmbientDimAtCompileTime = _AmbientDim }; enum { AmbientDimAtCompileTime = _AmbientDim };
typedef _Scalar Scalar; typedef _Scalar Scalar;
typedef typename NumTraits<Scalar>::Real RealScalar; typedef typename NumTraits<Scalar>::Real RealScalar;

View File

@ -43,7 +43,7 @@ template <typename _Scalar, int _AmbientDim>
class ParametrizedLine class ParametrizedLine
{ {
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(ParametrizedLine,_Scalar,_AmbientDim) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(_Scalar,_AmbientDim)
enum { AmbientDimAtCompileTime = _AmbientDim }; enum { AmbientDimAtCompileTime = _AmbientDim };
typedef _Scalar Scalar; typedef _Scalar Scalar;
typedef typename NumTraits<Scalar>::Real RealScalar; typedef typename NumTraits<Scalar>::Real RealScalar;

View File

@ -65,7 +65,7 @@ class Quaternion : public RotationBase<Quaternion<_Scalar>,3>
Coefficients m_coeffs; Coefficients m_coeffs;
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(Quaternion,_Scalar,4) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(_Scalar,4)
using Base::operator*; using Base::operator*;

View File

@ -43,7 +43,7 @@ template<typename _Scalar, int _Dim>
class Scaling class Scaling
{ {
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(Scaling,_Scalar,_Dim) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(_Scalar,_Dim)
/** dimension of the space */ /** dimension of the space */
enum { Dim = _Dim }; enum { Dim = _Dim };
/** the scalar type of the coefficients */ /** the scalar type of the coefficients */

View File

@ -63,7 +63,7 @@ template<typename _Scalar, int _Dim>
class Transform class Transform
{ {
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(Transform,_Scalar,_Dim==Dynamic ? Dynamic : (_Dim+1)*(_Dim+1)) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(_Scalar,_Dim==Dynamic ? Dynamic : (_Dim+1)*(_Dim+1))
enum { enum {
Dim = _Dim, ///< space dimension in which the transformation holds Dim = _Dim, ///< space dimension in which the transformation holds
HDim = _Dim+1 ///< size of a respective homogeneous vector HDim = _Dim+1 ///< size of a respective homogeneous vector

View File

@ -43,7 +43,7 @@ template<typename _Scalar, int _Dim>
class Translation class Translation
{ {
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(Translation,_Scalar,_Dim) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE(_Scalar,_Dim)
/** dimension of the space */ /** dimension of the space */
enum { Dim = _Dim }; enum { Dim = _Dim };
/** the scalar type of the coefficients */ /** the scalar type of the coefficients */

View File

@ -54,7 +54,7 @@ class Foo
Eigen::Vector2d v; Eigen::Vector2d v;
... ...
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Foo) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
}; };
... ...
@ -144,7 +144,7 @@ class Foo
double x; double x;
Eigen::Vector2d v; Eigen::Vector2d v;
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Foo) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
}; };
\endcode \endcode
@ -156,7 +156,7 @@ class Foo
Eigen::Vector2d v; Eigen::Vector2d v;
double x; double x;
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Foo) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
}; };
\endcode \endcode
@ -183,7 +183,7 @@ template<int n> class Foo
Vector v; Vector v;
... ...
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(Foo,NeedsToAlign) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
}; };
... ...

View File

@ -27,7 +27,7 @@
// test compilation with both a struct and a class... // test compilation with both a struct and a class...
struct MyStruct struct MyStruct
{ {
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(MyStruct) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
char dummychar; char dummychar;
Vector4f avec; Vector4f avec;
}; };
@ -35,7 +35,7 @@ struct MyStruct
class MyClassA class MyClassA
{ {
public: public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(MyClassA) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
char dummychar; char dummychar;
Vector4f avec; Vector4f avec;
}; };

View File

@ -57,14 +57,14 @@ struct Bad6
struct Good7 struct Good7
{ {
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Good7) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Vector2d m; Vector2d m;
float f; // make the struct have sizeof%16!=0 to make it a little more tricky when we allow an array of 2 such objects float f; // make the struct have sizeof%16!=0 to make it a little more tricky when we allow an array of 2 such objects
}; };
struct Good8 struct Good8
{ {
EIGEN_MAKE_ALIGNED_OPERATOR_NEW(Good8) EIGEN_MAKE_ALIGNED_OPERATOR_NEW
float f; // try the f at first -- the EIGEN_ALIGN_128 attribute of m should make that still work float f; // try the f at first -- the EIGEN_ALIGN_128 attribute of m should make that still work
Matrix4f m; Matrix4f m;
}; };
@ -77,7 +77,7 @@ struct Good9
template<bool Align> struct Depends template<bool Align> struct Depends
{ {
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(Depends,Align) EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(Align)
Vector2d m; Vector2d m;
float f; float f;
}; };