mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Add nan-propagation options to matrix and array plugins.
This commit is contained in:
committed by
Antonio Sánchez
parent
b86e013321
commit
2d3fec8ff6
@@ -211,6 +211,31 @@ template<typename MatrixType> void cwise_min_max(const MatrixType& m)
|
||||
VERIFY_IS_APPROX(MatrixType::Constant(rows,cols, maxM1).array(), (m1.array().max)( maxM1));
|
||||
VERIFY_IS_APPROX(m1.array(), (m1.array().max)( minM1));
|
||||
|
||||
// Test NaN propagation for min/max.
|
||||
if (!NumTraits<Scalar>::IsInteger) {
|
||||
m1(0,0) = NumTraits<Scalar>::quiet_NaN();
|
||||
// Elementwise.
|
||||
VERIFY((numext::isnan)(m1.template cwiseMax<PropagateNaN>(MatrixType::Constant(rows,cols, Scalar(1)))(0,0)));
|
||||
VERIFY((numext::isnan)(m1.template cwiseMin<PropagateNaN>(MatrixType::Constant(rows,cols, Scalar(1)))(0,0)));
|
||||
VERIFY(!(numext::isnan)(m1.template cwiseMax<PropagateNumbers>(MatrixType::Constant(rows,cols, Scalar(1)))(0,0)));
|
||||
VERIFY(!(numext::isnan)(m1.template cwiseMin<PropagateNumbers>(MatrixType::Constant(rows,cols, Scalar(1)))(0,0)));
|
||||
|
||||
VERIFY((numext::isnan)(m1.array().template max<PropagateNaN>(MatrixType::Constant(rows,cols, Scalar(1)).array())(0,0)));
|
||||
VERIFY((numext::isnan)(m1.array().template min<PropagateNaN>(MatrixType::Constant(rows,cols, Scalar(1)).array())(0,0)));
|
||||
VERIFY(!(numext::isnan)(m1.array().template max<PropagateNumbers>(MatrixType::Constant(rows,cols, Scalar(1)).array())(0,0)));
|
||||
VERIFY(!(numext::isnan)(m1.array().template min<PropagateNumbers>(MatrixType::Constant(rows,cols, Scalar(1)).array())(0,0)));
|
||||
|
||||
// Reductions.
|
||||
VERIFY((numext::isnan)(m1.template maxCoeff<PropagateNaN>()));
|
||||
VERIFY((numext::isnan)(m1.template minCoeff<PropagateNaN>()));
|
||||
if (m1.size() > 1) {
|
||||
VERIFY(!(numext::isnan)(m1.template maxCoeff<PropagateNumbers>()));
|
||||
VERIFY(!(numext::isnan)(m1.template minCoeff<PropagateNumbers>()));
|
||||
} else {
|
||||
VERIFY((numext::isnan)(m1.template maxCoeff<PropagateNumbers>()));
|
||||
VERIFY((numext::isnan)(m1.template minCoeff<PropagateNumbers>()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template<typename MatrixTraits> void resize(const MatrixTraits& t)
|
||||
|
||||
Reference in New Issue
Block a user