1#ifndef OPAL_QUATERNION_H
2#define OPAL_QUATERNION_H
10 Quaternion(
const double&,
const double&,
const double&,
const double&);
53 const double& x0,
const double& x1,
const double& x2,
const double& x3)
54 :
Vector<double, 4>(x0, x1, x2, x3) {
64 :
Quaternion(realPart, vec(0), vec(1), vec(2)) {
73 return std::sqrt(this->
Norm());
77 return (std::abs(this->
Norm() - 1.0) < 1
e-12);
81 return (std::abs((*
this)(0)) < 1
e-12);
Quaternion getQuaternion(ippl::Vector< double, 3 > vec, ippl::Vector< double, 3 > reference)
boost::numeric::ublas::matrix< double > matrix_t
constexpr double e
The value of.
Quaternion conjugate() const
Quaternion inverse() const
ippl::Vector< double, 3 > rotate(const ippl::Vector< double, 3 > &) const
Quaternion & operator*=(const Quaternion &)
Quaternion operator/(const double &) const
Quaternion & operator=(const Quaternion &)=default
Quaternion operator*(const double &) const
matrix_t getRotationMatrix() const
ippl::Vector< double, 3 > imag() const
KOKKOS_INLINE_FUNCTION double dot(const Vector< double, Dim > &rhs) const