* fix bug in SwapWrapper : store the wrapped expression by reference

* optimize setIdentity: when the matrix is large enough it is better to
  setZero() and overwrite the diagonal
* start of LU solver, disabled for now
This commit is contained in:
Benoit Jacob
2008-08-09 04:37:09 +00:00
parent 9bbe396939
commit a41f2b4216
4 changed files with 145 additions and 31 deletions

View File

@@ -53,7 +53,7 @@ template<typename ExpressionType> class SwapWrapper
EIGEN_GENERIC_PUBLIC_INTERFACE(SwapWrapper)
typedef typename ei_packet_traits<Scalar>::type Packet;
inline SwapWrapper(ExpressionType& matrix) : m_expression(matrix) {}
inline SwapWrapper(ExpressionType& xpr) : m_expression(xpr) {}
inline int rows() const { return m_expression.rows(); }
inline int cols() const { return m_expression.cols(); }
@@ -106,7 +106,7 @@ template<typename ExpressionType> class SwapWrapper
}
protected:
ExpressionType m_expression;
ExpressionType& m_expression;
};
/** swaps *this with the expression \a other.