Lines Matching refs:q1
24 template<typename QuatType> void check_slerp(const QuatType& q0, const QuatType& q1) in check_slerp() argument
32 Scalar theta_tot = AA(q1*q0.inverse()).angle(); in check_slerp()
37 QuatType q = q0.slerp(t,q1); in check_slerp()
72 Quaternionx q1, q2; in quaternion() local
75 q1.coeffs().setRandom(); in quaternion()
76 VERIFY_IS_APPROX(q1.coeffs(), (q1*q2).coeffs()); in quaternion()
79 q1 *= q2; in quaternion()
81 q1 = AngleAxisx(a, v0.normalized()); in quaternion()
85 Scalar refangle = internal::abs(AngleAxisx(q1.inverse()*q2).angle()); in quaternion()
89 if((q1.coeffs()-q2.coeffs()).norm() > 10*largeEps) in quaternion()
91 VERIFY_IS_MUCH_SMALLER_THAN(internal::abs(q1.angularDistance(q2) - refangle), Scalar(1)); in quaternion()
95 VERIFY_IS_APPROX(q1 * v2, q1.toRotationMatrix() * v2); in quaternion()
96 VERIFY_IS_APPROX(q1 * q2 * v2, in quaternion()
97 q1.toRotationMatrix() * q2.toRotationMatrix() * v2); in quaternion()
99 VERIFY( (q2*q1).isApprox(q1*q2, largeEps) in quaternion()
100 || !(q2 * q1 * v2).isApprox(q1.toRotationMatrix() * q2.toRotationMatrix() * v2)); in quaternion()
102 q2 = q1.toRotationMatrix(); in quaternion()
103 VERIFY_IS_APPROX(q1*v1,q2*v1); in quaternion()
107 AngleAxisx aa = AngleAxisx(q1); in quaternion()
108 VERIFY_IS_APPROX(q1 * v1, Quaternionx(aa) * v1); in quaternion()
116 VERIFY_IS_NOT_APPROX(q1 * v1, Quaternionx(AngleAxisx(aa.angle()*2,aa.axis())) * v1); in quaternion()
142 VERIFY_IS_APPROX(q1 * (q1.inverse() * v1), v1); in quaternion()
143 VERIFY_IS_APPROX(q1 * (q1.conjugate() * v1), v1); in quaternion()
146 Quaternion<float> q1f = q1.template cast<float>(); in quaternion()
147 VERIFY_IS_APPROX(q1f.template cast<Scalar>(),q1); in quaternion()
148 Quaternion<double> q1d = q1.template cast<double>(); in quaternion()
149 VERIFY_IS_APPROX(q1d.template cast<Scalar>(),q1); in quaternion()
155 q1 = AngleAxisx(a, v0.normalized()); in quaternion()
157 check_slerp(q1,q2); in quaternion()
159 q1 = AngleAxisx(b, v1.normalized()); in quaternion()
161 check_slerp(q1,q2); in quaternion()
163 q1 = AngleAxisx(b, v1.normalized()); in quaternion()
165 check_slerp(q1,q2); in quaternion()
167 q1.coeffs() = Vector4::Random().normalized(); in quaternion()
168 q2.coeffs() = -q1.coeffs(); in quaternion()
169 check_slerp(q1,q2); in quaternion()
188 Quaternionx q1 = MQuaternionA(array1); in mapQuaternion() local
193 VERIFY_IS_APPROX(q1.coeffs(), q2.coeffs()); in mapQuaternion()
194 VERIFY_IS_APPROX(q1.coeffs(), q3.coeffs()); in mapQuaternion()
211 QuaternionA *q1 = ::new(reinterpret_cast<void*>(array1)) QuaternionA; in quaternionAlignment() local
215 q1->coeffs().setRandom(); in quaternionAlignment()
216 *q2 = *q1; in quaternionAlignment()
217 *q3 = *q1; in quaternionAlignment()
219 VERIFY_IS_APPROX(q1->coeffs(), q2->coeffs()); in quaternionAlignment()
220 VERIFY_IS_APPROX(q1->coeffs(), q3->coeffs()); in quaternionAlignment()