#include <vector_expr.h>
Public Types | |
enum | { array_size = result_type::array_size } |
Record result size as an enum (if applicable). 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 BinaryVectorOp< LeftT, RightT, OpT > | expr_type |
typedef left_traits::const_reference | left_reference |
typedef left_traits::result_type | left_result |
typedef ExprTraits< LeftT > | left_traits |
typedef vector_result_tag | result_tag |
typedef VectorPromote < 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 |
Public Member Functions | |
BinaryVectorOp (const expr_type &e) | |
Copy constructor. | |
BinaryVectorOp (left_reference left, right_reference right) | |
Construct from the two subexpressions. | |
left_reference | left_expression () const |
Return reference to left expression. | |
value_type | length () const |
Return the length. | |
value_type | length_squared () const |
Return square of the length. | |
result_type | normalize () const |
Return the result as a normalized vector. | |
value_type | operator[] (size_t i) const |
Compute value at index i of the result vector. | |
right_reference | right_expression () const |
Return reference to right expression. | |
size_t | size () const |
Return the size of the vector 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 277 of file vector_expr.h.
typedef cml::et::not_assignable_tag cml::et::BinaryVectorOp< LeftT, RightT, OpT >::assignable_tag |
Definition at line 307 of file vector_expr.h.
typedef GetCheckedSize<LeftT,RightT,size_tag> cml::et::BinaryVectorOp< LeftT, RightT, OpT >::checked_size |
Definition at line 313 of file vector_expr.h.
typedef binary_expression cml::et::BinaryVectorOp< LeftT, RightT, OpT >::expr_ary |
Definition at line 284 of file vector_expr.h.
typedef expr_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::expr_const_reference |
Definition at line 287 of file vector_expr.h.
typedef BinaryVectorOp<LeftT,RightT,OpT> cml::et::BinaryVectorOp< LeftT, RightT, OpT >::expr_type |
Definition at line 281 of file vector_expr.h.
typedef left_traits::const_reference cml::et::BinaryVectorOp< LeftT, RightT, OpT >::left_reference |
Definition at line 297 of file vector_expr.h.
typedef left_traits::result_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::left_result |
Definition at line 301 of file vector_expr.h.
typedef ExprTraits<LeftT> cml::et::BinaryVectorOp< LeftT, RightT, OpT >::left_traits |
Definition at line 293 of file vector_expr.h.
typedef vector_result_tag cml::et::BinaryVectorOp< LeftT, RightT, OpT >::result_tag |
Definition at line 290 of file vector_expr.h.
typedef VectorPromote<left_result,right_result>::type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::result_type |
Definition at line 303 of file vector_expr.h.
typedef right_traits::const_reference cml::et::BinaryVectorOp< LeftT, RightT, OpT >::right_reference |
Definition at line 298 of file vector_expr.h.
typedef right_traits::result_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::right_result |
Definition at line 302 of file vector_expr.h.
typedef ExprTraits<RightT> cml::et::BinaryVectorOp< LeftT, RightT, OpT >::right_traits |
Definition at line 294 of file vector_expr.h.
typedef result_type::size_tag cml::et::BinaryVectorOp< LeftT, RightT, OpT >::size_tag |
Definition at line 304 of file vector_expr.h.
typedef result_type::temporary_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::temporary_type |
Definition at line 310 of file vector_expr.h.
typedef OpT::value_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::value_type |
Definition at line 289 of file vector_expr.h.
anonymous enum |
cml::et::BinaryVectorOp< LeftT, RightT, OpT >::BinaryVectorOp | ( | left_reference | left, | |
right_reference | right | |||
) | [inline, explicit] |
cml::et::BinaryVectorOp< LeftT, RightT, OpT >::BinaryVectorOp | ( | const expr_type & | e | ) | [inline] |
left_reference cml::et::BinaryVectorOp< LeftT, RightT, OpT >::left_expression | ( | ) | const [inline] |
Return reference to left expression.
Definition at line 369 of file vector_expr.h.
References cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_left.
value_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::length | ( | ) | const [inline] |
Return the length.
Definition at line 332 of file vector_expr.h.
References cml::et::BinaryVectorOp< LeftT, RightT, OpT >::length_squared().
value_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::length_squared | ( | ) | const [inline] |
Return square of the length.
Definition at line 325 of file vector_expr.h.
References cml::dot().
Referenced by cml::et::BinaryVectorOp< LeftT, RightT, OpT >::length().
result_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::normalize | ( | ) | const [inline] |
expr_type& cml::et::BinaryVectorOp< LeftT, RightT, OpT >::operator= | ( | const expr_type & | ) | [private] |
value_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::operator[] | ( | size_t | i | ) | const [inline] |
Compute value at index i of the result vector.
Definition at line 343 of file vector_expr.h.
References cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_left, and cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_right.
right_reference cml::et::BinaryVectorOp< LeftT, RightT, OpT >::right_expression | ( | ) | const [inline] |
Return reference to right expression.
Definition at line 372 of file vector_expr.h.
References cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_right.
size_t cml::et::BinaryVectorOp< LeftT, RightT, OpT >::size | ( | ) | const [inline] |
Return the size of the vector result.
std::invalid_argument | if the expressions do not have the same size. |
Definition at line 361 of file vector_expr.h.
References cml::et::CheckedSize(), cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_left, and cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_right.
Referenced by cml::et::ExprTraits< BinaryVectorOp< LeftT, RightT, OpT > >::size().
checked_size::check_type cml::et::BinaryVectorOp< LeftT, RightT, OpT >::_dummy [private] |
Definition at line 395 of file vector_expr.h.
left_reference cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_left [protected] |
Definition at line 388 of file vector_expr.h.
Referenced by cml::et::BinaryVectorOp< LeftT, RightT, OpT >::left_expression(), cml::et::BinaryVectorOp< LeftT, RightT, OpT >::operator[](), and cml::et::BinaryVectorOp< LeftT, RightT, OpT >::size().
right_reference cml::et::BinaryVectorOp< LeftT, RightT, OpT >::m_right [protected] |
Definition at line 389 of file vector_expr.h.
Referenced by cml::et::BinaryVectorOp< LeftT, RightT, OpT >::operator[](), cml::et::BinaryVectorOp< LeftT, RightT, OpT >::right_expression(), and cml::et::BinaryVectorOp< LeftT, RightT, OpT >::size().