mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-04 18:54:00 +08:00
Fix typo in Vectowise::any()
This commit is contained in:
parent
43ba07d4d7
commit
9d993c709b
@ -11,7 +11,7 @@
|
|||||||
#ifndef EIGEN_PARTIAL_REDUX_H
|
#ifndef EIGEN_PARTIAL_REDUX_H
|
||||||
#define EIGEN_PARTIAL_REDUX_H
|
#define EIGEN_PARTIAL_REDUX_H
|
||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
/** \class PartialReduxExpr
|
/** \class PartialReduxExpr
|
||||||
* \ingroup Core_Module
|
* \ingroup Core_Module
|
||||||
@ -230,7 +230,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
isVertical ? 1 : m_matrix.rows(),
|
isVertical ? 1 : m_matrix.rows(),
|
||||||
isHorizontal ? 1 : m_matrix.cols());
|
isHorizontal ? 1 : m_matrix.cols());
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename OtherDerived> struct OppositeExtendedType {
|
template<typename OtherDerived> struct OppositeExtendedType {
|
||||||
typedef Replicate<OtherDerived,
|
typedef Replicate<OtherDerived,
|
||||||
isHorizontal ? 1 : ExpressionType::RowsAtCompileTime,
|
isHorizontal ? 1 : ExpressionType::RowsAtCompileTime,
|
||||||
@ -292,7 +292,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
|
|
||||||
/** \returns a row (or column) vector expression of the smallest coefficient
|
/** \returns a row (or column) vector expression of the smallest coefficient
|
||||||
* of each column (or row) of the referenced expression.
|
* of each column (or row) of the referenced expression.
|
||||||
*
|
*
|
||||||
* \warning the result is undefined if \c *this contains NaN.
|
* \warning the result is undefined if \c *this contains NaN.
|
||||||
*
|
*
|
||||||
* Example: \include PartialRedux_minCoeff.cpp
|
* Example: \include PartialRedux_minCoeff.cpp
|
||||||
@ -305,7 +305,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
|
|
||||||
/** \returns a row (or column) vector expression of the largest coefficient
|
/** \returns a row (or column) vector expression of the largest coefficient
|
||||||
* of each column (or row) of the referenced expression.
|
* of each column (or row) of the referenced expression.
|
||||||
*
|
*
|
||||||
* \warning the result is undefined if \c *this contains NaN.
|
* \warning the result is undefined if \c *this contains NaN.
|
||||||
*
|
*
|
||||||
* Example: \include PartialRedux_maxCoeff.cpp
|
* Example: \include PartialRedux_maxCoeff.cpp
|
||||||
@ -343,7 +343,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
|
|
||||||
/** \returns a row (or column) vector expression of the norm
|
/** \returns a row (or column) vector expression of the norm
|
||||||
* of each column (or row) of the referenced expression, using
|
* of each column (or row) of the referenced expression, using
|
||||||
* Blue's algorithm.
|
* Blue's algorithm.
|
||||||
* This is a vector with real entries, even if the original matrix has complex entries.
|
* This is a vector with real entries, even if the original matrix has complex entries.
|
||||||
*
|
*
|
||||||
* \sa DenseBase::blueNorm() */
|
* \sa DenseBase::blueNorm() */
|
||||||
@ -408,7 +408,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
* \sa DenseBase::any() */
|
* \sa DenseBase::any() */
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
const AnyReturnType any() const
|
const AnyReturnType any() const
|
||||||
{ return Any(_expression()); }
|
{ return AnyReturnType(_expression()); }
|
||||||
|
|
||||||
/** \returns a row (or column) vector expression representing
|
/** \returns a row (or column) vector expression representing
|
||||||
* the number of \c true coefficients of each respective column (or row).
|
* the number of \c true coefficients of each respective column (or row).
|
||||||
@ -579,7 +579,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
|
EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
|
||||||
return m_matrix / extendedTo(other.derived());
|
return m_matrix / extendedTo(other.derived());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \returns an expression where each column of row of the referenced matrix are normalized.
|
/** \returns an expression where each column of row of the referenced matrix are normalized.
|
||||||
* The referenced matrix is \b not modified.
|
* The referenced matrix is \b not modified.
|
||||||
* \sa MatrixBase::normalized(), normalize()
|
* \sa MatrixBase::normalized(), normalize()
|
||||||
@ -589,8 +589,8 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
const ExpressionTypeNestedCleaned,
|
const ExpressionTypeNestedCleaned,
|
||||||
const typename OppositeExtendedType<typename ReturnType<internal::member_norm,RealScalar>::Type>::Type>
|
const typename OppositeExtendedType<typename ReturnType<internal::member_norm,RealScalar>::Type>::Type>
|
||||||
normalized() const { return m_matrix.cwiseQuotient(extendedToOpposite(this->norm())); }
|
normalized() const { return m_matrix.cwiseQuotient(extendedToOpposite(this->norm())); }
|
||||||
|
|
||||||
|
|
||||||
/** Normalize in-place each row or columns of the referenced matrix.
|
/** Normalize in-place each row or columns of the referenced matrix.
|
||||||
* \sa MatrixBase::normalize(), normalized()
|
* \sa MatrixBase::normalize(), normalized()
|
||||||
*/
|
*/
|
||||||
|
@ -101,7 +101,7 @@ template<typename ArrayType> void vectorwiseop_array(const ArrayType& m)
|
|||||||
|
|
||||||
VERIFY_RAISES_ASSERT(m2.rowwise() /= rowvec.transpose());
|
VERIFY_RAISES_ASSERT(m2.rowwise() /= rowvec.transpose());
|
||||||
VERIFY_RAISES_ASSERT(m1.rowwise() / rowvec.transpose());
|
VERIFY_RAISES_ASSERT(m1.rowwise() / rowvec.transpose());
|
||||||
|
|
||||||
m2 = m1;
|
m2 = m1;
|
||||||
// yes, there might be an aliasing issue there but ".rowwise() /="
|
// yes, there might be an aliasing issue there but ".rowwise() /="
|
||||||
// is supposed to evaluate " m2.colwise().sum()" into a temporary to avoid
|
// is supposed to evaluate " m2.colwise().sum()" into a temporary to avoid
|
||||||
@ -111,6 +111,18 @@ template<typename ArrayType> void vectorwiseop_array(const ArrayType& m)
|
|||||||
m2.rowwise() /= m2.colwise().sum();
|
m2.rowwise() /= m2.colwise().sum();
|
||||||
VERIFY_IS_APPROX(m2, m1.rowwise() / m1.colwise().sum());
|
VERIFY_IS_APPROX(m2, m1.rowwise() / m1.colwise().sum());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// all/any
|
||||||
|
Array<bool,Dynamic,Dynamic> mb(rows,cols);
|
||||||
|
mb = (m1.real()<=0.7).colwise().all();
|
||||||
|
VERIFY( (mb.col(c) == (m1.real().col(c)<=0.7).all()).all() );
|
||||||
|
mb = (m1.real()<=0.7).rowwise().all();
|
||||||
|
VERIFY( (mb.row(r) == (m1.real().row(r)<=0.7).all()).all() );
|
||||||
|
|
||||||
|
mb = (m1.real()>=0.7).colwise().any();
|
||||||
|
VERIFY( (mb.col(c) == (m1.real().col(c)>=0.7).any()).all() );
|
||||||
|
mb = (m1.real()>=0.7).rowwise().any();
|
||||||
|
VERIFY( (mb.row(r) == (m1.real().row(r)>=0.7).any()).all() );
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename MatrixType> void vectorwiseop_matrix(const MatrixType& m)
|
template<typename MatrixType> void vectorwiseop_matrix(const MatrixType& m)
|
||||||
@ -172,19 +184,19 @@ template<typename MatrixType> void vectorwiseop_matrix(const MatrixType& m)
|
|||||||
|
|
||||||
VERIFY_RAISES_ASSERT(m2.rowwise() -= rowvec.transpose());
|
VERIFY_RAISES_ASSERT(m2.rowwise() -= rowvec.transpose());
|
||||||
VERIFY_RAISES_ASSERT(m1.rowwise() - rowvec.transpose());
|
VERIFY_RAISES_ASSERT(m1.rowwise() - rowvec.transpose());
|
||||||
|
|
||||||
// test norm
|
// test norm
|
||||||
rrres = m1.colwise().norm();
|
rrres = m1.colwise().norm();
|
||||||
VERIFY_IS_APPROX(rrres(c), m1.col(c).norm());
|
VERIFY_IS_APPROX(rrres(c), m1.col(c).norm());
|
||||||
rcres = m1.rowwise().norm();
|
rcres = m1.rowwise().norm();
|
||||||
VERIFY_IS_APPROX(rcres(r), m1.row(r).norm());
|
VERIFY_IS_APPROX(rcres(r), m1.row(r).norm());
|
||||||
|
|
||||||
// test normalized
|
// test normalized
|
||||||
m2 = m1.colwise().normalized();
|
m2 = m1.colwise().normalized();
|
||||||
VERIFY_IS_APPROX(m2.col(c), m1.col(c).normalized());
|
VERIFY_IS_APPROX(m2.col(c), m1.col(c).normalized());
|
||||||
m2 = m1.rowwise().normalized();
|
m2 = m1.rowwise().normalized();
|
||||||
VERIFY_IS_APPROX(m2.row(r), m1.row(r).normalized());
|
VERIFY_IS_APPROX(m2.row(r), m1.row(r).normalized());
|
||||||
|
|
||||||
// test normalize
|
// test normalize
|
||||||
m2 = m1;
|
m2 = m1;
|
||||||
m2.colwise().normalize();
|
m2.colwise().normalize();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user