OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
Quaternion Class Reference

#include <Quaternion.hpp>

Inherits ippl::Vector< double, 4 >.

Collaboration diagram for Quaternion:

Public Member Functions

 Quaternion ()
 Quaternion (const Quaternion &)
 Quaternion (const double &, const double &, const double &, const double &)
 Quaternion (const ippl::Vector< double, 3 > &)
 Quaternion (const double &, const ippl::Vector< double, 3 > &)
 Quaternion (const matrix_t &)
Quaternion operator* (const double &) const
Quaternion operator* (const Quaternion &) const
Quaternionoperator= (const Quaternion &)=default
Quaternionoperator*= (const Quaternion &)
Quaternion operator/ (const double &) const
double Norm () const
double length () const
Quaternionnormalize ()
bool isUnit () const
bool isPure () const
bool isPureUnit () const
Quaternion inverse () const
Quaternion conjugate () const
double real () const
ippl::Vector< double, 3 > imag () const
ippl::Vector< double, 3 > rotate (const ippl::Vector< double, 3 > &) const
matrix_t getRotationMatrix () const

Detailed Description

Definition at line 6 of file Quaternion.hpp.

Constructor & Destructor Documentation

◆ Quaternion() [1/6]

Quaternion::Quaternion ( )
inline

Definition at line 44 of file Quaternion.hpp.

Referenced by conjugate(), getRotationMatrix(), inverse(), normalize(), operator*(), operator*(), operator*=(), operator/(), operator=(), Quaternion(), Quaternion(), Quaternion(), and rotate().

Here is the caller graph for this function:

◆ Quaternion() [2/6]

Quaternion::Quaternion ( const Quaternion & quat)
inline

Definition at line 48 of file Quaternion.hpp.

References Quaternion().

Here is the call graph for this function:

◆ Quaternion() [3/6]

Quaternion::Quaternion ( const double & x0,
const double & x1,
const double & x2,
const double & x3 )
inline

Definition at line 52 of file Quaternion.hpp.

◆ Quaternion() [4/6]

Quaternion::Quaternion ( const ippl::Vector< double, 3 > & vec)
inline

Definition at line 58 of file Quaternion.hpp.

References Quaternion().

Here is the call graph for this function:

◆ Quaternion() [5/6]

Quaternion::Quaternion ( const double & realPart,
const ippl::Vector< double, 3 > & vec )
inline

Definition at line 63 of file Quaternion.hpp.

References Quaternion().

Here is the call graph for this function:

◆ Quaternion() [6/6]

Quaternion::Quaternion ( const matrix_t & M)

Definition at line 22 of file Quaternion.cpp.

Member Function Documentation

◆ conjugate()

Quaternion Quaternion::conjugate ( ) const
inline

Definition at line 88 of file Quaternion.hpp.

References imag(), Quaternion(), and real().

Referenced by OpalBeamline::compute3DLattice(), ParallelTracker::computeSpaceChargeFields(), Util::getTaitBryantAngles(), inverse(), CoordinateSystemTrafo::operator*=(), rotate(), OpalBeamline::save3DInput(), and OpalElement::update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRotationMatrix()

matrix_t Quaternion::getRotationMatrix ( ) const

Definition at line 135 of file Quaternion.cpp.

References normalize(), and Quaternion().

Here is the call graph for this function:

◆ imag()

ippl::Vector< double, 3 > Quaternion::imag ( ) const
inline

Definition at line 98 of file Quaternion.hpp.

Referenced by conjugate(), operator*(), operator*=(), and operator/().

Here is the caller graph for this function:

◆ inverse()

Quaternion Quaternion::inverse ( ) const

Definition at line 116 of file Quaternion.cpp.

References conjugate(), normalize(), and Quaternion().

Here is the call graph for this function:

◆ isPure()

bool Quaternion::isPure ( ) const
inline

Definition at line 80 of file Quaternion.hpp.

Referenced by isPureUnit().

Here is the caller graph for this function:

◆ isPureUnit()

bool Quaternion::isPureUnit ( ) const
inline

Definition at line 84 of file Quaternion.hpp.

References isPure(), and isUnit().

Here is the call graph for this function:

◆ isUnit()

bool Quaternion::isUnit ( ) const
inline

Definition at line 76 of file Quaternion.hpp.

References Norm().

Referenced by isPureUnit(), and rotate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ length()

double Quaternion::length ( ) const
inline

Definition at line 72 of file Quaternion.hpp.

References Norm().

Referenced by normalize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Norm()

double Quaternion::Norm ( ) const
inline

Definition at line 68 of file Quaternion.hpp.

References dot().

Referenced by isUnit(), length(), normalize(), and rotate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize()

Quaternion & Quaternion::normalize ( )

Definition at line 104 of file Quaternion.cpp.

References length(), Norm(), and Quaternion().

Referenced by getRotationMatrix(), and inverse().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator*() [1/2]

Quaternion Quaternion::operator* ( const double & d) const

Definition at line 71 of file Quaternion.cpp.

References imag(), Quaternion(), and real().

Here is the call graph for this function:

◆ operator*() [2/2]

Quaternion Quaternion::operator* ( const Quaternion & other) const

Definition at line 77 of file Quaternion.cpp.

References Quaternion().

Here is the call graph for this function:

◆ operator*=()

Quaternion & Quaternion::operator*= ( const Quaternion & other)
Todo
there is a scope issue w.r.t dot and ippl::Vector

Definition at line 82 of file Quaternion.cpp.

References cross(), imag(), and Quaternion().

Here is the call graph for this function:

◆ operator/()

Quaternion Quaternion::operator/ ( const double & d) const

Definition at line 98 of file Quaternion.cpp.

References imag(), Quaternion(), and real().

Here is the call graph for this function:

◆ operator=()

Quaternion & Quaternion::operator= ( const Quaternion & )
default

References Quaternion().

Here is the call graph for this function:

◆ real()

double Quaternion::real ( ) const
inline

Definition at line 94 of file Quaternion.hpp.

Referenced by conjugate(), operator*(), and operator/().

Here is the caller graph for this function:

◆ rotate()

ippl::Vector< double, 3 > Quaternion::rotate ( const ippl::Vector< double, 3 > & vec) const

Definition at line 122 of file Quaternion.cpp.

References conjugate(), isUnit(), Norm(), and Quaternion().

Referenced by OpalBeamline::compute3DLattice(), Util::getTaitBryantAngles(), and CoordinateSystemTrafo::operator*=().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: