aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-07-08 00:49:10 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-07-08 00:49:10 +0000
commitf5791eeb7054b78ded6eb080e9712651da6c6a34 (patch)
tree414c138b050003fdc32e0cebcc6f39ea1e94dc7f /test
parentc910c517b34b147894e7fa62cb9602cc19e0669b (diff)
the big Array/Cwise rework as discussed on the mailing list. The new API
can be seen in Eigen/src/Core/Cwise.h.
Diffstat (limited to 'test')
-rw-r--r--test/array.cpp22
-rw-r--r--test/cwiseop.cpp12
-rw-r--r--test/geometry.cpp6
-rw-r--r--test/linearstructure.cpp2
-rw-r--r--test/nomalloc.cpp2
5 files changed, 22 insertions, 22 deletions
diff --git a/test/array.cpp b/test/array.cpp
index d05c4f72e..6233aaec8 100644
--- a/test/array.cpp
+++ b/test/array.cpp
@@ -44,15 +44,15 @@ template<typename MatrixType> void scalarAdd(const MatrixType& m)
Scalar s1 = ei_random<Scalar>(),
s2 = ei_random<Scalar>();
- VERIFY_IS_APPROX(m1.array() + s1, s1 + m1.array());
- VERIFY_IS_APPROX(m1.array() + s1, MatrixType::constant(rows,cols,s1) + m1);
- VERIFY_IS_APPROX((m1*Scalar(2)).array() - s2, (m1+m1) - MatrixType::constant(rows,cols,s2) );
+ VERIFY_IS_APPROX(m1.cwise() + s1, s1 + m1.cwise());
+ VERIFY_IS_APPROX(m1.cwise() + s1, MatrixType::constant(rows,cols,s1) + m1);
+ VERIFY_IS_APPROX((m1*Scalar(2)).cwise() - s2, (m1+m1) - MatrixType::constant(rows,cols,s2) );
m3 = m1;
- m3.array() += s2;
- VERIFY_IS_APPROX(m3, m1.array() + s2);
+ m3.cwise() += s2;
+ VERIFY_IS_APPROX(m3, m1.cwise() + s2);
m3 = m1;
- m3.array() -= s1;
- VERIFY_IS_APPROX(m3, m1.array() - s1);
+ m3.cwise() -= s1;
+ VERIFY_IS_APPROX(m3, m1.cwise() - s1);
}
template<typename MatrixType> void comparisons(const MatrixType& m)
@@ -70,14 +70,14 @@ template<typename MatrixType> void comparisons(const MatrixType& m)
m2 = MatrixType::random(rows, cols),
m3(rows, cols);
- VERIFY((m1.array() + Scalar(1)).array() > m1.array());
- VERIFY((m1.array() - Scalar(1)).array() < m1.array());
+ VERIFY(((m1.cwise() + Scalar(1)).cwise() > m1).all());
+ VERIFY(((m1.cwise() - Scalar(1)).cwise() < m1).all());
if (rows*cols>1)
{
m3 = m1;
m3(r,c) += 1;
- VERIFY(! (m1.array() < m3.array()) );
- VERIFY(! (m1.array() > m3.array()) );
+ VERIFY(! (m1.cwise() < m3).all() );
+ VERIFY(! (m1.cwise() > m3).all() );
}
}
diff --git a/test/cwiseop.cpp b/test/cwiseop.cpp
index 8f7ce9953..9278dd08d 100644
--- a/test/cwiseop.cpp
+++ b/test/cwiseop.cpp
@@ -55,7 +55,7 @@ template<typename MatrixType> void cwiseops(const MatrixType& m)
v2 = VectorType::random(rows),
vzero = VectorType::zero(rows);
- m2 = m2.template cwise<AddIfNull<Scalar> >(mones);
+ m2 = m2.template binaryExpr<AddIfNull<Scalar> >(mones);
VERIFY_IS_APPROX( mzero, m1-m1);
VERIFY_IS_APPROX( m2, m1+m2-m1);
@@ -63,13 +63,13 @@ template<typename MatrixType> void cwiseops(const MatrixType& m)
if(NumTraits<Scalar>::HasFloatingPoint)
#endif
{
- VERIFY_IS_APPROX( mones, m2.cwiseQuotient(m2));
+ VERIFY_IS_APPROX( mones, m2.cwise()/m2);
}
- VERIFY_IS_APPROX( m1.cwiseProduct(m2), m2.cwiseProduct(m1));
+ VERIFY_IS_APPROX( m1.cwise() * m2, m2.cwise() * m1);
- VERIFY( m1.cwiseLessThan(m1.cwise(bind2nd(plus<Scalar>(), Scalar(1)))).all() );
- VERIFY( !m1.cwiseLessThan(m1.cwise(bind2nd(minus<Scalar>(), Scalar(1)))).all() );
- VERIFY( !m1.cwiseGreaterThan(m1.cwise(bind2nd(plus<Scalar>(), Scalar(1)))).any() );
+ VERIFY( (m1.cwise()<m1.unaryExpr(bind2nd(plus<Scalar>(), Scalar(1)))).all() );
+ VERIFY( !(m1.cwise()<m1.unaryExpr(bind2nd(minus<Scalar>(), Scalar(1)))).all() );
+ VERIFY( !(m1.cwise()>m1.unaryExpr(bind2nd(plus<Scalar>(), Scalar(1)))).any() );
//VERIFY_IS_APPROX( m1, m2.cwiseProduct(m1).cwiseQuotient(m2));
// VERIFY_IS_APPROX( cwiseMin(m1,m2), cwiseMin(m2,m1) );
diff --git a/test/geometry.cpp b/test/geometry.cpp
index fd20c137f..64b096aa8 100644
--- a/test/geometry.cpp
+++ b/test/geometry.cpp
@@ -65,7 +65,7 @@ template<typename Scalar> void geometry(void)
VERIFY_IS_APPROX(Quaternion(EulerAngles(q1)) * v1, q1 * v1);
EulerAngles ea = q2;
VERIFY_IS_APPROX(EulerAngles(Quaternion(ea)).coeffs(), ea.coeffs());
- VERIFY_IS_NOT_APPROX(EulerAngles(Quaternion(EulerAngles(v2.cwiseProduct(Vector3(0.2,-0.2,1))))).coeffs(), v2);
+ VERIFY_IS_NOT_APPROX(EulerAngles(Quaternion(EulerAngles(v2.cwise() * Vector3(0.2,-0.2,1)))).coeffs(), v2);
// angle-axis conversion
AngleAxis aa = q1;
@@ -128,7 +128,7 @@ template<typename Scalar> void geometry(void)
t0.pretranslate(v0);
t0.scale(v1);
t1.affine() = q1.conjugate().toRotationMatrix();
- t1.prescale(v1.cwiseInverse());
+ t1.prescale(v1.cwise().inverse());
t1.translate(-v0);
VERIFY((t0.matrix() * t1.matrix()).isIdentity());
@@ -147,7 +147,7 @@ template<typename Scalar> void geometry(void)
t21.setIdentity();
t21.affine() = Rotation2D<Scalar>(-a).toRotationMatrix();
- VERIFY( (t20.fromPositionOrientationScale(v20,a,v21) * (t21.prescale(v21.cwiseInverse()).translate(-v20))).isIdentity() );
+ VERIFY( (t20.fromPositionOrientationScale(v20,a,v21) * (t21.prescale(v21.cwise().inverse()).translate(-v20))).isIdentity() );
}
void test_geometry()
diff --git a/test/linearstructure.cpp b/test/linearstructure.cpp
index 4c2bdf620..8096d2f3e 100644
--- a/test/linearstructure.cpp
+++ b/test/linearstructure.cpp
@@ -85,7 +85,7 @@ template<typename MatrixType> void linearStructure(const MatrixType& m)
// use .block to disable vectorization and compare to the vectorized version
VERIFY_IS_APPROX(m1+m1.block(0,0,rows,cols), m1+m1);
- VERIFY_IS_APPROX(m1.cwiseProduct(m1.block(0,0,rows,cols)), m1.cwiseProduct(m1));
+ VERIFY_IS_APPROX(m1.cwise() * m1.block(0,0,rows,cols), m1.cwise() * m1);
VERIFY_IS_APPROX(m1 - m1.block(0,0,rows,cols), m1 - m1);
VERIFY_IS_APPROX(m1.block(0,0,rows,cols) * s1, m1 * s1);
}
diff --git a/test/nomalloc.cpp b/test/nomalloc.cpp
index d6c566bef..d9653588d 100644
--- a/test/nomalloc.cpp
+++ b/test/nomalloc.cpp
@@ -75,7 +75,7 @@ template<typename MatrixType> void nomalloc(const MatrixType& m)
VERIFY_IS_APPROX((m1+m2)*s1, s1*m1+s1*m2);
VERIFY_IS_APPROX((m1+m2)(r,c), (m1(r,c))+(m2(r,c)));
- VERIFY_IS_APPROX(m1.cwiseProduct(m1.block(0,0,rows,cols)), m1.cwiseProduct(m1));
+ VERIFY_IS_APPROX(m1.cwise() * m1.block(0,0,rows,cols), m1.cwise() * m1);
VERIFY_IS_APPROX((m1*m1.transpose())*m2, m1*(m1.transpose()*m2));
}