27 #ifndef CDPL_MATH_QUATERNIONASSIGNMENT_HPP
28 #define CDPL_MATH_QUATERNIONASSIGNMENT_HPP
40 class QuaternionExpression;
42 template <
template <
typename T1,
typename T2>
class F,
typename Q,
typename E>
45 typedef F<typename Q::Reference, typename E::ValueType> FunctorType;
47 FunctorType::apply(q.getC1(), e().getC1());
48 FunctorType::apply(q.getC2(), e().getC2());
49 FunctorType::apply(q.getC3(), e().getC3());
50 FunctorType::apply(q.getC4(), e().getC4());
53 template <
template <
typename T1,
typename T2>
class F,
typename Q,
typename T>
56 typedef F<typename Q::Reference, T> FunctorType;
58 FunctorType::apply(q.getC1(), t);
59 FunctorType::apply(q.getC2(), t);
60 FunctorType::apply(q.getC3(), t);
61 FunctorType::apply(q.getC4(), t);
64 template <
typename Q,
typename E>
67 std::swap(q.getC1(), e().getC1());
68 std::swap(q.getC2(), e().getC2());
69 std::swap(q.getC3(), e().getC3());
70 std::swap(q.getC4(), e().getC4());
Definition: Expression.hpp:98
constexpr unsigned int T
Specifies Hydrogen (Tritium).
Definition: AtomType.hpp:67
constexpr unsigned int F
Specifies Fluorine.
Definition: AtomType.hpp:107
constexpr unsigned int Q
A generic type that covers any element except hydrogen and carbon.
Definition: AtomType.hpp:647
constexpr unsigned int E
Specifies that the stereocenter has E configuration.
Definition: CIPDescriptor.hpp:96
void quaternionAssignScalar(Q &q, const T &t)
Definition: QuaternionAssignment.hpp:54
void quaternionSwap(Q &q, QuaternionExpression< E > &e)
Definition: QuaternionAssignment.hpp:65
void quaternionAssignQuaternion(Q &q, const QuaternionExpression< E > &e)
Definition: QuaternionAssignment.hpp:43
The namespace of the Chemical Data Processing Library.