Chemical Data Processing Library C++ API - Version 1.2.0
Classes | Namespaces | Functions
QuaternionExpression.hpp File Reference

Definition of various quaternion expression types and operations. More...

#include <type_traits>
#include "CDPL/Math/Expression.hpp"
#include "CDPL/Math/CommonType.hpp"
#include "CDPL/Math/Functional.hpp"
#include "CDPL/Math/TypeTraits.hpp"

Go to the source code of this file.

Classes

class  CDPL::Math::QuaternionUnary1< E, F >
 
struct  CDPL::Math::QuaternionUnary1Traits< E, F >
 
class  CDPL::Math::QuaternionUnary2< E, F >
 
struct  CDPL::Math::QuaternionUnary2Traits< E, F >
 
class  CDPL::Math::QuaternionBinary1< E1, E2, F >
 
struct  CDPL::Math::QuaternionBinary1Traits< E1, E2, F >
 
class  CDPL::Math::QuaternionBinary2< E1, E2, F >
 
struct  CDPL::Math::QuaternionBinary2Traits< E1, E2, F >
 
class  CDPL::Math::Scalar1QuaternionBinary1< E1, E2, F >
 
struct  CDPL::Math::Scalar1QuaternionBinary1Traits< E1, E2, F >
 
class  CDPL::Math::Scalar1QuaternionBinary2< E1, E2, F >
 
struct  CDPL::Math::Scalar1QuaternionBinary2Traits< E1, E2, F >
 
class  CDPL::Math::Scalar2QuaternionBinary1< E1, E2, F >
 
struct  CDPL::Math::Scalar2QuaternionBinary1Traits< E1, E2, F >
 
class  CDPL::Math::Scalar2QuaternionBinary2< E1, E2, F >
 
struct  CDPL::Math::Scalar2QuaternionBinary2Traits< E1, E2, F >
 
class  CDPL::Math::Scalar3QuaternionTernary< E1, E2, E3, F >
 
struct  CDPL::Math::Scalar3QuaternionTernaryTraits< E1, E2, E3, F >
 
class  CDPL::Math::Scalar13QuaternionTernary< E1, E2, E3, F >
 
struct  CDPL::Math::Scalar13QuaternionTernaryTraits< E1, E2, E3, F >
 

Namespaces

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

Functions

template<typename E >
QuaternionUnary1Traits< E, ScalarNegation< typename E::ValueType > >::ResultType CDPL::Math::operator- (const QuaternionExpression< E > &e)
 
template<typename E >
const E & CDPL::Math::operator+ (const QuaternionExpression< E > &e)
 
template<typename E1 , typename E2 >
QuaternionBinary1Traits< E1, E2, ScalarAddition< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::operator+ (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E , typename T >
std::enable_if< IsScalar< T >::value, typename Scalar2QuaternionBinary2Traits< E, T, Scalar2QuaternionAddition< E, T > >::ResultType >::type CDPL::Math::operator+ (const QuaternionExpression< E > &e, const T &t)
 
template<typename T , typename E >
std::enable_if< IsScalar< T >::value, typename Scalar1QuaternionBinary2Traits< T, E, Scalar1QuaternionAddition< T, E > >::ResultType >::type CDPL::Math::operator+ (const T &t, const QuaternionExpression< E > &e)
 
template<typename E1 , typename E2 >
QuaternionBinary1Traits< E1, E2, ScalarSubtraction< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::operator- (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E , typename T >
std::enable_if< IsScalar< T >::value, typename Scalar2QuaternionBinary2Traits< E, T, Scalar2QuaternionSubtraction< E, T > >::ResultType >::type CDPL::Math::operator- (const QuaternionExpression< E > &e, const T &t)
 
template<typename T , typename E >
std::enable_if< IsScalar< T >::value, typename Scalar1QuaternionBinary2Traits< T, E, Scalar1QuaternionSubtraction< T, E > >::ResultType >::type CDPL::Math::operator- (const T &t, const QuaternionExpression< E > &e)
 
template<typename E1 , typename E2 >
QuaternionBinary2Traits< E1, E2, QuaternionProduct< E1, E2 > >::ResultType CDPL::Math::operator* (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E , typename T >
std::enable_if< IsScalar< T >::value, typename Scalar2QuaternionBinary1Traits< E, T, ScalarMultiplication< typename E::ValueType, T > >::ResultType >::type CDPL::Math::operator* (const QuaternionExpression< E > &e, const T &t)
 
template<typename T , typename E >
std::enable_if< IsScalar< T >::value, typename Scalar1QuaternionBinary1Traits< T, E, ScalarMultiplication< T, typename E::ValueType > >::ResultType >::type CDPL::Math::operator* (const T &t, const QuaternionExpression< E > &e)
 
template<typename E1 , typename E2 >
Scalar3QuaternionTernaryTraits< E1, E2, typename QuaternionNorm2< E2 >::ResultType, QuaternionDivision< E1, E2, typename QuaternionNorm2< E2 >::ResultType > >::ResultType CDPL::Math::operator/ (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E , typename T >
std::enable_if< IsScalar< T >::value, typename Scalar2QuaternionBinary1Traits< E, T, ScalarDivision< typename E::ValueType, T > >::ResultType >::type CDPL::Math::operator/ (const QuaternionExpression< E > &e, const T &t)
 
template<typename T , typename E >
std::enable_if< IsScalar< T >::value, typename Scalar13QuaternionTernaryTraits< T, E, typename QuaternionNorm2< E >::ResultType, ScalarQuaternionDivision< T, E, typename QuaternionNorm2< E >::ResultType > >::ResultType >::type CDPL::Math::operator/ (const T &t, const QuaternionExpression< E > &e)
 
template<typename E1 , typename E2 >
QuaternionEquality< E1, E2 >::ResultType CDPL::Math::operator== (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
QuaternionEquality< E1, E2 >::ResultType CDPL::Math::operator!= (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E1 , typename E2 , typename T >
std::enable_if< std::is_arithmetic< T >::value, typename QuaternionToleranceEquality< E1, E2, T >::ResultType >::type CDPL::Math::equals (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2, const T &eps)
 
template<typename E1 , typename E2 >
QuaternionBinary1Traits< E1, E2, ScalarDivision< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::elemDiv (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E1 , typename E2 >
QuaternionBinary1Traits< E1, E2, ScalarMultiplication< typename E1::ValueType, typename E2::ValueType > >::ResultType CDPL::Math::elemProd (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2)
 
template<typename E >
E::ValueType CDPL::Math::real (const QuaternionExpression< E > &e)
 
template<typename E >
QuaternionUnary2Traits< E, QuaternionUnreal< E > >::ResultType CDPL::Math::unreal (const QuaternionExpression< E > &e)
 
template<typename E >
QuaternionUnary2Traits< E, QuaternionConjugate< E > >::ResultType CDPL::Math::conj (const QuaternionExpression< E > &e)
 
template<typename E >
Scalar2QuaternionBinary2Traits< E, typename QuaternionNorm2< E >::ResultType, QuaternionInverse< E, typename QuaternionNorm2< E >::ResultType > >::ResultType CDPL::Math::inv (const QuaternionExpression< E > &e)
 
template<typename E >
QuaternionNorm< E >::ResultType CDPL::Math::norm (const QuaternionExpression< E > &e)
 
template<typename E >
QuaternionNorm2< E >::ResultType CDPL::Math::norm2 (const QuaternionExpression< E > &e)
 
template<typename E >
QuaternionElementSum< E >::ResultType CDPL::Math::sum (const QuaternionExpression< E > &e)
 

Detailed Description

Definition of various quaternion expression types and operations.