21 m = MatrixType::Random(rows, cols);
23 for(
Index i2 = 0; i2 <
i; i2++)
25 m(i) = internal::random<Scalar>();
28 Index minrow=0,mincol=0,maxrow=0,maxcol=0;
45 Index eigen_minrow, eigen_mincol, eigen_maxrow, eigen_maxcol;
46 Scalar eigen_minc, eigen_maxc;
47 eigen_minc = m.minCoeff(&eigen_minrow,&eigen_mincol);
48 eigen_maxc = m.maxCoeff(&eigen_maxrow,&eigen_maxcol);
49 VERIFY(minrow == eigen_minrow);
50 VERIFY(maxrow == eigen_maxrow);
51 VERIFY(mincol == eigen_mincol);
52 VERIFY(maxcol == eigen_maxcol);
58 eigen_maxc = (m.adjoint()*
m).maxCoeff(&eigen_maxrow,&eigen_maxcol);
59 Index maxrow2=0,maxcol2=0;
60 eigen_maxc = (m.adjoint()*
m).
eval().maxCoeff(&maxrow2,&maxcol2);
61 VERIFY(maxrow2 == eigen_maxrow);
62 VERIFY(maxcol2 == eigen_maxcol);
67 for (
Index j = 0;
j < cols && !stop; ++
j) {
68 for (
Index i = 0; i < rows && !stop; ++
i) {
69 if (!(
j == mincol && i == minrow) &&
70 !(
j == maxcol && i == maxrow)) {
78 eigen_minc = m.template minCoeff<PropagateNumbers>(&eigen_minrow, &eigen_mincol);
79 eigen_maxc = m.template maxCoeff<PropagateNumbers>(&eigen_maxrow, &eigen_maxcol);
80 VERIFY(minrow == eigen_minrow);
81 VERIFY(maxrow == eigen_maxrow);
82 VERIFY(mincol == eigen_mincol);
83 VERIFY(maxcol == eigen_maxcol);
89 eigen_minc = m.template minCoeff<PropagateNaN>(&eigen_minrow, &eigen_mincol);
90 eigen_maxc = m.template maxCoeff<PropagateNaN>(&eigen_maxrow, &eigen_maxcol);
91 VERIFY(minrow != eigen_minrow || mincol != eigen_mincol);
92 VERIFY(maxrow != eigen_maxrow || maxcol != eigen_maxcol);
107 v = VectorType::Random(size);
109 for(
Index i2 = 0; i2 <
i; i2++)
111 v(i) = internal::random<Scalar>();
113 Scalar minc =
v(0), maxc =
v(0);
114 Index minidx=0, maxidx=0;
128 Index eigen_minidx, eigen_maxidx;
129 Scalar eigen_minc, eigen_maxc;
130 eigen_minc = v.minCoeff(&eigen_minidx);
131 eigen_maxc = v.maxCoeff(&eigen_maxidx);
132 VERIFY(minidx == eigen_minidx);
133 VERIFY(maxidx == eigen_maxidx);
139 Index idx0 = internal::random<Index>(0,size-1);
140 Index idx1 = eigen_minidx;
141 Index idx2 = eigen_maxidx;
145 v1.minCoeff(&eigen_minidx);
146 v2.maxCoeff(&eigen_maxidx);
153 if (i != minidx && i != maxidx) {
158 eigen_minc = v.template minCoeff<PropagateNumbers>(&eigen_minidx);
159 eigen_maxc = v.template maxCoeff<PropagateNumbers>(&eigen_maxidx);
160 VERIFY(minidx == eigen_minidx);
161 VERIFY(maxidx == eigen_maxidx);
167 eigen_minc = v.template minCoeff<PropagateNaN>(&eigen_minidx);
168 eigen_maxc = v.template maxCoeff<PropagateNaN>(&eigen_maxidx);
169 VERIFY(minidx != eigen_minidx);
170 VERIFY(maxidx != eigen_maxidx);
#define CALL_SUBTEST_9(FUNC)
#define CALL_SUBTEST_6(FUNC)
#define CALL_SUBTEST_4(FUNC)
#define CALL_SUBTEST_3(FUNC)
#define CALL_SUBTEST_7(FUNC)
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
#define CALL_SUBTEST_10(FUNC)
EIGEN_DECLARE_TEST(visitor)
#define VERIFY_IS_APPROX(a, b)
#define CALL_SUBTEST_1(FUNC)
void matrixVisitor(const MatrixType &p)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Array< int, Dynamic, 1 > v
#define CALL_SUBTEST_8(FUNC)
void vectorVisitor(const VectorType &w)
#define CALL_SUBTEST_5(FUNC)
#define CALL_SUBTEST_2(FUNC)
internal::nested_eval< T, 1 >::type eval(const T &xpr)
The matrix class, also used for vectors and row-vectors.