diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2008-06-26 20:08:16 +0000 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2008-06-26 20:08:16 +0000 |
commit | c5bd1703cb05f60a00f948a222e3d61eaf7ab5ad (patch) | |
tree | b52758c0b2b6b7f609777e40152c8ae48d37d6a5 /Eigen/src/Core/Matrix.h | |
parent | 25ba9f377c97968923cd654d419fa8ce260f114d (diff) |
change derived classes methods from "private:_method()"
to "public:method()" i.e. reimplementing the generic method()
from MatrixBase.
improves compilation speed by 7%, reduces almost by half the call depth
of trivial functions, making gcc errors and application backtraces
nicer...
Diffstat (limited to 'Eigen/src/Core/Matrix.h')
-rw-r--r-- | Eigen/src/Core/Matrix.h | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h index 3d037cbee..40947e997 100644 --- a/Eigen/src/Core/Matrix.h +++ b/Eigen/src/Core/Matrix.h @@ -100,19 +100,18 @@ template<typename _Scalar, int _Rows, int _Cols, int _MaxRows, int _MaxCols, uns class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _MaxRows, _MaxCols, _Flags> > { public: - EIGEN_GENERIC_PUBLIC_INTERFACE(Matrix) - friend class Map<Matrix>; - - private: - + protected: ei_matrix_storage<Scalar, MaxSizeAtCompileTime, RowsAtCompileTime, ColsAtCompileTime> m_storage; - inline int _rows() const { return m_storage.rows(); } - inline int _cols() const { return m_storage.cols(); } + public: + friend class Map<Matrix>; + + inline int rows() const { return m_storage.rows(); } + inline int cols() const { return m_storage.cols(); } - inline int _stride(void) const + inline int stride(void) const { if(Flags & RowMajorBit) return m_storage.cols(); @@ -120,7 +119,7 @@ class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _MaxRows, _MaxCol return m_storage.rows(); } - inline const Scalar& _coeff(int row, int col) const + inline const Scalar& coeff(int row, int col) const { if(Flags & RowMajorBit) return m_storage.data()[col + row * m_storage.cols()]; @@ -128,12 +127,12 @@ class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _MaxRows, _MaxCol return m_storage.data()[row + col * m_storage.rows()]; } - inline const Scalar& _coeff(int index) const + inline const Scalar& coeff(int index) const { return m_storage.data()[index]; } - inline Scalar& _coeffRef(int row, int col) + inline Scalar& coeffRef(int row, int col) { if(Flags & RowMajorBit) return m_storage.data()[col + row * m_storage.cols()]; @@ -141,13 +140,13 @@ class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _MaxRows, _MaxCol return m_storage.data()[row + col * m_storage.rows()]; } - inline Scalar& _coeffRef(int index) + inline Scalar& coeffRef(int index) { return m_storage.data()[index]; } template<int LoadMode> - inline PacketScalar _packet(int row, int col) const + inline PacketScalar packet(int row, int col) const { if(Flags & RowMajorBit) if (LoadMode==Aligned) @@ -162,7 +161,7 @@ class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _MaxRows, _MaxCol } template<int LoadMode> - inline PacketScalar _packet(int index) const + inline PacketScalar packet(int index) const { if (LoadMode==Aligned) return ei_pload(m_storage.data() + index); @@ -171,7 +170,7 @@ class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _MaxRows, _MaxCol } template<int StoreMode> - inline void _writePacket(int row, int col, const PacketScalar& x) + inline void writePacket(int row, int col, const PacketScalar& x) { ei_internal_assert(Flags & PacketAccessBit); if(Flags & RowMajorBit) @@ -187,7 +186,7 @@ class Matrix : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _MaxRows, _MaxCol } template<int StoreMode> - inline void _writePacket(int index, const PacketScalar& x) + inline void writePacket(int index, const PacketScalar& x) { if (StoreMode==Aligned) ei_pstore(m_storage.data() + index, x); |