diff options
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/Core | 5 | ||||
-rw-r--r-- | Eigen/Geometry | 2 | ||||
-rw-r--r-- | Eigen/src/Core/Assign.h | 68 | ||||
-rw-r--r-- | Eigen/src/Geometry/AngleAxis.h | 6 | ||||
-rw-r--r-- | Eigen/src/Geometry/Quaternion.h | 6 | ||||
-rw-r--r-- | Eigen/src/Geometry/Rotation.h | 4 | ||||
-rw-r--r-- | Eigen/src/Geometry/Transform.h | 10 |
7 files changed, 36 insertions, 65 deletions
diff --git a/Eigen/Core b/Eigen/Core index 9e753a517..b1b61ebc2 100644 --- a/Eigen/Core +++ b/Eigen/Core @@ -9,8 +9,9 @@ namespace Eigen { /** \defgroup Core_Module Core module - * This is the main module of Eigen providing dense matrix and vector support with - * features equivalent to a BLAS library and much more... + * This is the main module of Eigen providing dense matrix and vector support + * (both fixed and dynamic size) with all the features corresponding to a BLAS library + * and much more... * * \code * #include <Eigen/Core> diff --git a/Eigen/Geometry b/Eigen/Geometry index b5a80bd50..61b7d7038 100644 --- a/Eigen/Geometry +++ b/Eigen/Geometry @@ -9,7 +9,7 @@ namespace Eigen { -/** \defgroup Geometry Geometry module +/** \defgroup GeometryModule Geometry module * This module provides support for: * - fixed-size homogeneous transformations * - 2D and 3D rotations diff --git a/Eigen/src/Core/Assign.h b/Eigen/src/Core/Assign.h index 7bdf312c2..758858165 100644 --- a/Eigen/src/Core/Assign.h +++ b/Eigen/src/Core/Assign.h @@ -299,58 +299,28 @@ struct ei_assign_impl<Derived1, Derived2, InnerVectorization, InnerUnrolling> *** Linear vectorization *** ***************************/ -// template<typename Derived1, typename Derived2> -// struct ei_assign_impl<Derived1, Derived2, LinearVectorization, NoUnrolling> -// { -// static void run(Derived1 &dst, const Derived2 &src) -// { -// const int size = dst.size(); -// const int packetSize = ei_packet_traits<typename Derived1::Scalar>::size; -// const int alignedStart = ei_assign_traits<Derived1,Derived2>::DstIsAligned ? 0 -// : ei_alignmentOffset(&dst.coeffRef(0), size); -// const int alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize; -// -// for(int index = 0; index < alignedStart; index++) -// dst.copyCoeff(index, src); -// -// for(int index = alignedStart; index < alignedEnd; index += packetSize) -// { -// dst.template copyPacket<Derived2, Aligned, ei_assign_traits<Derived1,Derived2>::SrcAlignment>(index, src); -// } -// -// for(int index = alignedEnd; index < size; index++) -// dst.copyCoeff(index, src); -// } -// }; template<typename Derived1, typename Derived2> struct ei_assign_impl<Derived1, Derived2, LinearVectorization, NoUnrolling> { - static void run(Derived1 &dst, const Derived2 &src) - { - asm("#begin"); - const int size = dst.size(); - const int packetSize = ei_packet_traits<typename Derived1::Scalar>::size; - const int alignedStart = ei_assign_traits<Derived1,Derived2>::DstIsAligned ? 0 - : ei_alignmentOffset(&dst.coeffRef(0), size); - const int alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize; - - asm("#unaligned start"); - - for(int index = 0; index < alignedStart; index++) - dst.copyCoeff(index, src); - asm("#aligned middle"); - - for(int index = alignedStart; index < alignedEnd; index += packetSize) - { - dst.template copyPacket<Derived2, Aligned, ei_assign_traits<Derived1,Derived2>::SrcAlignment>(index, src); - } - - asm("#unaligned end"); - - for(int index = alignedEnd; index < size; index++) - dst.copyCoeff(index, src); - asm("#end"); - } + static void run(Derived1 &dst, const Derived2 &src) + { + const int size = dst.size(); + const int packetSize = ei_packet_traits<typename Derived1::Scalar>::size; + const int alignedStart = ei_assign_traits<Derived1,Derived2>::DstIsAligned ? 0 + : ei_alignmentOffset(&dst.coeffRef(0), size); + const int alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize; + + for(int index = 0; index < alignedStart; index++) + dst.copyCoeff(index, src); + + for(int index = alignedStart; index < alignedEnd; index += packetSize) + { + dst.template copyPacket<Derived2, Aligned, ei_assign_traits<Derived1,Derived2>::SrcAlignment>(index, src); + } + + for(int index = alignedEnd; index < size; index++) + dst.copyCoeff(index, src); + } }; template<typename Derived1, typename Derived2> diff --git a/Eigen/src/Geometry/AngleAxis.h b/Eigen/src/Geometry/AngleAxis.h index 503a3d160..502cbd0ec 100644 --- a/Eigen/src/Geometry/AngleAxis.h +++ b/Eigen/src/Geometry/AngleAxis.h @@ -25,7 +25,7 @@ #ifndef EIGEN_ANGLEAXIS_H #define EIGEN_ANGLEAXIS_H -/** \geometry_module \ingroup Geometry +/** \geometry_module \ingroup GeometryModule * * \class AngleAxis * @@ -122,10 +122,10 @@ public: Matrix3 toRotationMatrix(void) const; }; -/** \ingroup Geometry +/** \ingroup GeometryModule * single precision angle-axis type */ typedef AngleAxis<float> AngleAxisf; -/** \ingroup Geometry +/** \ingroup GeometryModule * double precision angle-axis type */ typedef AngleAxis<double> AngleAxisd; diff --git a/Eigen/src/Geometry/Quaternion.h b/Eigen/src/Geometry/Quaternion.h index 56cb87493..a0d32bec8 100644 --- a/Eigen/src/Geometry/Quaternion.h +++ b/Eigen/src/Geometry/Quaternion.h @@ -30,7 +30,7 @@ template<typename Other, int OtherCols=Other::ColsAtCompileTime> struct ei_quaternion_assign_impl; -/** \geometry_module \ingroup Geometry +/** \geometry_module \ingroup GeometryModule * * \class Quaternion * @@ -169,10 +169,10 @@ public: }; -/** \ingroup Geometry +/** \ingroup GeometryModule * single precision quaternion type */ typedef Quaternion<float> Quaternionf; -/** \ingroup Geometry +/** \ingroup GeometryModule * double precision quaternion type */ typedef Quaternion<double> Quaterniond; diff --git a/Eigen/src/Geometry/Rotation.h b/Eigen/src/Geometry/Rotation.h index 47a10938e..a0421b211 100644 --- a/Eigen/src/Geometry/Rotation.h +++ b/Eigen/src/Geometry/Rotation.h @@ -103,7 +103,7 @@ struct ToRotationMatrix<Scalar, Dim, MatrixBase<OtherDerived> > } }; -/** \geometry_module \ingroup Geometry +/** \geometry_module \ingroup GeometryModule * * \class Rotation2D * @@ -114,7 +114,7 @@ struct ToRotationMatrix<Scalar, Dim, MatrixBase<OtherDerived> > * This class is equivalent to a single scalar representing a counter clock wise rotation * as a single angle in radian. It provides some additional features such as the automatic * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar - * interface to Quaternion in order to facilitate the writing of generic algorithm + * interface to Quaternion in order to facilitate the writing of generic algorithms * dealing with rotations. * * \sa class Quaternion, class Transform diff --git a/Eigen/src/Geometry/Transform.h b/Eigen/src/Geometry/Transform.h index 4645083b3..9caaa2418 100644 --- a/Eigen/src/Geometry/Transform.h +++ b/Eigen/src/Geometry/Transform.h @@ -35,7 +35,7 @@ template< typename Other, int OtherCols=Other::ColsAtCompileTime> struct ei_transform_product_impl; -/** \geometry_module \ingroup Geometry +/** \geometry_module \ingroup GeometryModule * * \class Transform * @@ -202,13 +202,13 @@ protected: }; -/** \ingroup Geometry */ +/** \ingroup GeometryModule */ typedef Transform<float,2> Transform2f; -/** \ingroup Geometry */ +/** \ingroup GeometryModule */ typedef Transform<float,3> Transform3f; -/** \ingroup Geometry */ +/** \ingroup GeometryModule */ typedef Transform<double,2> Transform2d; -/** \ingroup Geometry */ +/** \ingroup GeometryModule */ typedef Transform<double,3> Transform3d; #ifdef EIGEN_QT_SUPPORT |