diff options
author | Gael Guennebaud <g.gael@free.fr> | 2015-10-22 16:10:28 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2015-10-22 16:10:28 +0200 |
commit | 6df8e99470d1ecdd89f451c1bd366672d5a27b6b (patch) | |
tree | af2a2028e610bb6017ee9583412fd88a8aab7bf5 /Eigen/src/Core/MatrixBase.h | |
parent | e78bc111f1dc0a7af2360b836c94c33d67e55fc5 (diff) |
bug #1089: add a warning when using a MatrixBase method which is implemented within another module by declaring them inline.
Diffstat (limited to 'Eigen/src/Core/MatrixBase.h')
-rw-r--r-- | Eigen/src/Core/MatrixBase.h | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/Eigen/src/Core/MatrixBase.h b/Eigen/src/Core/MatrixBase.h index 7c66572d1..b5afff005 100644 --- a/Eigen/src/Core/MatrixBase.h +++ b/Eigen/src/Core/MatrixBase.h @@ -328,23 +328,26 @@ template<typename Derived> class MatrixBase /////////// LU module /////////// - EIGEN_DEVICE_FUNC const FullPivLU<PlainObject> fullPivLu() const; - EIGEN_DEVICE_FUNC const PartialPivLU<PlainObject> partialPivLu() const; + EIGEN_DEVICE_FUNC + inline const FullPivLU<PlainObject> fullPivLu() const; + EIGEN_DEVICE_FUNC + inline const PartialPivLU<PlainObject> partialPivLu() const; - const PartialPivLU<PlainObject> lu() const; + EIGEN_DEVICE_FUNC + inline const PartialPivLU<PlainObject> lu() const; EIGEN_DEVICE_FUNC - const Inverse<Derived> inverse() const; + inline const Inverse<Derived> inverse() const; template<typename ResultType> - void computeInverseAndDetWithCheck( + inline void computeInverseAndDetWithCheck( ResultType& inverse, typename ResultType::Scalar& determinant, bool& invertible, const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision() ) const; template<typename ResultType> - void computeInverseWithCheck( + inline void computeInverseWithCheck( ResultType& inverse, bool& invertible, const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision() @@ -353,22 +356,24 @@ template<typename Derived> class MatrixBase /////////// Cholesky module /////////// - const LLT<PlainObject> llt() const; - const LDLT<PlainObject> ldlt() const; + inline const LLT<PlainObject> llt() const; + inline const LDLT<PlainObject> ldlt() const; /////////// QR module /////////// - const HouseholderQR<PlainObject> householderQr() const; - const ColPivHouseholderQR<PlainObject> colPivHouseholderQr() const; - const FullPivHouseholderQR<PlainObject> fullPivHouseholderQr() const; + inline const HouseholderQR<PlainObject> householderQr() const; + inline const ColPivHouseholderQR<PlainObject> colPivHouseholderQr() const; + inline const FullPivHouseholderQR<PlainObject> fullPivHouseholderQr() const; + +/////////// Eigenvalues module /////////// - EigenvaluesReturnType eigenvalues() const; - RealScalar operatorNorm() const; + inline EigenvaluesReturnType eigenvalues() const; + inline RealScalar operatorNorm() const; /////////// SVD module /////////// - JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const; - BDCSVD<PlainObject> bdcSvd(unsigned int computationOptions = 0) const; + inline JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const; + inline BDCSVD<PlainObject> bdcSvd(unsigned int computationOptions = 0) const; /////////// Geometry module /////////// @@ -381,24 +386,24 @@ template<typename Derived> class MatrixBase #endif // EIGEN_PARSED_BY_DOXYGEN template<typename OtherDerived> EIGEN_DEVICE_FUNC - typename cross_product_return_type<OtherDerived>::type + inline typename cross_product_return_type<OtherDerived>::type cross(const MatrixBase<OtherDerived>& other) const; template<typename OtherDerived> EIGEN_DEVICE_FUNC - PlainObject cross3(const MatrixBase<OtherDerived>& other) const; + inline PlainObject cross3(const MatrixBase<OtherDerived>& other) const; EIGEN_DEVICE_FUNC - PlainObject unitOrthogonal(void) const; + inline PlainObject unitOrthogonal(void) const; - Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const; + inline Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const; - ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const; + inline ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const; // put this as separate enum value to work around possible GCC 4.3 bug (?) enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1&&RowsAtCompileTime==1 ? ((internal::traits<Derived>::Flags&RowMajorBit)==RowMajorBit ? Horizontal : Vertical) : ColsAtCompileTime==1 ? Vertical : Horizontal }; typedef Homogeneous<Derived, HomogeneousReturnTypeDirection> HomogeneousReturnType; - HomogeneousReturnType homogeneous() const; + inline HomogeneousReturnType homogeneous() const; enum { SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1 @@ -409,7 +414,7 @@ template<typename Derived> class MatrixBase typedef CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>, const ConstStartMinusOne > HNormalizedReturnType; - const HNormalizedReturnType hnormalized() const; + inline const HNormalizedReturnType hnormalized() const; ////////// Householder module /////////// |