27 #ifndef CDPL_MATH_QUATERNIONEXPRESSION_HPP
28 #define CDPL_MATH_QUATERNIONEXPRESSION_HPP
30 #include <type_traits>
44 template <
typename E,
typename F>
49 typedef F FunctorType;
51 typedef typename E::ConstClosureType ExpressionClosureType;
65 return FunctorType::apply(expr.getC1());
70 return FunctorType::apply(expr.getC2());
75 return FunctorType::apply(expr.getC3());
80 return FunctorType::apply(expr.getC4());
84 ExpressionClosureType expr;
87 template <
typename E,
typename F>
95 template <
typename E,
typename F>
100 typedef F FunctorType;
102 typedef typename E::ConstClosureType ExpressionClosureType;
116 return FunctorType::applyC1(expr);
121 return FunctorType::applyC2(expr);
126 return FunctorType::applyC3(expr);
131 return FunctorType::applyC4(expr);
135 ExpressionClosureType expr;
138 template <
typename E,
typename F>
146 template <
typename E1,
typename E2,
typename F>
151 typedef F FunctorType;
152 typedef E1 Expression1Type;
153 typedef E2 Expression2Type;
154 typedef typename E1::ConstClosureType Expression1ClosureType;
155 typedef typename E2::ConstClosureType Expression2ClosureType;
165 expr1(e1), expr2(e2) {}
169 return FunctorType::apply(expr1.getC1(), expr2.getC1());
174 return FunctorType::apply(expr1.getC2(), expr2.getC2());
179 return FunctorType::apply(expr1.getC3(), expr2.getC3());
184 return FunctorType::apply(expr1.getC4(), expr2.getC4());
188 Expression1ClosureType expr1;
189 Expression2ClosureType expr2;
192 template <
typename E1,
typename E2,
typename F>
200 template <
typename E1,
typename E2,
typename F>
205 typedef F FunctorType;
206 typedef E1 Expression1Type;
207 typedef E2 Expression2Type;
208 typedef typename E1::ConstClosureType Expression1ClosureType;
209 typedef typename E2::ConstClosureType Expression2ClosureType;
219 expr1(e1), expr2(e2) {}
223 return FunctorType::applyC1(expr1, expr2);
228 return FunctorType::applyC2(expr1, expr2);
233 return FunctorType::applyC3(expr1, expr2);
238 return FunctorType::applyC4(expr1, expr2);
242 Expression1ClosureType expr1;
243 Expression2ClosureType expr2;
246 template <
typename E1,
typename E2,
typename F>
254 template <
typename E1,
typename E2,
typename F>
259 typedef F FunctorType;
260 typedef E1 Expression1Type;
261 typedef E2 Expression2Type;
262 typedef const E1 Expression1ClosureType;
263 typedef typename E2::ConstClosureType Expression2ClosureType;
273 expr1(e1), expr2(e2) {}
277 return FunctorType::apply(expr1, expr2.getC1());
282 return FunctorType::apply(expr1, expr2.getC2());
287 return FunctorType::apply(expr1, expr2.getC3());
292 return FunctorType::apply(expr1, expr2.getC4());
296 Expression1ClosureType expr1;
297 Expression2ClosureType expr2;
300 template <
typename E1,
typename E2,
typename F>
308 template <
typename E1,
typename E2,
typename F>
313 typedef F FunctorType;
314 typedef E1 Expression1Type;
315 typedef E2 Expression2Type;
316 typedef const E1 Expression1ClosureType;
317 typedef typename E2::ConstClosureType Expression2ClosureType;
327 expr1(e1), expr2(e2) {}
331 return FunctorType::applyC1(expr1, expr2);
336 return FunctorType::applyC2(expr1, expr2);
341 return FunctorType::applyC3(expr1, expr2);
346 return FunctorType::applyC4(expr1, expr2);
350 Expression1ClosureType expr1;
351 Expression2ClosureType expr2;
354 template <
typename E1,
typename E2,
typename F>
362 template <
typename E1,
typename E2,
typename F>
367 typedef F FunctorType;
368 typedef E1 Expression1Type;
369 typedef E2 Expression2Type;
370 typedef typename E1::ConstClosureType Expression1ClosureType;
371 typedef const E2 Expression2ClosureType;
381 expr1(e1), expr2(e2) {}
385 return FunctorType::apply(expr1.getC1(), expr2);
390 return FunctorType::apply(expr1.getC2(), expr2);
395 return FunctorType::apply(expr1.getC3(), expr2);
400 return FunctorType::apply(expr1.getC4(), expr2);
404 Expression1ClosureType expr1;
405 Expression2ClosureType expr2;
408 template <
typename E1,
typename E2,
typename F>
416 template <
typename E1,
typename E2,
typename F>
421 typedef F FunctorType;
422 typedef E1 Expression1Type;
423 typedef E2 Expression2Type;
424 typedef typename E1::ConstClosureType Expression1ClosureType;
425 typedef const E2 Expression2ClosureType;
435 expr1(e1), expr2(e2) {}
439 return FunctorType::applyC1(expr1, expr2);
444 return FunctorType::applyC2(expr1, expr2);
449 return FunctorType::applyC3(expr1, expr2);
454 return FunctorType::applyC4(expr1, expr2);
458 Expression1ClosureType expr1;
459 Expression2ClosureType expr2;
462 template <
typename E1,
typename E2,
typename F>
470 template <
typename E1,
typename E2,
typename E3,
typename F>
475 typedef F FunctorType;
476 typedef E1 Expression1Type;
477 typedef E2 Expression2Type;
478 typedef E3 Expression3Type;
479 typedef typename E1::ConstClosureType Expression1ClosureType;
480 typedef typename E2::ConstClosureType Expression2ClosureType;
481 typedef const E3 Expression3ClosureType;
491 expr1(e1), expr2(e2), expr3(e3) {}
495 return FunctorType::applyC1(expr1, expr2, expr3);
500 return FunctorType::applyC2(expr1, expr2, expr3);
505 return FunctorType::applyC3(expr1, expr2, expr3);
510 return FunctorType::applyC4(expr1, expr2, expr3);
514 Expression1ClosureType expr1;
515 Expression2ClosureType expr2;
516 Expression3ClosureType expr3;
519 template <
typename E1,
typename E2,
typename E3,
typename F>
527 template <
typename E1,
typename E2,
typename E3,
typename F>
532 typedef F FunctorType;
533 typedef E1 Expression1Type;
534 typedef E2 Expression2Type;
535 typedef E3 Expression3Type;
536 typedef const E1 Expression1ClosureType;
537 typedef typename E2::ConstClosureType Expression2ClosureType;
538 typedef const E3 Expression3ClosureType;
548 expr1(e1), expr2(e2), expr3(e3) {}
552 return FunctorType::applyC1(expr1, expr2, expr3);
557 return FunctorType::applyC2(expr1, expr2, expr3);
562 return FunctorType::applyC3(expr1, expr2, expr3);
567 return FunctorType::applyC4(expr1, expr2, expr3);
571 Expression1ClosureType expr1;
572 Expression2ClosureType expr2;
573 Expression3ClosureType expr3;
576 template <
typename E1,
typename E2,
typename E3,
typename F>
584 template <
typename E>
590 return ExpressionType(e());
593 template <
typename E>
600 template <
typename E1,
typename E2>
601 typename QuaternionBinary1Traits<E1, E2, ScalarAddition<typename E1::ValueType, typename E2::ValueType> >::ResultType
607 return ExpressionType(e1(), e2());
610 template <
typename E,
typename T>
611 typename std::enable_if<IsScalar<T>::value,
typename Scalar2QuaternionBinary2Traits<E, T, Scalar2QuaternionAddition<E, T> >::ResultType>::type
616 return ExpressionType(e(), t);
619 template <
typename T,
typename E>
620 typename std::enable_if<IsScalar<T>::value,
typename Scalar1QuaternionBinary2Traits<T, E, Scalar1QuaternionAddition<T, E> >::ResultType>::type
625 return ExpressionType(t, e());
628 template <
typename E1,
typename E2>
629 typename QuaternionBinary1Traits<E1, E2, ScalarSubtraction<typename E1::ValueType, typename E2::ValueType> >::ResultType
635 return ExpressionType(e1(), e2());
638 template <
typename E,
typename T>
639 typename std::enable_if<IsScalar<T>::value,
typename Scalar2QuaternionBinary2Traits<E, T, Scalar2QuaternionSubtraction<E, T> >::ResultType>::type
644 return ExpressionType(e(), t);
647 template <
typename T,
typename E>
648 typename std::enable_if<IsScalar<T>::value,
typename Scalar1QuaternionBinary2Traits<T, E, Scalar1QuaternionSubtraction<T, E> >::ResultType>::type
653 return ExpressionType(t, e());
656 template <
typename E1,
typename E2>
657 typename QuaternionBinary2Traits<E1, E2, QuaternionProduct<E1, E2> >::ResultType
662 return ExpressionType(e1(), e2());
665 template <
typename E,
typename T>
666 typename std::enable_if<IsScalar<T>::value,
typename Scalar2QuaternionBinary1Traits<E, T, ScalarMultiplication<typename E::ValueType, T> >::ResultType>::type
672 return ExpressionType(e(), t);
675 template <
typename T,
typename E>
676 typename std::enable_if<IsScalar<T>::value,
typename Scalar1QuaternionBinary1Traits<T, E, ScalarMultiplication<T, typename E::ValueType> >::ResultType>::type
682 return ExpressionType(t, e());
685 template <
typename E1,
typename E2>
693 return ExpressionType(e1(), e2(),
norm2(e2));
696 template <
typename E,
typename T>
697 typename std::enable_if<IsScalar<T>::value,
typename Scalar2QuaternionBinary1Traits<E, T, ScalarDivision<typename E::ValueType, T> >::ResultType>::type
703 return ExpressionType(e(), t);
706 template <
typename T,
typename E>
707 typename std::enable_if<IsScalar<T>::value,
715 return ExpressionType(t, e(),
norm2(e));
718 template <
typename E1,
typename E2>
725 template <
typename E1,
typename E2>
732 template <
typename E1,
typename E2,
typename T>
739 template <
typename E1,
typename E2>
740 typename QuaternionBinary1Traits<E1, E2, ScalarDivision<typename E1::ValueType, typename E2::ValueType> >::ResultType
746 return ExpressionType(e1(), e2());
749 template <
typename E1,
typename E2>
750 typename QuaternionBinary1Traits<E1, E2, ScalarMultiplication<typename E1::ValueType, typename E2::ValueType> >::ResultType
756 return ExpressionType(e1(), e2());
759 template <
typename E>
760 typename E::ValueType
766 template <
typename E>
767 typename QuaternionUnary2Traits<E, QuaternionUnreal<E> >::ResultType
772 return ExpressionType(e());
775 template <
typename E>
776 typename QuaternionUnary2Traits<E, QuaternionConjugate<E> >::ResultType
781 return ExpressionType(e());
784 template <
typename E>
792 return ExpressionType(e(),
norm2(e));
795 template <
typename E>
802 template <
typename E>
809 template <
typename E>
Definition of basic expression types.
Definition of various functors.
Definition of type traits.
E ExpressionType
Definition: Expression.hpp:42
Definition: QuaternionExpression.hpp:148
ConstReference getC1() const
Definition: QuaternionExpression.hpp:167
ConstReference getC4() const
Definition: QuaternionExpression.hpp:182
const ValueType Reference
Definition: QuaternionExpression.hpp:160
const ValueType ConstReference
Definition: QuaternionExpression.hpp:159
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:161
F::ResultType ValueType
Definition: QuaternionExpression.hpp:158
QuaternionBinary1(const Expression1Type &e1, const Expression2Type &e2)
Definition: QuaternionExpression.hpp:164
SelfType ClosureType
Definition: QuaternionExpression.hpp:162
ConstReference getC3() const
Definition: QuaternionExpression.hpp:177
ConstReference getC2() const
Definition: QuaternionExpression.hpp:172
Definition: QuaternionExpression.hpp:202
const ValueType Reference
Definition: QuaternionExpression.hpp:214
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:215
QuaternionBinary2(const Expression1Type &e1, const Expression2Type &e2)
Definition: QuaternionExpression.hpp:218
ConstReference getC4() const
Definition: QuaternionExpression.hpp:236
SelfType ClosureType
Definition: QuaternionExpression.hpp:216
const ValueType ConstReference
Definition: QuaternionExpression.hpp:213
ConstReference getC1() const
Definition: QuaternionExpression.hpp:221
ConstReference getC3() const
Definition: QuaternionExpression.hpp:231
ConstReference getC2() const
Definition: QuaternionExpression.hpp:226
F::ResultType ValueType
Definition: QuaternionExpression.hpp:212
Definition: Expression.hpp:98
Definition: QuaternionExpression.hpp:46
ConstReference getC4() const
Definition: QuaternionExpression.hpp:78
F::ResultType ValueType
Definition: QuaternionExpression.hpp:54
ConstReference getC1() const
Definition: QuaternionExpression.hpp:63
ConstReference getC3() const
Definition: QuaternionExpression.hpp:73
const ValueType ConstReference
Definition: QuaternionExpression.hpp:55
ConstReference getC2() const
Definition: QuaternionExpression.hpp:68
const ValueType Reference
Definition: QuaternionExpression.hpp:56
SelfType ClosureType
Definition: QuaternionExpression.hpp:58
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:57
QuaternionUnary1(const ExpressionType &e)
Definition: QuaternionExpression.hpp:60
Definition: QuaternionExpression.hpp:97
F::ResultType ValueType
Definition: QuaternionExpression.hpp:105
ConstReference getC1() const
Definition: QuaternionExpression.hpp:114
SelfType ClosureType
Definition: QuaternionExpression.hpp:109
ConstReference getC4() const
Definition: QuaternionExpression.hpp:129
QuaternionUnary2(const ExpressionType &e)
Definition: QuaternionExpression.hpp:111
const ValueType ConstReference
Definition: QuaternionExpression.hpp:106
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:108
const ValueType Reference
Definition: QuaternionExpression.hpp:107
ConstReference getC3() const
Definition: QuaternionExpression.hpp:124
ConstReference getC2() const
Definition: QuaternionExpression.hpp:119
Definition: QuaternionExpression.hpp:529
Scalar13QuaternionTernary(const Expression1Type &e1, const Expression2Type &e2, const Expression3Type &e3)
Definition: QuaternionExpression.hpp:547
ConstReference getC3() const
Definition: QuaternionExpression.hpp:560
ConstReference getC4() const
Definition: QuaternionExpression.hpp:565
ConstReference getC1() const
Definition: QuaternionExpression.hpp:550
SelfType ClosureType
Definition: QuaternionExpression.hpp:545
const ValueType Reference
Definition: QuaternionExpression.hpp:543
F::ResultType ValueType
Definition: QuaternionExpression.hpp:541
const ValueType ConstReference
Definition: QuaternionExpression.hpp:542
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:544
ConstReference getC2() const
Definition: QuaternionExpression.hpp:555
Definition: QuaternionExpression.hpp:256
ConstReference getC4() const
Definition: QuaternionExpression.hpp:290
Scalar1QuaternionBinary1(const Expression1Type &e1, const Expression2Type &e2)
Definition: QuaternionExpression.hpp:272
const ValueType ConstReference
Definition: QuaternionExpression.hpp:267
const ValueType Reference
Definition: QuaternionExpression.hpp:268
ConstReference getC2() const
Definition: QuaternionExpression.hpp:280
ConstReference getC3() const
Definition: QuaternionExpression.hpp:285
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:269
SelfType ClosureType
Definition: QuaternionExpression.hpp:270
ConstReference getC1() const
Definition: QuaternionExpression.hpp:275
F::ResultType ValueType
Definition: QuaternionExpression.hpp:266
Definition: QuaternionExpression.hpp:310
ConstReference getC3() const
Definition: QuaternionExpression.hpp:339
const ValueType ConstReference
Definition: QuaternionExpression.hpp:321
F::ResultType ValueType
Definition: QuaternionExpression.hpp:320
SelfType ClosureType
Definition: QuaternionExpression.hpp:324
ConstReference getC2() const
Definition: QuaternionExpression.hpp:334
ConstReference getC4() const
Definition: QuaternionExpression.hpp:344
const ValueType Reference
Definition: QuaternionExpression.hpp:322
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:323
ConstReference getC1() const
Definition: QuaternionExpression.hpp:329
Scalar1QuaternionBinary2(const Expression1Type &e1, const Expression2Type &e2)
Definition: QuaternionExpression.hpp:326
Definition: QuaternionExpression.hpp:364
ConstReference getC4() const
Definition: QuaternionExpression.hpp:398
const ValueType Reference
Definition: QuaternionExpression.hpp:376
F::ResultType ValueType
Definition: QuaternionExpression.hpp:374
ConstReference getC3() const
Definition: QuaternionExpression.hpp:393
const ValueType ConstReference
Definition: QuaternionExpression.hpp:375
Scalar2QuaternionBinary1(const Expression1Type &e1, const Expression2Type &e2)
Definition: QuaternionExpression.hpp:380
SelfType ClosureType
Definition: QuaternionExpression.hpp:378
ConstReference getC2() const
Definition: QuaternionExpression.hpp:388
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:377
ConstReference getC1() const
Definition: QuaternionExpression.hpp:383
Definition: QuaternionExpression.hpp:418
ConstReference getC2() const
Definition: QuaternionExpression.hpp:442
SelfType ClosureType
Definition: QuaternionExpression.hpp:432
Scalar2QuaternionBinary2(const Expression1Type &e1, const Expression2Type &e2)
Definition: QuaternionExpression.hpp:434
const ValueType Reference
Definition: QuaternionExpression.hpp:430
ConstReference getC3() const
Definition: QuaternionExpression.hpp:447
ConstReference getC4() const
Definition: QuaternionExpression.hpp:452
const ValueType ConstReference
Definition: QuaternionExpression.hpp:429
F::ResultType ValueType
Definition: QuaternionExpression.hpp:428
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:431
ConstReference getC1() const
Definition: QuaternionExpression.hpp:437
Definition: QuaternionExpression.hpp:472
ConstReference getC4() const
Definition: QuaternionExpression.hpp:508
ConstReference getC1() const
Definition: QuaternionExpression.hpp:493
ConstReference getC3() const
Definition: QuaternionExpression.hpp:503
F::ResultType ValueType
Definition: QuaternionExpression.hpp:484
const SelfType ConstClosureType
Definition: QuaternionExpression.hpp:487
Scalar3QuaternionTernary(const Expression1Type &e1, const Expression2Type &e2, const Expression3Type &e3)
Definition: QuaternionExpression.hpp:490
SelfType ClosureType
Definition: QuaternionExpression.hpp:488
ConstReference getC2() const
Definition: QuaternionExpression.hpp:498
const ValueType ConstReference
Definition: QuaternionExpression.hpp:485
const ValueType Reference
Definition: QuaternionExpression.hpp:486
constexpr unsigned int T
Specifies Hydrogen (Tritium).
Definition: AtomType.hpp:67
constexpr unsigned int F
Specifies Fluorine.
Definition: AtomType.hpp:107
constexpr unsigned int E
Specifies that the stereocenter has E configuration.
Definition: CIPDescriptor.hpp:96
GridBinary1Traits< E1, E2, ScalarMultiplication< typename E1::ValueType, typename E2::ValueType > >::ResultType elemProd(const GridExpression< E1 > &e1, const GridExpression< E2 > &e2)
Definition: GridExpression.hpp:406
GridUnaryTraits< E, ScalarConjugation< typename E::ValueType > >::ResultType conj(const GridExpression< E > &e)
Definition: GridExpression.hpp:360
std::enable_if< std::is_arithmetic< T >::value, typename GridToleranceEquality< E1, E2, T >::ResultType >::type equals(const GridExpression< E1 > &e1, const GridExpression< E2 > &e2, const T &eps)
Definition: GridExpression.hpp:353
QuaternionUnary2Traits< E, QuaternionUnreal< E > >::ResultType unreal(const QuaternionExpression< E > &e)
Definition: QuaternionExpression.hpp:768
std::enable_if< IsScalar< T >::value, typename Scalar2GridBinaryTraits< E, T, ScalarDivision< typename E::ValueType, T > >::ResultType >::type operator/(const GridExpression< E > &e, const T &t)
Definition: GridExpression.hpp:329
GridUnaryTraits< E, ScalarReal< typename E::ValueType > >::ResultType real(const GridExpression< E > &e)
Definition: GridExpression.hpp:378
QuaternionNorm2< E >::ResultType norm2(const QuaternionExpression< E > &e)
Definition: QuaternionExpression.hpp:804
GridEquality< E1, E2 >::ResultType operator!=(const GridExpression< E1 > &e1, const GridExpression< E2 > &e2)
Definition: GridExpression.hpp:346
QuaternionNorm< E >::ResultType norm(const QuaternionExpression< E > &e)
Definition: QuaternionExpression.hpp:797
GridEquality< E1, E2 >::ResultType operator==(const GridExpression< E1 > &e1, const GridExpression< E2 > &e2)
Definition: GridExpression.hpp:339
std::enable_if< IsScalar< T >::value, typename Scalar2GridBinaryTraits< E, T, ScalarMultiplication< typename E::ValueType, T > >::ResultType >::type operator*(const GridExpression< E > &e, const T &t)
Definition: GridExpression.hpp:309
GridBinary1Traits< E1, E2, ScalarDivision< typename E1::ValueType, typename E2::ValueType > >::ResultType elemDiv(const GridExpression< E1 > &e1, const GridExpression< E2 > &e2)
Definition: GridExpression.hpp:396
GridUnaryTraits< E, ScalarNegation< typename E::ValueType > >::ResultType operator-(const GridExpression< E > &e)
Definition: GridExpression.hpp:272
GridElementSum< E >::ResultType sum(const GridExpression< E > &e)
Definition: GridExpression.hpp:416
const E & operator+(const GridExpression< E > &e)
Definition: GridExpression.hpp:282
Scalar2QuaternionBinary2Traits< E, typename QuaternionNorm2< E >::ResultType, QuaternionInverse< E, typename QuaternionNorm2< E >::ResultType > >::ResultType inv(const QuaternionExpression< E > &e)
Definition: QuaternionExpression.hpp:787
The namespace of the Chemical Data Processing Library.
Definition: QuaternionExpression.hpp:194
QuaternionBinary1< E1, E2, F > ExpressionType
Definition: QuaternionExpression.hpp:196
ExpressionType ResultType
Definition: QuaternionExpression.hpp:197
Definition: QuaternionExpression.hpp:248
QuaternionBinary2< E1, E2, F > ExpressionType
Definition: QuaternionExpression.hpp:250
ExpressionType ResultType
Definition: QuaternionExpression.hpp:251
Definition: Functional.hpp:1353
Scalar3QuaternionTernaryFunctor< Q1, Q2, T >::ResultType ResultType
Definition: Functional.hpp:1356
QuaternionScalarUnaryFunctor< Q >::ResultType ResultType
Definition: Functional.hpp:1001
static ResultType apply(const QuaternionExpression< Q > &e)
Definition: Functional.hpp:1003
static ResultType apply(const QuaternionExpression< Q1 > &e1, const QuaternionExpression< Q2 > &e2)
Definition: Functional.hpp:957
QuaternionBooleanBinaryFunctor< Q1, Q2 >::ResultType ResultType
Definition: Functional.hpp:955
Definition: Functional.hpp:1271
Scalar2QuaternionBinaryFunctor< Q, T >::ResultType ResultType
Definition: Functional.hpp:1274
static ResultType apply(const QuaternionExpression< Q > &e)
Definition: Functional.hpp:1045
QuaternionScalarRealUnaryFunctor< Q >::ResultType ResultType
Definition: Functional.hpp:1043
QuaternionScalarRealUnaryFunctor< Q >::ResultType ResultType
Definition: Functional.hpp:1024
static ResultType apply(const QuaternionExpression< Q > &e)
Definition: Functional.hpp:1026
Scalar3QuaternionBooleanTernaryFunctor< Q1, Q2, T >::ResultType ResultType
Definition: Functional.hpp:977
static ResultType apply(const QuaternionExpression< Q1 > &e1, const QuaternionExpression< Q2 > &e2, Argument3Type epsilon)
Definition: Functional.hpp:980
Definition: QuaternionExpression.hpp:89
QuaternionUnary1< E, F > ExpressionType
Definition: QuaternionExpression.hpp:91
ExpressionType ResultType
Definition: QuaternionExpression.hpp:92
Definition: QuaternionExpression.hpp:140
QuaternionUnary2< E, F > ExpressionType
Definition: QuaternionExpression.hpp:142
ExpressionType ResultType
Definition: QuaternionExpression.hpp:143
Definition: QuaternionExpression.hpp:578
ExpressionType ResultType
Definition: QuaternionExpression.hpp:581
Scalar13QuaternionTernary< E1, E2, E3, F > ExpressionType
Definition: QuaternionExpression.hpp:580
Definition: QuaternionExpression.hpp:302
Scalar1QuaternionBinary1< E1, E2, F > ExpressionType
Definition: QuaternionExpression.hpp:304
ExpressionType ResultType
Definition: QuaternionExpression.hpp:305
Definition: QuaternionExpression.hpp:356
Scalar1QuaternionBinary2< E1, E2, F > ExpressionType
Definition: QuaternionExpression.hpp:358
ExpressionType ResultType
Definition: QuaternionExpression.hpp:359
Definition: QuaternionExpression.hpp:410
Scalar2QuaternionBinary1< E1, E2, F > ExpressionType
Definition: QuaternionExpression.hpp:412
ExpressionType ResultType
Definition: QuaternionExpression.hpp:413
Definition: QuaternionExpression.hpp:464
Scalar2QuaternionBinary2< E1, E2, F > ExpressionType
Definition: QuaternionExpression.hpp:466
ExpressionType ResultType
Definition: QuaternionExpression.hpp:467
Definition: QuaternionExpression.hpp:521
Scalar3QuaternionTernary< E1, E2, E3, F > ExpressionType
Definition: QuaternionExpression.hpp:523
ExpressionType ResultType
Definition: QuaternionExpression.hpp:524
Definition: Functional.hpp:211
Definition: Functional.hpp:253
Definition: Functional.hpp:239
Definition: Functional.hpp:1398
Scalar13QuaternionTernaryFunctor< T1, Q, T2 >::ResultType ResultType
Definition: Functional.hpp:1402
Definition: Functional.hpp:225