31 HVectorType hv0 = HVectorType::Random();
35 HMatrixType hm0 = HMatrixType::Random();
45 hm0 << m0,
ones.transpose();
48 hm0.row(Size - 1).setRandom();
49 for (
int j = 0;
j < Size; ++
j) m0.col(
j) = hm0.col(
j).head(Size) / hm0(Size,
j);
52 T1MatrixType t1 = T1MatrixType::Random();
54 VERIFY_IS_APPROX(t1 * (m0.colwise().homogeneous().eval()), t1 * m0.colwise().homogeneous());
56 T2MatrixType t2 = T2MatrixType::Random();
58 VERIFY_IS_APPROX(t2 * (m0.colwise().homogeneous().eval()), t2 * m0.colwise().homogeneous());
59 VERIFY_IS_APPROX(t2 * (v0.homogeneous().asDiagonal()), t2 * hv0.asDiagonal());
60 VERIFY_IS_APPROX((v0.homogeneous().asDiagonal()) * t2, hv0.asDiagonal() * t2);
62 VERIFY_IS_APPROX((v0.transpose().rowwise().homogeneous().eval()) * t2, v0.transpose().rowwise().homogeneous() * t2);
63 VERIFY_IS_APPROX((m0.transpose().rowwise().homogeneous().eval()) * t2, m0.transpose().rowwise().homogeneous() * t2);
65 T3MatrixType t3 = T3MatrixType::Random();
66 VERIFY_IS_APPROX((v0.transpose().rowwise().homogeneous().eval()) * t3, v0.transpose().rowwise().homogeneous() * t3);
67 VERIFY_IS_APPROX((m0.transpose().rowwise().homogeneous().eval()) * t3, m0.transpose().rowwise().homogeneous() * t3);
78 pts.
setRandom(Size, internal::random<int>(1, 20));
80 pts1 = pts.colwise().homogeneous();
81 VERIFY_IS_APPROX(aff * pts.colwise().homogeneous(), (aff * pts1).colwise().hnormalized());
82 VERIFY_IS_APPROX(caff * pts.colwise().homogeneous(), (caff * pts1).colwise().hnormalized());
90 VERIFY_IS_APPROX((aff * pts2).colwise().hnormalized(), aff * pts2.colwise().hnormalized());
91 VERIFY_IS_APPROX((caff * pts2).colwise().hnormalized(), caff * pts2.colwise().hnormalized());
93 (proj * pts2.colwise().hnormalized().colwise().homogeneous()).colwise().hnormalized());
98 (t2.template topLeftCorner<Size, Size>() * v0 + t2.template topRightCorner<Size, 1>()) /
99 ((t2.template bottomLeftCorner<1, Size>() * v0).value() + t2(Size, Size)));
101 VERIFY_IS_APPROX((t2 * pts.colwise().homogeneous()).colwise().hnormalized(),
104 VERIFY_IS_APPROX((t2.lazyProduct(v0.homogeneous())).hnormalized(), (t2 * v0.homogeneous()).hnormalized());
105 VERIFY_IS_APPROX((t2.lazyProduct(pts.colwise().homogeneous())).colwise().hnormalized(),
106 (t2 * pts1).colwise().hnormalized());
108 VERIFY_IS_APPROX((v0.transpose().homogeneous().lazyProduct(t2)).hnormalized(),
109 (v0.transpose().homogeneous() * t2).hnormalized());
110 VERIFY_IS_APPROX((pts.transpose().rowwise().homogeneous().lazyProduct(t2)).rowwise().hnormalized(),
111 (pts1.transpose() * t2).rowwise().hnormalized());
113 VERIFY_IS_APPROX((t2.template triangularView<Lower>() * v0.homogeneous()).eval(),
114 (t2.template triangularView<Lower>() * hv0));
MatrixXcf ones
Definition: ComplexEigenSolver_eigenvalues.cpp:1
MatrixXf MatrixType
Definition: benchmark-blocking-sizes.cpp:52
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Derived & setRandom(Index size)
Definition: Random.h:147
#define VERIFY_IS_APPROX(a, b)
Definition: integer_types.cpp:13
Definition: fft_test_shared.h:66
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2