Chemical Data Processing Library C++ API - Version 1.4.0
Public Types | Static Public Member Functions | List of all members
CDPL::Math::QuaternionDivision< Q1, Q2, T > Struct Template Reference

Per-component functor returning the quaternion division \( e_1 \cdot e_2^{-1} \) (n2 is the precomputed squared norm of e_2). More...

#include <Functional.hpp>

+ Inheritance diagram for CDPL::Math::QuaternionDivision< Q1, Q2, T >:

Public Types

typedef Scalar3QuaternionTernaryFunctor< Q1, Q2, T >::Argument3Type Argument3Type
 
typedef Scalar3QuaternionTernaryFunctor< Q1, Q2, T >::ResultType ResultType
 
- Public Types inherited from CDPL::Math::Scalar3QuaternionTernaryFunctor< Q1, Q2, T >
typedef CommonType< typename CommonType< typename Q1::ValueType, typename Q2::ValueType >::Type, T >::Type ResultType
 The component result type (common type of the two quaternion element types and the scalar). More...
 
typedef const T & Argument3Type
 The third (scalar) argument type. More...
 

Static Public Member Functions

template<typename E1 , typename E2 >
static ResultType applyC1 (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2, Argument3Type n2)
 Returns the C1 component of the quaternion division \( e_1 \cdot e_2^{-1} \). More...
 
template<typename E1 , typename E2 >
static ResultType applyC2 (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2, Argument3Type n2)
 Returns the C2 component of the quaternion division \( e_1 \cdot e_2^{-1} \). More...
 
template<typename E1 , typename E2 >
static ResultType applyC3 (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2, Argument3Type n2)
 Returns the C3 component of the quaternion division \( e_1 \cdot e_2^{-1} \). More...
 
template<typename E1 , typename E2 >
static ResultType applyC4 (const QuaternionExpression< E1 > &e1, const QuaternionExpression< E2 > &e2, Argument3Type n2)
 Returns the C4 component of the quaternion division \( e_1 \cdot e_2^{-1} \). More...
 

Detailed Description

template<typename Q1, typename Q2, typename T>
struct CDPL::Math::QuaternionDivision< Q1, Q2, T >

Per-component functor returning the quaternion division \( e_1 \cdot e_2^{-1} \) (n2 is the precomputed squared norm of e_2).

Template Parameters
Q1The first quaternion expression type.
Q2The second quaternion expression type.
TThe precomputed-norm scalar type.

Member Typedef Documentation

◆ Argument3Type

template<typename Q1 , typename Q2 , typename T >
typedef Scalar3QuaternionTernaryFunctor<Q1, Q2, T>::Argument3Type CDPL::Math::QuaternionDivision< Q1, Q2, T >::Argument3Type

◆ ResultType

template<typename Q1 , typename Q2 , typename T >
typedef Scalar3QuaternionTernaryFunctor<Q1, Q2, T>::ResultType CDPL::Math::QuaternionDivision< Q1, Q2, T >::ResultType

Member Function Documentation

◆ applyC1()

template<typename Q1 , typename Q2 , typename T >
template<typename E1 , typename E2 >
static ResultType CDPL::Math::QuaternionDivision< Q1, Q2, T >::applyC1 ( const QuaternionExpression< E1 > &  e1,
const QuaternionExpression< E2 > &  e2,
Argument3Type  n2 
)
inlinestatic

Returns the C1 component of the quaternion division \( e_1 \cdot e_2^{-1} \).

Template Parameters
E1The first quaternion expression type.
E2The second quaternion expression type.
Parameters
e1The dividend quaternion expression.
e2The divisor quaternion expression.
n2The precomputed squared norm \( \|e_2\|^2 \).
Returns
The C1 component of \( e_1 \cdot e_2^{-1} \).

◆ applyC2()

template<typename Q1 , typename Q2 , typename T >
template<typename E1 , typename E2 >
static ResultType CDPL::Math::QuaternionDivision< Q1, Q2, T >::applyC2 ( const QuaternionExpression< E1 > &  e1,
const QuaternionExpression< E2 > &  e2,
Argument3Type  n2 
)
inlinestatic

Returns the C2 component of the quaternion division \( e_1 \cdot e_2^{-1} \).

Template Parameters
E1The first quaternion expression type.
E2The second quaternion expression type.
Parameters
e1The dividend quaternion expression.
e2The divisor quaternion expression.
n2The precomputed squared norm \( \|e_2\|^2 \).
Returns
The C2 component of \( e_1 \cdot e_2^{-1} \).

◆ applyC3()

template<typename Q1 , typename Q2 , typename T >
template<typename E1 , typename E2 >
static ResultType CDPL::Math::QuaternionDivision< Q1, Q2, T >::applyC3 ( const QuaternionExpression< E1 > &  e1,
const QuaternionExpression< E2 > &  e2,
Argument3Type  n2 
)
inlinestatic

Returns the C3 component of the quaternion division \( e_1 \cdot e_2^{-1} \).

Template Parameters
E1The first quaternion expression type.
E2The second quaternion expression type.
Parameters
e1The dividend quaternion expression.
e2The divisor quaternion expression.
n2The precomputed squared norm \( \|e_2\|^2 \).
Returns
The C3 component of \( e_1 \cdot e_2^{-1} \).

◆ applyC4()

template<typename Q1 , typename Q2 , typename T >
template<typename E1 , typename E2 >
static ResultType CDPL::Math::QuaternionDivision< Q1, Q2, T >::applyC4 ( const QuaternionExpression< E1 > &  e1,
const QuaternionExpression< E2 > &  e2,
Argument3Type  n2 
)
inlinestatic

Returns the C4 component of the quaternion division \( e_1 \cdot e_2^{-1} \).

Template Parameters
E1The first quaternion expression type.
E2The second quaternion expression type.
Parameters
e1The dividend quaternion expression.
e2The divisor quaternion expression.
n2The precomputed squared norm \( \|e_2\|^2 \).
Returns
The C4 component of \( e_1 \cdot e_2^{-1} \).

The documentation for this struct was generated from the following file: