aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/MatrixBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/MatrixBase.h')
-rw-r--r--Eigen/src/Core/MatrixBase.h23
1 files changed, 11 insertions, 12 deletions
diff --git a/Eigen/src/Core/MatrixBase.h b/Eigen/src/Core/MatrixBase.h
index f97f72419..e1caa4c48 100644
--- a/Eigen/src/Core/MatrixBase.h
+++ b/Eigen/src/Core/MatrixBase.h
@@ -129,11 +129,11 @@ template<typename Derived> class MatrixBase
Flags = ei_traits<Derived>::Flags
/**< This stores expression metadata which typically is inherited by new expressions
* constructed from this one. The available flags are:
- * \li \c RowMajor: if this bit is set, the preferred storage order for an evaluation
+ * \li \c RowMajorBit: if this bit is set, the preferred storage order for an evaluation
* of this expression is row-major. Otherwise, it is column-major.
- * \li \c Lazy: if this bit is set, the next evaluation of this expression will be canceled.
+ * \li \c LazyBit: if this bit is set, the next evaluation of this expression will be canceled.
* This can be used, with care, to achieve lazy evaluation.
- * \li \c Large: if this bit is set, optimization will be tuned for large matrices (typically,
+ * \li \c LargeBit: if this bit is set, optimization will be tuned for large matrices (typically,
* at least 32x32).
*/
};
@@ -246,14 +246,11 @@ template<typename Derived> class MatrixBase
//@}
/** \name Matrix product
+ * and, as a special case, matrix-vector product
*/
//@{
template<typename OtherDerived>
- const Product<Derived, OtherDerived>
- lazyProduct(const MatrixBase<OtherDerived>& other) const;
-
- template<typename OtherDerived>
- const Eval<Product<Derived, OtherDerived> >
+ const typename ei_eval_unless_lazy<Product<Derived, OtherDerived> >::Type
operator*(const MatrixBase<OtherDerived> &other) const;
template<typename OtherDerived>
@@ -313,9 +310,9 @@ template<typename Derived> class MatrixBase
/// \name Generating special matrices
//@{
- static const Eval<Random<Derived> > random(int rows, int cols);
- static const Eval<Random<Derived> > random(int size);
- static const Eval<Random<Derived> > random();
+ static const typename ei_eval_unless_lazy<Random<Derived> >::Type random(int rows, int cols);
+ static const typename ei_eval_unless_lazy<Random<Derived> >::Type random(int size);
+ static const typename ei_eval_unless_lazy<Random<Derived> >::Type random();
static const Zero<Derived> zero(int rows, int cols);
static const Zero<Derived> zero(int size);
static const Zero<Derived> zero();
@@ -359,11 +356,13 @@ template<typename Derived> class MatrixBase
template<typename NewType>
const CwiseUnaryOp<ei_scalar_cast_op<NewType>, Derived> cast() const;
- const Eval<Derived> eval() const EIGEN_ALWAYS_INLINE;
+ const typename ei_eval_unless_lazy<Derived>::Type eval() const EIGEN_ALWAYS_INLINE;
const EvalOMP<Derived> evalOMP() const EIGEN_ALWAYS_INLINE;
template<typename OtherDerived>
void swap(const MatrixBase<OtherDerived>& other);
+
+ const Lazy<Derived> lazy() const;
//@}
/// \name Coefficient-wise operations