10 #ifndef EIGEN_ALLANDANY_H
11 #define EIGEN_ALLANDANY_H
17 template<
typename Derived,
int UnrollCount>
21 col = (UnrollCount-1) / Derived::RowsAtCompileTime,
22 row = (UnrollCount-1) % Derived::RowsAtCompileTime
25 static inline bool run(
const Derived &mat)
27 return all_unroller<Derived, UnrollCount-1>::run(mat) && mat.coeff(row, col);
31 template<
typename Derived>
32 struct all_unroller<Derived, 0>
34 static inline bool run(
const Derived &) {
return true; }
37 template<
typename Derived>
38 struct all_unroller<Derived,
Dynamic>
40 static inline bool run(
const Derived &) {
return false; }
43 template<
typename Derived,
int UnrollCount>
47 col = (UnrollCount-1) / Derived::RowsAtCompileTime,
48 row = (UnrollCount-1) % Derived::RowsAtCompileTime
51 static inline bool run(
const Derived &mat)
53 return any_unroller<Derived, UnrollCount-1>::run(mat) || mat.coeff(row, col);
57 template<
typename Derived>
58 struct any_unroller<Derived, 0>
60 static inline bool run(
const Derived & ) {
return false; }
63 template<
typename Derived>
64 struct any_unroller<Derived,
Dynamic>
66 static inline bool run(
const Derived &) {
return false; }
78 template<
typename Derived>
82 unroll = SizeAtCompileTime !=
Dynamic
88 return internal::all_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
91 for(
Index j = 0; j < cols(); ++j)
92 for(
Index i = 0; i < rows(); ++i)
93 if (!coeff(i, j))
return false;
102 template<
typename Derived>
106 unroll = SizeAtCompileTime !=
Dynamic
112 return internal::any_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
115 for(
Index j = 0; j < cols(); ++j)
116 for(
Index i = 0; i < rows(); ++i)
117 if (coeff(i, j))
return true;
126 template<
typename Derived>
129 return derived().template cast<bool>().
template cast<Index>().sum();
136 template<
typename Derived>
139 return !((derived().array()==derived().array()).all());
146 template<
typename Derived>
149 return !((derived()-derived()).hasNaN());
154 #endif // EIGEN_ALLANDANY_H
bool hasNaN() const
Definition: BooleanRedux.h:137
bool any(void) const
Definition: BooleanRedux.h:103
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
Definition: NumTraits.h:88
const int Dynamic
Definition: Constants.h:21
Index count() const
Definition: BooleanRedux.h:127
bool all(void) const
Definition: BooleanRedux.h:79
bool allFinite() const
Definition: BooleanRedux.h:147
internal::traits< Derived >::Index Index
The type of indices.
Definition: DenseBase.h:60