42 return {2 * (quat[1] * quat[3] + quat[0] * quat[2]),
43 2 * (quat[2] * quat[3] - quat[0] * quat[1]),
44 quat[0] * quat[0] - quat[1] * quat[1] - quat[2] * quat[2] +
59 if (
dm < std::numeric_limits<T>::epsilon()) {
60 return {{{{1, 0, 0, 0}}}};
64 auto const d_xy = std::sqrt(d[0] * d[0] + d[1] * d[1]);
69 theta2 = (d[2] > 0.) ? 0. : std::numbers::pi_v<T> / 2.;
77 auto const phi = ((d[1] > 0.) ? 1. : -1.) * std::acos(d[0] /
d_xy);
78 phi2 =
phi / 2. - std::numbers::pi_v<T> / 4.;
Vector implementation and trait types for boost qvm interoperability.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
Quaternion< T > convert_director_to_quaternion(Vector< T, 3 > const &d)
Convert director to quaternion.
Vector< T, 3 > convert_quaternion_to_director(Quaternion< T > const &quat)
Convert quaternion to director.
Quaternion implementation and trait types for boost qvm interoperability.
Quaternion representation.