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, 1>
34 static inline bool run(
const Derived &mat) {
return mat.coeff(0, 0); }
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, 1>
60 static inline bool run(
const Derived &mat) {
return mat.coeff(0, 0); }
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
83 && CoeffReadCost != Dynamic
88 return internal::all_unroller<Derived,
89 unroll ? int(SizeAtCompileTime) : Dynamic
93 for(
Index j = 0; j < cols(); ++j)
94 for(
Index i = 0; i < rows(); ++i)
95 if (!coeff(i, j))
return false;
104 template<
typename Derived>
108 unroll = SizeAtCompileTime != Dynamic
109 && CoeffReadCost != Dynamic
114 return internal::any_unroller<Derived,
115 unroll ? int(SizeAtCompileTime) : Dynamic
119 for(
Index j = 0; j < cols(); ++j)
120 for(
Index i = 0; i < rows(); ++i)
121 if (coeff(i, j))
return true;
130 template<
typename Derived>
133 return derived().template cast<bool>().template cast<Index>().sum();
138 #endif // EIGEN_ALLANDANY_H Index count() const
Definition: BooleanRedux.h:131
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:88
bool all(void) const
Definition: BooleanRedux.h:79
internal::traits< Derived >::Index Index
The type of indices.
Definition: DenseBase.h:51
bool any(void) const
Definition: BooleanRedux.h:105