mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-03 10:14:04 +08:00
Cleanup useless const_cast and add missing broadcast assignment tests
This commit is contained in:
parent
be05d0030d
commit
b57c9787b1
@ -557,7 +557,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
|
||||
EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
|
||||
//eigen_assert((m_matrix.isNull()) == (other.isNull())); FIXME
|
||||
return const_cast<ExpressionType&>(m_matrix = extendedTo(other.derived()));
|
||||
return m_matrix = extendedTo(other.derived());
|
||||
}
|
||||
|
||||
/** Adds the vector \a other to each subvector of \c *this */
|
||||
@ -567,7 +567,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
||||
{
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
|
||||
EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
|
||||
return const_cast<ExpressionType&>(m_matrix += extendedTo(other.derived()));
|
||||
return m_matrix += extendedTo(other.derived());
|
||||
}
|
||||
|
||||
/** Substracts the vector \a other to each subvector of \c *this */
|
||||
@ -577,7 +577,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
||||
{
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
|
||||
EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
|
||||
return const_cast<ExpressionType&>(m_matrix -= extendedTo(other.derived()));
|
||||
return m_matrix -= extendedTo(other.derived());
|
||||
}
|
||||
|
||||
/** Multiples each subvector of \c *this by the vector \a other */
|
||||
@ -589,7 +589,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
||||
EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
|
||||
EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
|
||||
m_matrix *= extendedTo(other.derived());
|
||||
return const_cast<ExpressionType&>(m_matrix);
|
||||
return m_matrix;
|
||||
}
|
||||
|
||||
/** Divides each subvector of \c *this by the vector \a other */
|
||||
@ -601,7 +601,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
||||
EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
|
||||
EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
|
||||
m_matrix /= extendedTo(other.derived());
|
||||
return const_cast<ExpressionType&>(m_matrix);
|
||||
return m_matrix;
|
||||
}
|
||||
|
||||
/** Returns the expression of the sum of the vector \a other to each subvector of \c *this */
|
||||
|
@ -150,6 +150,19 @@ template<typename MatrixType> void vectorwiseop_matrix(const MatrixType& m)
|
||||
RealColVectorType rcres;
|
||||
RealRowVectorType rrres;
|
||||
|
||||
// test broadcast assignment
|
||||
m2 = m1;
|
||||
m2.colwise() = colvec;
|
||||
for(Index j=0; j<cols; ++j)
|
||||
VERIFY_IS_APPROX(m2.col(j), colvec);
|
||||
m2.rowwise() = rowvec;
|
||||
for(Index i=0; i<rows; ++i)
|
||||
VERIFY_IS_APPROX(m2.row(i), rowvec);
|
||||
if(rows>1)
|
||||
VERIFY_RAISES_ASSERT(m2.colwise() = colvec.transpose());
|
||||
if(cols>1)
|
||||
VERIFY_RAISES_ASSERT(m2.rowwise() = rowvec.transpose());
|
||||
|
||||
// test addition
|
||||
|
||||
m2 = m1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user