Chemical Data Processing Library C++ API - Version 1.4.0
Classes | Namespaces | Typedefs | Functions
Quaternion.hpp File Reference

Definition of quaternion data types. More...

#include <algorithm>
#include <utility>
#include <type_traits>
#include "CDPL/Math/QuaternionExpression.hpp"
#include "CDPL/Math/QuaternionAssignment.hpp"
#include "CDPL/Math/Functional.hpp"
#include "CDPL/Math/TypeTraits.hpp"

Go to the source code of this file.

Classes

class  CDPL::Math::QuaternionReference< Q >
 Lightweight quaternion expression that proxies a reference to an underlying quaternion container. More...
 
class  CDPL::Math::Quaternion< T >
 General 4-component quaternion \( q = c_1 + c_2 i + c_3 j + c_4 k \). More...
 
class  CDPL::Math::RealQuaternion< T >
 Pure-real quaternion \( q = c_1 + 0i + 0j + 0k \) that stores only the real component. More...
 
struct  CDPL::Math::QuaternionTemporaryTraits< const QuaternionReference< Q > >
 Math::QuaternionTemporaryTraits specialization inheriting the temporary type of the underlying quaternion for a const Math::QuaternionReference view. More...
 
struct  CDPL::Math::QuaternionTemporaryTraits< QuaternionReference< Q > >
 Math::QuaternionTemporaryTraits specialization inheriting the temporary type of the underlying quaternion for a Math::QuaternionReference view. More...
 

Namespaces

 CDPL
 The namespace of the Chemical Data Processing Library.
 
 CDPL::Math
 Contains classes and functions related to mathematics.
 

Typedefs

typedef Quaternion< float > CDPL::Math::FQuaternion
 General 4-component quaternion with component values of type float. More...
 
typedef Quaternion< double > CDPL::Math::DQuaternion
 General 4-component quaternion with component values of type double. More...
 
typedef Quaternion< long > CDPL::Math::LQuaternion
 General 4-component quaternion with component values of type long. More...
 
typedef Quaternion< unsigned long > CDPL::Math::ULQuaternion
 General 4-component quaternion with component values of type unsigned long. More...
 
typedef RealQuaternion< float > CDPL::Math::FRealQuaternion
 A memory-efficient pure-real quaternion with component values of type float. More...
 
typedef RealQuaternion< double > CDPL::Math::DRealQuaternion
 A memory-efficient pure-real quaternion with component values of type double. More...
 
typedef RealQuaternion< long > CDPL::Math::LRealQuaternion
 A memory-efficient pure-real quaternion with component values of type long. More...
 
typedef RealQuaternion< unsigned long > CDPL::Math::ULRealQuaternion
 A memory-efficient pure-real quaternion with component values of type unsigned long. More...
 

Functions

template<typename T >
std::enable_if< IsScalar< T >::value, RealQuaternion< T > >::type CDPL::Math::quat (const T &t)
 Constructs a Math::RealQuaternion from the scalar t (its real component). More...
 
template<typename T1 , typename T2 >
Quaternion< typename CommonType< T1, T2 >::Type > CDPL::Math::quat (const T1 &t1, const T2 &t2)
 Constructs a Math::Quaternion from two scalar components t1 and t2 (C1, C2) — remaining components are zero. More...
 
template<typename T1 , typename T2 , typename T3 >
Quaternion< typename CommonType< typename CommonType< T1, T2 >::Type, T3 >::Type > CDPL::Math::quat (const T1 &t1, const T2 &t2, const T3 &t3)
 Constructs a Math::Quaternion from three scalar components (C1, C2, C3) — C4 is zero. More...
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
Quaternion< typename CommonType< typename CommonType< typename CommonType< T1, T2 >::Type, T3 >::Type, T4 >::Type > CDPL::Math::quat (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4)
 Constructs a Math::Quaternion from four scalar components (C1, C2, C3, C4). More...
 

Detailed Description

Definition of quaternion data types.