diff options
Diffstat (limited to 'Eigen/src/Core/Product.h')
-rw-r--r-- | Eigen/src/Core/Product.h | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index dbd8b6cdd..414843651 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -29,8 +29,8 @@ template<int Index, int Size, typename Lhs, typename Rhs> struct ei_product_unroller { - static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, - typename Lhs::Scalar &res) + inline static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, + typename Lhs::Scalar &res) { ei_product_unroller<Index-1, Size, Lhs, Rhs>::run(row, col, lhs, rhs, res); res += lhs.coeff(row, Index) * rhs.coeff(Index, col); @@ -40,8 +40,8 @@ struct ei_product_unroller template<int Size, typename Lhs, typename Rhs> struct ei_product_unroller<0, Size, Lhs, Rhs> { - static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, - typename Lhs::Scalar &res) + inline static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, + typename Lhs::Scalar &res) { res = lhs.coeff(row, 0) * rhs.coeff(0, col); } @@ -50,14 +50,14 @@ struct ei_product_unroller<0, Size, Lhs, Rhs> template<int Index, typename Lhs, typename Rhs> struct ei_product_unroller<Index, Dynamic, Lhs, Rhs> { - static void run(int, int, const Lhs&, const Rhs&, typename Lhs::Scalar&) {} + inline static void run(int, int, const Lhs&, const Rhs&, typename Lhs::Scalar&) {} }; // prevent buggy user code from causing an infinite recursion template<int Index, typename Lhs, typename Rhs> struct ei_product_unroller<Index, 0, Lhs, Rhs> { - static void run(int, int, const Lhs&, const Rhs&, typename Lhs::Scalar&) {} + inline static void run(int, int, const Lhs&, const Rhs&, typename Lhs::Scalar&) {} }; template<typename Lhs, typename Rhs> @@ -72,7 +72,7 @@ struct ei_packet_product_unroller; template<int Index, int Size, typename Lhs, typename Rhs, typename PacketScalar> struct ei_packet_product_unroller<true, Index, Size, Lhs, Rhs, PacketScalar> { - static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) + inline static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) { ei_packet_product_unroller<true, Index-1, Size, Lhs, Rhs, PacketScalar>::run(row, col, lhs, rhs, res); res = ei_pmadd(ei_pset1(lhs.coeff(row, Index)), rhs.template packetCoeff<Aligned>(Index, col), res); @@ -82,7 +82,7 @@ struct ei_packet_product_unroller<true, Index, Size, Lhs, Rhs, PacketScalar> template<int Index, int Size, typename Lhs, typename Rhs, typename PacketScalar> struct ei_packet_product_unroller<false, Index, Size, Lhs, Rhs, PacketScalar> { - static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) + inline static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) { ei_packet_product_unroller<false, Index-1, Size, Lhs, Rhs, PacketScalar>::run(row, col, lhs, rhs, res); res = ei_pmadd(lhs.template packetCoeff<Aligned>(row, Index), ei_pset1(rhs.coeff(Index, col)), res); @@ -92,7 +92,7 @@ struct ei_packet_product_unroller<false, Index, Size, Lhs, Rhs, PacketScalar> template<int Size, typename Lhs, typename Rhs, typename PacketScalar> struct ei_packet_product_unroller<true, 0, Size, Lhs, Rhs, PacketScalar> { - static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) + inline static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) { res = ei_pmul(ei_pset1(lhs.coeff(row, 0)),rhs.template packetCoeff<Aligned>(0, col)); } @@ -101,7 +101,7 @@ struct ei_packet_product_unroller<true, 0, Size, Lhs, Rhs, PacketScalar> template<int Size, typename Lhs, typename Rhs, typename PacketScalar> struct ei_packet_product_unroller<false, 0, Size, Lhs, Rhs, PacketScalar> { - static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) + inline static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, PacketScalar &res) { res = ei_pmul(lhs.template packetCoeff<Aligned>(row, 0), ei_pset1(rhs.coeff(0, col))); } @@ -110,13 +110,13 @@ struct ei_packet_product_unroller<false, 0, Size, Lhs, Rhs, PacketScalar> template<bool RowMajor, int Index, typename Lhs, typename Rhs, typename PacketScalar> struct ei_packet_product_unroller<RowMajor, Index, Dynamic, Lhs, Rhs, PacketScalar> { - static void run(int, int, const Lhs&, const Rhs&, PacketScalar&) {} + inline static void run(int, int, const Lhs&, const Rhs&, PacketScalar&) {} }; template<int Index, typename Lhs, typename Rhs, typename PacketScalar> struct ei_packet_product_unroller<false, Index, Dynamic, Lhs, Rhs, PacketScalar> { - static void run(int, int, const Lhs&, const Rhs&, PacketScalar&) {} + inline static void run(int, int, const Lhs&, const Rhs&, PacketScalar&) {} }; template<typename Lhs, typename Rhs, typename PacketScalar> @@ -207,7 +207,7 @@ template<typename Lhs, typename Rhs, int EvalMode> class Product : ei_no_assignm typedef typename ei_traits<Product>::_LhsNested _LhsNested; typedef typename ei_traits<Product>::_RhsNested _RhsNested; - Product(const Lhs& lhs, const Rhs& rhs) + inline Product(const Lhs& lhs, const Rhs& rhs) : m_lhs(lhs), m_rhs(rhs) { ei_assert(lhs.cols() == rhs.rows()); @@ -223,8 +223,8 @@ template<typename Lhs, typename Rhs, int EvalMode> class Product : ei_no_assignm private: - int _rows() const { return m_lhs.rows(); } - int _cols() const { return m_rhs.cols(); } + inline int _rows() const { return m_lhs.rows(); } + inline int _cols() const { return m_rhs.cols(); } const Scalar _coeff(int row, int col) const { @@ -247,7 +247,7 @@ template<typename Lhs, typename Rhs, int EvalMode> class Product : ei_no_assignm } template<int LoadMode> - PacketScalar _packetCoeff(int row, int col) const + const PacketScalar _packetCoeff(int row, int col) const { if(Lhs::ColsAtCompileTime <= EIGEN_UNROLLING_LIMIT) { @@ -263,7 +263,7 @@ template<typename Lhs, typename Rhs, int EvalMode> class Product : ei_no_assignm return ProductPacketCoeffImpl<Product,Flags&RowMajorBit>::execute(*this, row, col); } - PacketScalar _packetCoeffRowMajor(int row, int col) const + const PacketScalar _packetCoeffRowMajor(int row, int col) const { PacketScalar res; res = ei_pmul(ei_pset1(m_lhs.coeff(row, 0)),m_rhs.template packetCoeff<Aligned>(0, col)); @@ -272,7 +272,7 @@ template<typename Lhs, typename Rhs, int EvalMode> class Product : ei_no_assignm return res; } - PacketScalar _packetCoeffColumnMajor(int row, int col) const + const PacketScalar _packetCoeffColumnMajor(int row, int col) const { PacketScalar res; res = ei_pmul(m_lhs.template packetCoeff<Aligned>(row, 0), ei_pset1(m_rhs.coeff(0, col))); @@ -304,7 +304,7 @@ template<typename Lhs, typename Rhs, int EvalMode> class Product : ei_no_assignm */ template<typename Derived> template<typename OtherDerived> -const Product<Derived,OtherDerived> +inline const Product<Derived,OtherDerived> MatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const { return Product<Derived,OtherDerived>(derived(), other.derived()); @@ -316,7 +316,7 @@ MatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const */ template<typename Derived> template<typename OtherDerived> -Derived & +inline Derived & MatrixBase<Derived>::operator*=(const MatrixBase<OtherDerived> &other) { return *this = *this * other; @@ -324,7 +324,7 @@ MatrixBase<Derived>::operator*=(const MatrixBase<OtherDerived> &other) template<typename Derived> template<typename Lhs, typename Rhs> -Derived& MatrixBase<Derived>::lazyAssign(const Product<Lhs,Rhs,CacheFriendlyProduct>& product) +inline Derived& MatrixBase<Derived>::lazyAssign(const Product<Lhs,Rhs,CacheFriendlyProduct>& product) { product.template _cacheOptimalEval<Derived, Aligned>(derived(), #ifdef EIGEN_VECTORIZE |