aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/BooleanRedux.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2013-04-16 15:10:40 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2013-04-16 15:10:40 +0200
commit94e20f485c44731230095dbf8a7344fc6ea4b431 (patch)
treef8b97bbe8f36cfcce76108ca5d9648844fb1bec1 /Eigen/src/Core/BooleanRedux.h
parentd4b0c19a463692e3ef4fb9c70ad1419d097a1dcf (diff)
Big 564: add hasNaN and isFinite members
Diffstat (limited to 'Eigen/src/Core/BooleanRedux.h')
-rw-r--r--Eigen/src/Core/BooleanRedux.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/Eigen/src/Core/BooleanRedux.h b/Eigen/src/Core/BooleanRedux.h
index a235a14e6..f6afeb034 100644
--- a/Eigen/src/Core/BooleanRedux.h
+++ b/Eigen/src/Core/BooleanRedux.h
@@ -129,6 +129,26 @@ inline typename DenseBase<Derived>::Index DenseBase<Derived>::count() const
return derived().template cast<bool>().template cast<Index>().sum();
}
+/** \returns true is \c *this contains at least one Not A Number (NaN).
+ *
+ * \sa isFinite()
+ */
+template<typename Derived>
+inline bool DenseBase<Derived>::hasNaN() const
+{
+ return !((derived().array()==derived().array()).all());
+}
+
+/** \returns true if \c *this contains only finite numbers, i.e., no NaN and no +/-INF values.
+ *
+ * \sa hasNaN()
+ */
+template<typename Derived>
+inline bool DenseBase<Derived>::isFinite() const
+{
+ return !((derived()-derived()).hasNaN());
+}
+
} // end namespace Eigen
#endif // EIGEN_ALLANDANY_H