10 #ifndef EIGEN_ALLANDANY_H
11 #define EIGEN_ALLANDANY_H
17 template<
typename Derived,
int UnrollCount,
int Rows>
21 col = (UnrollCount-1) / Rows,
22 row = (UnrollCount-1) % Rows
25 EIGEN_DEVICE_FUNC
static inline bool run(
const Derived &mat)
31 template<
typename Derived,
int Rows>
34 EIGEN_DEVICE_FUNC
static inline bool run(
const Derived &) {
return true; }
37 template<
typename Derived,
int Rows>
40 EIGEN_DEVICE_FUNC
static inline bool run(
const Derived &) {
return false; }
43 template<
typename Derived,
int UnrollCount,
int Rows>
47 col = (UnrollCount-1) / Rows,
48 row = (UnrollCount-1) % Rows
51 EIGEN_DEVICE_FUNC
static inline bool run(
const Derived &mat)
57 template<
typename Derived,
int Rows>
60 EIGEN_DEVICE_FUNC
static inline bool run(
const Derived & ) {
return false; }
63 template<
typename Derived,
int Rows>
66 EIGEN_DEVICE_FUNC
static inline bool run(
const Derived &) {
return false; }
78 template<
typename Derived>
83 unroll = SizeAtCompileTime !=
Dynamic
86 Evaluator evaluator(derived());
91 for(
Index j = 0; j < cols(); ++j)
92 for(
Index i = 0; i < rows(); ++i)
93 if (!evaluator.coeff(i, j))
return false;
102 template<
typename Derived>
107 unroll = SizeAtCompileTime !=
Dynamic
110 Evaluator evaluator(derived());
115 for(
Index j = 0; j < cols(); ++j)
116 for(
Index i = 0; i < rows(); ++i)
117 if (evaluator.coeff(i, j))
return true;
126 template<
typename Derived>
129 return derived().template cast<bool>().template cast<Index>().sum();
136 template<
typename Derived>
139 #if EIGEN_COMP_MSVC || (defined __FAST_MATH__)
140 return derived().array().isNaN().any();
142 return !((derived().array()==derived().array()).all());
150 template<
typename Derived>
153 #if EIGEN_COMP_MSVC || (defined __FAST_MATH__)
154 return derived().array().isFinite().all();
156 return !((derived()-derived()).hasNaN());
162 #endif // EIGEN_ALLANDANY_H