#include <quaternion_expr.h>
Public Types | |
enum | { array_size = 4 } |
Record result size as an enum. More... | |
enum | { W = order_type::W, X = order_type::X, Y = order_type::Y, Z = order_type::Z } |
Localize the ordering as an enum. More... | |
typedef cml::et::not_assignable_tag | assignable_tag |
typedef GetCheckedSize< LeftT, RightT, size_tag > | checked_size |
typedef binary_expression | expr_ary |
typedef expr_type | expr_const_reference |
typedef BinaryQuaternionOp < LeftT, RightT, OpT > | expr_type |
typedef vector_type::subvector_type | imaginary_type |
typedef left_traits::const_reference | left_reference |
typedef left_traits::result_type | left_result |
typedef ExprTraits< LeftT > | left_traits |
typedef result_type::order_type | order_type |
typedef quaternion_result_tag | result_tag |
typedef QuaternionPromote < left_result, right_result > ::type | result_type |
typedef right_traits::const_reference | right_reference |
typedef right_traits::result_type | right_result |
typedef ExprTraits< RightT > | right_traits |
typedef result_type::size_tag | size_tag |
typedef result_type::temporary_type | temporary_type |
typedef OpT::value_type | value_type |
typedef result_type::vector_type | vector_type |
Public Member Functions | |
BinaryQuaternionOp (const expr_type &e) | |
Copy constructor. | |
BinaryQuaternionOp (left_reference left, right_reference right) | |
Construct from the two subexpressions. | |
temporary_type | exp (value_type tolerance=epsilon< value_type >::placeholder()) const |
Return the result of the exponential function as applied to this expression. | |
imaginary_type | imaginary () const |
Return the vector part of the expression. | |
left_reference | left_expression () const |
Return reference to left expression. | |
value_type | length () const |
Return the quaternion length. | |
value_type | length_squared () const |
Return square of the quaternion length. | |
temporary_type | log (value_type tolerance=epsilon< value_type >::placeholder()) const |
Return the log of this expression. | |
value_type | norm () const |
Return the Cayley norm of the expression. | |
temporary_type | normalize () const |
Return the result as a normalized quaternion. | |
value_type | operator[] (size_t i) const |
Compute value at index i of the result quaternion. | |
value_type | real () const |
Return the real part of the expression. | |
right_reference | right_expression () const |
Return reference to right expression. | |
size_t | size () const |
Return the size of the quaternion result. | |
Protected Attributes | |
left_reference | m_left |
right_reference | m_right |
Private Member Functions | |
expr_type & | operator= (const expr_type &) |
Private Attributes | |
checked_size::check_type | _dummy |
The operator's operator() method must take exactly two arguments.
Definition at line 379 of file quaternion_expr.h.
typedef cml::et::not_assignable_tag cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::assignable_tag |
Definition at line 410 of file quaternion_expr.h.
typedef GetCheckedSize<LeftT,RightT,size_tag> cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::checked_size |
Definition at line 425 of file quaternion_expr.h.
typedef binary_expression cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::expr_ary |
Definition at line 386 of file quaternion_expr.h.
typedef expr_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::expr_const_reference |
Definition at line 389 of file quaternion_expr.h.
typedef BinaryQuaternionOp<LeftT,RightT,OpT> cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::expr_type |
Definition at line 383 of file quaternion_expr.h.
typedef vector_type::subvector_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::imaginary_type |
Definition at line 419 of file quaternion_expr.h.
typedef left_traits::const_reference cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::left_reference |
Definition at line 399 of file quaternion_expr.h.
typedef left_traits::result_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::left_result |
Definition at line 403 of file quaternion_expr.h.
typedef ExprTraits<LeftT> cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::left_traits |
Definition at line 395 of file quaternion_expr.h.
typedef result_type::order_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::order_type |
Definition at line 422 of file quaternion_expr.h.
typedef quaternion_result_tag cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::result_tag |
Definition at line 392 of file quaternion_expr.h.
typedef QuaternionPromote<left_result,right_result>::type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::result_type |
Definition at line 406 of file quaternion_expr.h.
typedef right_traits::const_reference cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::right_reference |
Definition at line 400 of file quaternion_expr.h.
typedef right_traits::result_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::right_result |
Definition at line 404 of file quaternion_expr.h.
typedef ExprTraits<RightT> cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::right_traits |
Definition at line 396 of file quaternion_expr.h.
typedef result_type::size_tag cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::size_tag |
Definition at line 407 of file quaternion_expr.h.
typedef result_type::temporary_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::temporary_type |
Definition at line 413 of file quaternion_expr.h.
typedef OpT::value_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::value_type |
Definition at line 391 of file quaternion_expr.h.
typedef result_type::vector_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::vector_type |
Definition at line 416 of file quaternion_expr.h.
anonymous enum |
anonymous enum |
cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::BinaryQuaternionOp | ( | left_reference | left, | |
right_reference | right | |||
) | [inline, explicit] |
cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::BinaryQuaternionOp | ( | const expr_type & | e | ) | [inline] |
temporary_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::exp | ( | value_type | tolerance = epsilon<value_type>::placeholder() |
) | const [inline] |
Return the result of the exponential function as applied to this expression.
Definition at line 497 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::imaginary(), and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::length().
imaginary_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::imaginary | ( | ) | const [inline] |
Return the vector part of the expression.
Definition at line 450 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::X, cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::Y, and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::Z.
Referenced by cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::exp(), and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::log().
left_reference cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::left_expression | ( | ) | const [inline] |
Return reference to left expression.
Definition at line 540 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_left.
value_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::length | ( | ) | const [inline] |
Return the quaternion length.
Definition at line 469 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::length_squared().
Referenced by cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::exp().
value_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::length_squared | ( | ) | const [inline] |
Return square of the quaternion length.
Definition at line 462 of file quaternion_expr.h.
References cml::dot().
Referenced by cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::length(), and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::norm().
temporary_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::log | ( | value_type | tolerance = epsilon<value_type>::placeholder() |
) | const [inline] |
Return the log of this expression.
Definition at line 480 of file quaternion_expr.h.
References cml::acos_safe(), cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::imaginary(), and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::real().
value_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::norm | ( | ) | const [inline] |
Return the Cayley norm of the expression.
Definition at line 457 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::length_squared().
temporary_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::normalize | ( | ) | const [inline] |
expr_type& cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::operator= | ( | const expr_type & | ) | [private] |
value_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::operator[] | ( | size_t | i | ) | const [inline] |
Compute value at index i of the result quaternion.
Definition at line 511 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_left, and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_right.
value_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::real | ( | ) | const [inline] |
Return the real part of the expression.
Definition at line 445 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::W.
Referenced by cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::log().
right_reference cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::right_expression | ( | ) | const [inline] |
Return reference to right expression.
Definition at line 543 of file quaternion_expr.h.
References cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_right.
size_t cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::size | ( | ) | const [inline] |
Return the size of the quaternion result.
std::invalid_argument | if the expressions do not have the same size. |
Definition at line 529 of file quaternion_expr.h.
References cml::et::CheckedSize(), cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_left, and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_right.
Referenced by cml::et::ExprTraits< BinaryQuaternionOp< LeftT, RightT, OpT > >::size().
checked_size::check_type cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::_dummy [private] |
Definition at line 566 of file quaternion_expr.h.
left_reference cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_left [protected] |
Definition at line 559 of file quaternion_expr.h.
Referenced by cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::left_expression(), cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::operator[](), and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::size().
right_reference cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::m_right [protected] |
Definition at line 560 of file quaternion_expr.h.
Referenced by cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::operator[](), cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::right_expression(), and cml::et::BinaryQuaternionOp< LeftT, RightT, OpT >::size().