the Index types change.

As discussed on the list (too long to explain here).
This commit is contained in:
Benoit Jacob
2010-05-30 16:00:58 -04:00
parent faa3ff3be6
commit aaaade4b3d
158 changed files with 3137 additions and 2878 deletions

View File

@@ -48,6 +48,8 @@ template<typename _DecompositionType> struct ei_image_retval_base
{
typedef _DecompositionType DecompositionType;
typedef typename DecompositionType::MatrixType MatrixType;
typedef ReturnByValue<ei_image_retval_base> Base;
typedef typename Base::Index Index;
ei_image_retval_base(const DecompositionType& dec, const MatrixType& originalMatrix)
: m_dec(dec), m_rank(dec.rank()),
@@ -55,9 +57,9 @@ template<typename _DecompositionType> struct ei_image_retval_base
m_originalMatrix(originalMatrix)
{}
inline int rows() const { return m_dec.rows(); }
inline int cols() const { return m_cols; }
inline int rank() const { return m_rank; }
inline Index rows() const { return m_dec.rows(); }
inline Index cols() const { return m_cols; }
inline Index rank() const { return m_rank; }
inline const DecompositionType& dec() const { return m_dec; }
inline const MatrixType& originalMatrix() const { return m_originalMatrix; }
@@ -68,7 +70,7 @@ template<typename _DecompositionType> struct ei_image_retval_base
protected:
const DecompositionType& m_dec;
int m_rank, m_cols;
Index m_rank, m_cols;
const MatrixType& m_originalMatrix;
};
@@ -76,6 +78,7 @@ template<typename _DecompositionType> struct ei_image_retval_base
typedef typename DecompositionType::MatrixType MatrixType; \
typedef typename MatrixType::Scalar Scalar; \
typedef typename MatrixType::RealScalar RealScalar; \
typedef typename MatrixType::Index Index; \
typedef ei_image_retval_base<DecompositionType> Base; \
using Base::dec; \
using Base::originalMatrix; \

View File

@@ -49,6 +49,8 @@ template<typename _DecompositionType> struct ei_kernel_retval_base
: public ReturnByValue<ei_kernel_retval_base<_DecompositionType> >
{
typedef _DecompositionType DecompositionType;
typedef ReturnByValue<ei_kernel_retval_base> Base;
typedef typename Base::Index Index;
ei_kernel_retval_base(const DecompositionType& dec)
: m_dec(dec),
@@ -56,9 +58,9 @@ template<typename _DecompositionType> struct ei_kernel_retval_base
m_cols(m_rank==dec.cols() ? 1 : dec.cols() - m_rank)
{}
inline int rows() const { return m_dec.cols(); }
inline int cols() const { return m_cols; }
inline int rank() const { return m_rank; }
inline Index rows() const { return m_dec.cols(); }
inline Index cols() const { return m_cols; }
inline Index rank() const { return m_rank; }
inline const DecompositionType& dec() const { return m_dec; }
template<typename Dest> inline void evalTo(Dest& dst) const
@@ -68,13 +70,14 @@ template<typename _DecompositionType> struct ei_kernel_retval_base
protected:
const DecompositionType& m_dec;
int m_rank, m_cols;
Index m_rank, m_cols;
};
#define EIGEN_MAKE_KERNEL_HELPERS(DecompositionType) \
typedef typename DecompositionType::MatrixType MatrixType; \
typedef typename MatrixType::Scalar Scalar; \
typedef typename MatrixType::RealScalar RealScalar; \
typedef typename MatrixType::Index Index; \
typedef ei_kernel_retval_base<DecompositionType> Base; \
using Base::dec; \
using Base::rank; \

View File

@@ -45,13 +45,15 @@ template<typename _DecompositionType, typename Rhs> struct ei_solve_retval_base
{
typedef typename ei_cleantype<typename Rhs::Nested>::type RhsNestedCleaned;
typedef _DecompositionType DecompositionType;
typedef ReturnByValue<ei_solve_retval_base> Base;
typedef typename Base::Index Index;
ei_solve_retval_base(const DecompositionType& dec, const Rhs& rhs)
: m_dec(dec), m_rhs(rhs)
{}
inline int rows() const { return m_dec.cols(); }
inline int cols() const { return m_rhs.cols(); }
inline Index rows() const { return m_dec.cols(); }
inline Index cols() const { return m_rhs.cols(); }
inline const DecompositionType& dec() const { return m_dec; }
inline const RhsNestedCleaned& rhs() const { return m_rhs; }
@@ -69,6 +71,7 @@ template<typename _DecompositionType, typename Rhs> struct ei_solve_retval_base
typedef typename DecompositionType::MatrixType MatrixType; \
typedef typename MatrixType::Scalar Scalar; \
typedef typename MatrixType::RealScalar RealScalar; \
typedef typename MatrixType::Index Index; \
typedef ei_solve_retval_base<DecompositionType,Rhs> Base; \
using Base::dec; \
using Base::rhs; \