Quaternion
This class represents a general quaternion, i.e. a quaternion that may not
have
.
It’s not used in NEML natively, just as a base class to the unit
quaternion orientation class.
-
class Quaternion
A generic quaternion, stored as [s v1 v2 v3].
Subclassed by neml::Orientation
Public Functions
-
Quaternion()
Default constructor (manage own memory)
-
Quaternion(const std::vector<double> v)
Construct from vector (manage own memory)
-
Quaternion(double *v)
Construct from raw pointer (don’t manage memory)
-
Quaternion(const Quaternion &other)
Copy constructor.
-
Quaternion(const Quaternion &&other)
Move constructor.
-
virtual ~Quaternion()
-
Quaternion &operator=(const Quaternion &rhs)
Copy.
-
Quaternion &operator=(const Quaternion &&rhs)
Move.
-
bool store() const
Do you store your own data?
-
const double *quat() const
Raw quaternion as a const pointer.
-
double *data()
Raw quaternion as a nonconst pointer.
-
virtual double norm() const
Quaternion norm.
-
Quaternion opposite() const
Opposite.
-
Quaternion operator-() const
C++ operator opposite.
-
Quaternion conj() const
Conjugation.
-
Quaternion flip() const
Opposite scalar.
-
Quaternion inverse() const
Inversion.
-
Quaternion exp() const
Exponential map.
-
Quaternion log() const
Inverse exponential map.
-
Quaternion &operator*=(const Quaternion &rhs)
Quaternion multiplication.
-
Quaternion &operator*=(double scalar)
Scalar multiplication.
-
Quaternion &operator/=(const Quaternion &rhs)
Quaternion division.
-
Quaternion &operator/=(double scalar)
Scalar division.
-
Quaternion pow(double w) const
Power.
-
double dot(const Quaternion &other) const
Dot product, useful for various distances.
-
size_t hash() const
Hash function for quick comparisons.
-
void to_product_matrix(double *M) const
Product matrix for quaternion composition.
-
Quaternion()