• Home
  • Raw
  • Download

Lines Matching full:scalar

17 template <typename Scalar, class System>
18 bool verifyIsApprox(const Eigen::EulerAngles<Scalar, System>& a, const Eigen::EulerAngles<Scalar, S… in verifyIsApprox() argument
34 template<typename Scalar, class EulerSystem>
35 void verify_euler(const EulerAngles<Scalar, EulerSystem>& e) in verify_euler() argument
37 typedef EulerAngles<Scalar, EulerSystem> EulerAnglesType; in verify_euler()
38 typedef Matrix<Scalar,3,3> Matrix3; in verify_euler()
39 typedef Matrix<Scalar,3,1> Vector3; in verify_euler()
40 typedef Quaternion<Scalar> QuaternionType; in verify_euler()
41 typedef AngleAxis<Scalar> AngleAxisType; in verify_euler()
43 const Scalar ONE = Scalar(1); in verify_euler()
44 const Scalar HALF_PI = Scalar(EIGEN_PI / 2); in verify_euler()
45 const Scalar PI = Scalar(EIGEN_PI); in verify_euler()
48 const Scalar longitudeRadius = std::abs( in verify_euler()
53 Scalar precision = test_precision<Scalar>() / longitudeRadius; in verify_euler()
55 Scalar betaRangeStart, betaRangeEnd; in verify_euler()
85 VERIFY_IS_APPROX(Scalar(m.determinant()), ONE); in verify_euler()
93 precision = test_precision<Scalar>(); in verify_euler()
101 VERIFY_IS_APPROX(Scalar(mbis.determinant()), ONE); in verify_euler()
121 …|| ea[1]!=0) && (i==k || !internal::isApprox(abs(ea[1]),Scalar(EIGEN_PI/2),test_precision<Scalar>(… in verify_euler()
128 VERIFY(internal::isApprox<Scalar>(std::abs(q.dot(qbis)), ONE, precision)); in verify_euler()
137 template<signed char A, signed char B, signed char C, typename Scalar>
138 void verify_euler_vec(const Matrix<Scalar,3,1>& ea) in verify_euler_vec() argument
140 verify_euler(EulerAngles<Scalar, EulerSystem<A, B, C> >(ea[0], ea[1], ea[2])); in verify_euler_vec()
143 template<signed char A, signed char B, signed char C, typename Scalar>
144 void verify_euler_all_neg(const Matrix<Scalar,3,1>& ea) in verify_euler_all_neg() argument
157 template<typename Scalar> void check_all_var(const Matrix<Scalar,3,1>& ea) in check_all_var() argument
175 template<typename Scalar> void check_singular_cases(const Scalar& singularBeta) in check_singular_cases()
177 typedef Matrix<Scalar,3,1> Vector3; in check_singular_cases()
178 const Scalar PI = Scalar(EIGEN_PI); in check_singular_cases()
180 for (Scalar epsilon = NumTraits<Scalar>::epsilon(); epsilon < 1; epsilon *= Scalar(1.2)) in check_singular_cases()
184 check_all_var(Vector3(PI/4, singularBeta - Scalar(1.5)*epsilon, PI/3)); in check_singular_cases()
186 check_all_var(Vector3(PI*Scalar(0.8), singularBeta - epsilon, Scalar(0.9)*PI)); in check_singular_cases()
187 check_all_var(Vector3(PI*Scalar(-0.9), singularBeta + epsilon, PI*Scalar(0.3))); in check_singular_cases()
188 check_all_var(Vector3(PI*Scalar(-0.6), singularBeta + Scalar(1.5)*epsilon, PI*Scalar(0.3))); in check_singular_cases()
189 check_all_var(Vector3(PI*Scalar(-0.5), singularBeta + 2*epsilon, PI*Scalar(0.4))); in check_singular_cases()
190 check_all_var(Vector3(PI*Scalar(0.9), singularBeta + epsilon, Scalar(0.8)*PI)); in check_singular_cases()
193 // This one for sanity, it had a problem with near pole cases in float scalar. in check_singular_cases()
194 check_all_var(Vector3(PI*Scalar(0.8), singularBeta - Scalar(1E-6), Scalar(0.9)*PI)); in check_singular_cases()
197 template<typename Scalar> void eulerangles_manual() in eulerangles_manual()
199 typedef Matrix<Scalar,3,1> Vector3; in eulerangles_manual()
200 typedef Matrix<Scalar,Dynamic,1> VectorX; in eulerangles_manual()
202 const Scalar PI = Scalar(EIGEN_PI); in eulerangles_manual()
210 check_singular_cases(Scalar(0)); in eulerangles_manual()
211 check_singular_cases(Scalar(-0)); in eulerangles_manual()
217 VectorX alpha = VectorX::LinSpaced(20, Scalar(-0.99) * PI, PI); in eulerangles_manual()
218 VectorX beta = VectorX::LinSpaced(20, Scalar(-0.49) * PI, Scalar(0.49) * PI); in eulerangles_manual()
219 VectorX gamma = VectorX::LinSpaced(20, Scalar(-0.99) * PI, PI); in eulerangles_manual()
229 template<typename Scalar> void eulerangles_rand() in eulerangles_rand()
231 typedef Matrix<Scalar,3,3> Matrix3; in eulerangles_rand()
232 typedef Matrix<Scalar,3,1> Vector3; in eulerangles_rand()
233 typedef Array<Scalar,3,1> Array3; in eulerangles_rand()
234 typedef Quaternion<Scalar> Quaternionx; in eulerangles_rand()
235 typedef AngleAxis<Scalar> AngleAxisType; in eulerangles_rand()
237 Scalar a = internal::random<Scalar>(-Scalar(EIGEN_PI), Scalar(EIGEN_PI)); in eulerangles_rand()
257 ea = (Array3::Random() + Array3(1,0,0))*Scalar(EIGEN_PI)*Array3(0.5,1,1); in eulerangles_rand()
260 ea[2] = ea[0] = internal::random<Scalar>(0,Scalar(EIGEN_PI)); in eulerangles_rand()
263 ea[0] = ea[1] = internal::random<Scalar>(0,Scalar(EIGEN_PI)); in eulerangles_rand()