diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2008-12-18 20:36:25 +0000 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2008-12-18 20:36:25 +0000 |
commit | fabaa6915be063a5390ad78c4ddd86b335691418 (patch) | |
tree | 9dbd25fadf56402587629e76ec9a1dd0a0727739 /Eigen/src/Cholesky | |
parent | b27a3644a24248606092357a0b11aae56e6dbb91 (diff) |
* fix in IO.h, a useless copy was made because of assignment from
Derived to MatrixBase.
* the optimization of eval() for Matrix now consists in a partial
specialization of ei_eval, which returns a reference type for Matrix.
No overriding of eval() in Matrix anymore. Consequence: careful,
ei_eval is no longer guaranteed to give a plain matrix type!
For that, use ei_plain_matrix_type, or the PlainMatrixType typedef.
* so lots of changes to adapt to that everywhere. Hope this doesn't
break (too much) MSVC compilation.
* add code examples for the new image() stuff.
* lower a bit the precision for floats in the unit tests as
we were already doing some workarounds in inverse.cpp and we got some
failed tests.
Diffstat (limited to 'Eigen/src/Cholesky')
-rw-r--r-- | Eigen/src/Cholesky/Cholesky.h | 10 | ||||
-rw-r--r-- | Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h | 2 | ||||
-rw-r--r-- | Eigen/src/Cholesky/LDLT.h | 2 | ||||
-rw-r--r-- | Eigen/src/Cholesky/LLT.h | 4 |
4 files changed, 9 insertions, 9 deletions
diff --git a/Eigen/src/Cholesky/Cholesky.h b/Eigen/src/Cholesky/Cholesky.h index 71549c43e..69e906ee7 100644 --- a/Eigen/src/Cholesky/Cholesky.h +++ b/Eigen/src/Cholesky/Cholesky.h @@ -58,7 +58,7 @@ template<typename MatrixType> class Cholesky inline bool isPositiveDefinite(void) const { return m_isPositiveDefinite; } template<typename Derived> - typename Derived::Eval solve(const MatrixBase<Derived> &b) const EIGEN_DEPRECATED; + typename MatrixBase<Derived>::PlainMatrixType_ColMajor solve(const MatrixBase<Derived> &b) const EIGEN_DEPRECATED; template<typename RhsDerived, typename ResDerived> bool solve(const MatrixBase<RhsDerived> &b, MatrixBase<ResDerived> *result) const; @@ -119,11 +119,11 @@ void Cholesky<MatrixType>::compute(const MatrixType& a) /** \deprecated */ template<typename MatrixType> template<typename Derived> -typename Derived::Eval Cholesky<MatrixType>::solve(const MatrixBase<Derived> &b) const +typename MatrixBase<Derived>::PlainMatrixType_ColMajor Cholesky<MatrixType>::solve(const MatrixBase<Derived> &b) const { const int size = m_matrix.rows(); ei_assert(size==b.rows()); - typename ei_eval_to_column_major<Derived>::type x(b); + typename MatrixBase<Derived>::PlainMatrixType_ColMajor x(b); solveInPlace(x); return x; } @@ -156,10 +156,10 @@ bool Cholesky<MatrixType>::solveInPlace(MatrixBase<Derived> &bAndX) const * \deprecated has been renamed llt() */ template<typename Derived> -inline const Cholesky<typename MatrixBase<Derived>::EvalType> +inline const Cholesky<typename MatrixBase<Derived>::PlainMatrixType> MatrixBase<Derived>::cholesky() const { - return Cholesky<typename ei_eval<Derived>::type>(derived()); + return Cholesky<PlainMatrixType>(derived()); } #endif // EIGEN_CHOLESKY_H diff --git a/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h b/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h index bf9951709..b40ba18c0 100644 --- a/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h +++ b/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h @@ -175,7 +175,7 @@ bool CholeskyWithoutSquareRoot<MatrixType>::solveInPlace(MatrixBase<Derived> &bA * \deprecated has been renamed ldlt() */ template<typename Derived> -inline const CholeskyWithoutSquareRoot<typename MatrixBase<Derived>::EvalType> +inline const CholeskyWithoutSquareRoot<typename MatrixBase<Derived>::PlainMatrixType> MatrixBase<Derived>::choleskyNoSqrt() const { return derived(); diff --git a/Eigen/src/Cholesky/LDLT.h b/Eigen/src/Cholesky/LDLT.h index aa967f6b9..a275e093f 100644 --- a/Eigen/src/Cholesky/LDLT.h +++ b/Eigen/src/Cholesky/LDLT.h @@ -189,7 +189,7 @@ bool LDLT<MatrixType>::solveInPlace(MatrixBase<Derived> &bAndX) const * \returns the Cholesky decomposition without square root of \c *this */ template<typename Derived> -inline const LDLT<typename MatrixBase<Derived>::EvalType> +inline const LDLT<typename MatrixBase<Derived>::PlainMatrixType> MatrixBase<Derived>::ldlt() const { return derived(); diff --git a/Eigen/src/Cholesky/LLT.h b/Eigen/src/Cholesky/LLT.h index 2fc658bb7..6e412e20c 100644 --- a/Eigen/src/Cholesky/LLT.h +++ b/Eigen/src/Cholesky/LLT.h @@ -177,10 +177,10 @@ bool LLT<MatrixType>::solveInPlace(MatrixBase<Derived> &bAndX) const * \returns the LLT decomposition of \c *this */ template<typename Derived> -inline const LLT<typename MatrixBase<Derived>::EvalType> +inline const LLT<typename MatrixBase<Derived>::PlainMatrixType> MatrixBase<Derived>::llt() const { - return LLT<typename ei_eval<Derived>::type>(derived()); + return LLT<PlainMatrixType>(derived()); } #endif // EIGEN_LLT_H |