diff options
author | Gael Guennebaud <g.gael@free.fr> | 2011-01-26 16:36:07 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2011-01-26 16:36:07 +0100 |
commit | 98285ba81c8e90c95434bfa262484f2aa5d2664b (patch) | |
tree | 27348c602174eea9b650df8e9d0abca3881ed974 /Eigen/src/Core/MatrixBase.h | |
parent | 7ef9d82b39b338c814f4c120ef3dea58a244a391 (diff) | |
parent | 76c630d185b4a9eda5261a6f4651cafdebb91508 (diff) |
merge
Diffstat (limited to 'Eigen/src/Core/MatrixBase.h')
-rw-r--r-- | Eigen/src/Core/MatrixBase.h | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/Eigen/src/Core/MatrixBase.h b/Eigen/src/Core/MatrixBase.h index 40e44c9b3..3b854ca5e 100644 --- a/Eigen/src/Core/MatrixBase.h +++ b/Eigen/src/Core/MatrixBase.h @@ -243,8 +243,8 @@ template<typename Derived> class MatrixBase typename MatrixBase::template ConstDiagonalIndexReturnType<Dynamic>::Type diagonal(Index index) const; #ifdef EIGEN2_SUPPORT - template<unsigned int Mode> TriangularView<Derived, Mode> part(); - template<unsigned int Mode> const TriangularView<Derived, Mode> part() const; + template<unsigned int Mode> typename internal::eigen2_part_return_type<Derived, Mode>::type part(); + template<unsigned int Mode> const typename internal::eigen2_part_return_type<Derived, Mode>::type part() const; // huuuge hack. make Eigen2's matrix.part<Diagonal>() work in eigen3. Problem: Diagonal is now a class template instead // of an integer constant. Solution: overload the part() method template wrt template parameters list. @@ -334,7 +334,26 @@ template<typename Derived> class MatrixBase const FullPivLU<PlainObject> fullPivLu() const; const PartialPivLU<PlainObject> partialPivLu() const; + + #if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS + const LU<PlainObject> lu() const; + #endif + + #ifdef EIGEN2_SUPPORT + const LU<PlainObject> eigen2_lu() const; + #endif + + #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS const PartialPivLU<PlainObject> lu() const; + #endif + + #ifdef EIGEN2_SUPPORT + template<typename ResultType> + void computeInverse(MatrixBase<ResultType> *result) const { + *result = this->inverse(); + } + #endif + const internal::inverse_impl<Derived> inverse() const; template<typename ResultType> void computeInverseAndDetWithCheck( @@ -361,6 +380,10 @@ template<typename Derived> class MatrixBase const HouseholderQR<PlainObject> householderQr() const; const ColPivHouseholderQR<PlainObject> colPivHouseholderQr() const; const FullPivHouseholderQR<PlainObject> fullPivHouseholderQr() const; + + #ifdef EIGEN2_SUPPORT + const QR<PlainObject> qr() const; + #endif EigenvaluesReturnType eigenvalues() const; RealScalar operatorNorm() const; @@ -369,6 +392,10 @@ template<typename Derived> class MatrixBase JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const; + #ifdef EIGEN2_SUPPORT + SVD<PlainObject> svd() const; + #endif + /////////// Geometry module /////////// template<typename OtherDerived> |