cml::detail Namespace Reference


Classes

struct  CrossPromote
struct  determinant_f
struct  determinant_f< MatT, 2 >
struct  determinant_f< MatT, 3 >
struct  determinant_f< MatT, 4 >
struct  DotPromote
struct  inverse_f
struct  inverse_f< MatT, 2 >
struct  inverse_f< MatT, 3 >
struct  inverse_f< MatT, 4 >
struct  nlerp_f< MatT_1, MatT_2, 2 >
struct  nlerp_f< MatT_1, MatT_2, 3 >
struct  OuterPromote
struct  slerp_f< MatT_1, MatT_2, 2 >
struct  slerp_f< MatT_1, MatT_2, 3 >
struct  SumOp< negative_cross, Real >
struct  SumOp< positive_cross, Real >
struct  TypePromote3< T1, T2, T3, et::matrix_result_tag >
struct  TypePromote3< T1, T2, T3, et::quaternion_result_tag >
struct  TypePromote4< T1, T2, T3, T4, et::matrix_result_tag >
struct  TypePromote4< T1, T2, T3, T4, et::quaternion_result_tag >
struct  TypePromote< T, T, et::scalar_result_tag >
struct  TypePromote< T1, T2, et::matrix_result_tag >
struct  TypePromote< T1, T2, et::quaternion_result_tag >
struct  TypePromote< T1, T2, et::scalar_result_tag >
struct  TypePromote< T1, T2, et::vector_result_tag >

Typedefs

typedef true_type mul_Ax
typedef false_type mul_xA

Functions

void CheckIndex2 (size_t index)
 Check for a valid integer index with value < 2.
void CheckIndex3 (size_t index)
 Check for a valid integer index with value < 3.
template<size_t N>
void CheckIndexN (size_t index)
 Check for a valid integer index with value < N.
template<class MatT >
void CheckMat (const MatT &)
 Compile-time check for a matrix argument.
template<class MatT >
void CheckMat2x2 (const MatT &m)
 Check for a square matrix of size 2x2.
template<class MatT >
void CheckMat3x3 (const MatT &m)
 Check for a square matrix of size 3x3.
template<class MatT >
void CheckMat4x4 (const MatT &m)
 Check for a square matrix of size 4x4.
template<class MatT >
void CheckMatAffine2D (const MatT &m)
 Check for a matrix that can represent a 2D affine transform.
template<class MatT >
void CheckMatAffine2D (const MatT &m, col_basis)
 Check for a matrix that can represent a 2D col-basis affine transform.
template<class MatT >
void CheckMatAffine2D (const MatT &m, row_basis)
 Check for a matrix that can represent a 2D row-basis affine transform.
template<class MatT >
void CheckMatAffine3D (const MatT &m)
 Check for a matrix that can represent a 3D affine transform.
template<class MatT >
void CheckMatAffine3D (const MatT &m, col_basis)
 Check for a matrix that can represent a 3D col-basis affine transform.
template<class MatT >
void CheckMatAffine3D (const MatT &m, row_basis)
 Check for a matrix that can represent a 3D row-basis affine transform.
template<class MatT >
void CheckMatHomogeneous3D (const MatT &m)
 Check for a matrix that can represent a 3D homogenous transform.
template<class MatT >
void CheckMatLinear2D (const MatT &m)
 Check for a matrix that can represent a 2D linear transform.
template<class MatT >
void CheckMatLinear3D (const MatT &m)
 Check for a matrix that can represent a 3D linear transform.
template<class MatT >
void CheckMatMin2x2 (const MatT &m)
 Check for a matrix with minimum dimensions 2x2.
template<class MatT >
void CheckMatMin3x3 (const MatT &m)
 Check for a matrix with minimum dimensions 3x3.
template<class MatT >
void CheckMatMin4x4 (const MatT &m)
 Check for a matrix with minimum dimensions 4x4.
template<class MatT , size_t N, class ErrorT >
void CheckMatMinN (const MatT &m)
 Check for a matrix with minimum dimensions NxN.
template<class MatT , size_t N, size_t M, class ErrorT >
void CheckMatMinNxM (const MatT &m)
 Check for a matrix with minimum dimensions NxM.
template<class MatT , size_t N, size_t M, class >
void CheckMatMinNxM (const MatT &m, dynamic_size_tag)
 Run-time check for a matrix with minimum dimensions NxM.
template<class MatT , size_t N, size_t M, class ErrorT >
void CheckMatMinNxM (const MatT &m, fixed_size_tag)
 Compile-time check for a matrix with minimum dimensions NxM.
template<class MatT , size_t N, class ErrorT >
void CheckMatN (const MatT &m)
 Check for a square matrix of size NxN.
template<class MatT , size_t N, size_t M, class ErrorT >
void CheckMatNxM (const MatT &m)
 Check for a matrix of size NxM.
template<class MatT , size_t N, size_t M, class >
void CheckMatNxM (const MatT &m, dynamic_size_tag)
 Run-time check for a matrix of size NxM.
template<class MatT , size_t N, size_t M, class ErrorT >
void CheckMatNxM (const MatT &m, fixed_size_tag)
 Compile-time check for a matrix of size NxM.
template<class MatT >
void CheckMatSquare (const MatT &m)
 Check for a square matrix.
template<class MatT , class >
void CheckMatSquare (const MatT &m, dynamic_size_tag)
 Run-time check for a square matrix.
template<class MatT , class ErrorT >
void CheckMatSquare (const MatT &m, fixed_size_tag)
 Compile-time check for a square matrix.
template<class QuatT >
void CheckQuat (const QuatT &)
 Compile-time check for a quaternion argument.
void CheckValidArg (bool valid)
 Run-time check for a valid argument.
template<class VecT >
void CheckVec (const VecT &)
 Compile-time check for a vector argument.
template<class VecT >
void CheckVec2 (const VecT &v)
 Check for a vector of size 2.
template<class VecT >
void CheckVec2Or3 (const VecT &v)
 Check for a vector of size 2 or 3.
template<class VecT >
void CheckVec2Or3 (const VecT &v, dynamic_size_tag)
 Run-time check for a vector of size 2 or 3.
template<class VecT >
void CheckVec2Or3 (const VecT &v, fixed_size_tag)
 Compile-time check for a vector of size 2 or 3.
template<class VecT >
void CheckVec3 (const VecT &v)
 Check for a vector of size 3.
template<class VecT >
void CheckVec4 (const VecT &v)
 Check for a vector of size 4.
template<class VecT , size_t N, class ErrorT >
void CheckVecN (const VecT &v)
 Check for a vector of size N.
template<class VecT , size_t N, class >
void CheckVecN (const VecT &v, dynamic_size_tag)
 Run-time check for a vector of size N.
template<class VecT , size_t N, class ErrorT >
void CheckVecN (const VecT &v, fixed_size_tag)
 Compile-time check for a vector of size N.
template<class MatT , typename Real >
void depth_range_from_viewport_matrix (const MatT &viewport, Real &n, Real &f)
template<typename MatT >
MatT::value_type determinant (const MatT &M, dynamic_size_tag)
template<typename MatT >
MatT::value_type determinant (const MatT &M, fixed_size_tag)
template<typename E >
void divide_by_w (vector< E, fixed< 4 > > &v)
template<typename E , class A , class B , class L , class MatT >
void InterpResize (matrix< E, A, B, L > &m, const MatT &target, dynamic_size_tag)
template<typename E , class A , class VecT >
void InterpResize (vector< E, A > &v, const VecT &target, dynamic_size_tag)
template<class T1 , class T2 , class SizeTag >
void InterpResize (T1 &t1, const T2 &t2, SizeTag)
template<typename Real >
vector< Real, fixed< 3 > > intersect_planes (Real p1[4], Real p2[4], Real p3[4])
template<typename MatT >
MatT::temporary_type inverse (const MatT &M, dynamic_size_tag)
template<typename MatT >
MatT::temporary_type inverse (const MatT &M, fixed_size_tag)
template<class MatT >
MatT::temporary_type lu_copy (const MatT &M)
template<class MatT >
void lu_inplace (MatT &A)
template<typename LeftT , typename RightT >
matrix_size MatMulCheckedSize (const LeftT &left, const RightT &right, dynamic_size_tag)
 Verify the sizes of the argument matrices for matrix multiplication.
template<typename LeftT , typename RightT >
matrix_size MatMulCheckedSize (const LeftT &, const RightT &, fixed_size_tag)
 Verify the sizes of the argument matrices for matrix multiplication.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_3X3 matrix_concat_rotations (const MatT_1 &m1, const MatT_2 &m2)
 Concatenate two 3D rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_3X3 matrix_concat_rotations (const MatT_1 &m1, const MatT_2 &m2, col_basis)
 Concatenate two 3D col-basis rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_3X3 matrix_concat_rotations (const MatT_1 &m1, const MatT_2 &m2, row_basis)
 Concatenate two 3D row-basis rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_2X2 matrix_concat_rotations_2D (const MatT_1 &m1, const MatT_2 &m2)
 Concatenate two 2D rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_2X2 matrix_concat_rotations_2D (const MatT_1 &m1, const MatT_2 &m2, col_basis)
 Concatenate two 2D col-basis rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_2X2 matrix_concat_rotations_2D (const MatT_1 &m1, const MatT_2 &m2, row_basis)
 Concatenate two 2D row-basis rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_4X4 matrix_concat_transforms_4x4 (const MatT_1 &m1, const MatT_2 &m2)
 Concatenate two 3D rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_4X4 matrix_concat_transforms_4x4 (const MatT_1 &m1, const MatT_2 &m2, col_basis)
 Concatenate two 3D col-basis rotation matrices in the order m1->m2.
template<class MatT_1 , class MatT_2 >
MAT_TEMP_4X4 matrix_concat_transforms_4x4 (const MatT_1 &m1, const MatT_2 &m2, row_basis)
template<typename LeftT , typename RightT , typename OpT >
bool matrix_total_order (const LeftT &left, const RightT &right, OpT)
 Matrix total order relationship.
template<typename LeftT , typename RightT , typename OpT >
bool matrix_weak_order (const LeftT &left, const RightT &right, OpT)
 Matrix strict weak ordering relationship.
template<typename LeftT , typename RightT >
et::MatVecPromote< typename
et::ExprTraits< LeftT >
::result_type, typename
et::ExprTraits< RightT >
::result_type >
::temporary_type 
mul (const LeftT &x, const RightT &A, mul_xA)
 Compute y = x*A.
template<typename LeftT , typename RightT >
et::MatVecPromote< typename
et::ExprTraits< LeftT >
::result_type, typename
et::ExprTraits< RightT >
::result_type >
::temporary_type 
mul (const LeftT &A, const RightT &x, mul_Ax)
 Compute y = A*x.
template<class LeftT , class RightT >
et::MatrixPromote< typename
et::ExprTraits< LeftT >
::result_type, typename
et::ExprTraits< RightT >
::result_type >
::temporary_type 
mul (const LeftT &left, const RightT &right)
 Matrix multiplication.
template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,
MatT_2, typename
et::ExprTraits< MatT_1 >
::result_tag >::temporary_type 
nlerp (const MatT_1 &m1, const MatT_2 &m2, Real t, et::matrix_result_tag, dynamic_size_tag)
template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,
MatT_2, typename
et::ExprTraits< MatT_1 >
::result_tag >::temporary_type 
nlerp (const MatT_1 &m1, const MatT_2 &m2, Real t, et::matrix_result_tag, fixed_size_tag)
template<class QuatT_1 , class QuatT_2 , typename Real , class SizeT >
detail::TypePromote< QuatT_1,
QuatT_2, typename
et::ExprTraits< QuatT_1 >
::result_tag >::temporary_type 
nlerp (const QuatT_1 &q1, const QuatT_2 &q2, Real t, et::quaternion_result_tag, SizeT)
template<class VecT_1 , class VecT_2 , typename Real , class SizeT >
detail::TypePromote< VecT_1,
VecT_2, typename
et::ExprTraits< VecT_1 >
::result_tag >::temporary_type 
nlerp (const VecT_1 &v1, const VecT_2 &v2, Real t, et::vector_result_tag, SizeT)
AxisOrder pack_axis_order (size_t i, bool odd)
template<class LeftT , class RightT >
detail::DotPromote< LeftT,
RightT >::promoted_scalar 
quaternion_dot (const LeftT &p, const RightT &q)
template<class QuatT_1 , class QuatT_2 >
et::QuaternionPromote2
< QuatT_1, QuatT_2 >
::temporary_type 
quaternion_rotation_difference (const QuatT_1 &q1, const QuatT_2 &q2, negative_cross)
 Concatenate two quaternions in the order q1->q2.
template<class QuatT_1 , class QuatT_2 >
et::QuaternionPromote2
< QuatT_1, QuatT_2 >
::temporary_type 
quaternion_rotation_difference (const QuatT_1 &q1, const QuatT_2 &q2, positive_cross)
 Concatenate two quaternions in the order q1->q2.
template<typename LeftT , typename RightT , typename OpT >
bool quaternion_total_order (const LeftT &left, const RightT &right, OpT)
 Quaternion total order relationship.
template<typename LeftT , typename RightT , typename OpT >
bool quaternion_weak_order (const LeftT &left, const RightT &right, OpT)
 Quaternion strict weak ordering relationship.
template<class Quat1_T , class Quat2_T >
et::QuaternionPromote
< typename
Quat1_T::temporary_type,
typename
Quat2_T::temporary_type >
::temporary_type 
QuaternionMult (const Quat1_T &q1, const Quat2_T &q2)
template<typename VecT >
void Require2D (const VecT &v, dynamic_size_tag)
 For perp_dot(): run-time check for a 2D vector.
template<typename VecT >
void Require2D (const VecT &v, fixed_size_tag)
 For perp_dot(): compile-time check for a 2D vector.
template<typename VecT >
void Require3D (const VecT &v, dynamic_size_tag)
 For cross(): run-time check for a 3D vector.
template<typename VecT >
void Require3D (const VecT &, fixed_size_tag)
 For cross(): compile-time check for a 3D vector.
template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,
MatT_2, typename
et::ExprTraits< MatT_1 >
::result_tag >::temporary_type 
slerp (const MatT_1 &m1, const MatT_2 &m2, Real t, Real tolerance, et::matrix_result_tag, dynamic_size_tag)
template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,
MatT_2, typename
et::ExprTraits< MatT_1 >
::result_tag >::temporary_type 
slerp (const MatT_1 &m1, const MatT_2 &m2, Real t, Real tolerance, et::matrix_result_tag, fixed_size_tag)
template<class QuatT_1 , class QuatT_2 , typename Real , class SizeT >
detail::TypePromote< QuatT_1,
QuatT_2, typename
et::ExprTraits< QuatT_1 >
::result_tag >::temporary_type 
slerp (const QuatT_1 &q1, const QuatT_2 &q2, Real t, Real tolerance, et::quaternion_result_tag, SizeT)
template<class VecT_1 , class VecT_2 , typename Real , class SizeT >
detail::TypePromote< VecT_1,
VecT_2, typename
et::ExprTraits< VecT_1 >
::result_tag >::temporary_type 
slerp (const VecT_1 &v1, const VecT_2 &v2, Real t, Real tolerance, et::vector_result_tag, SizeT)
AxisOrder swap_axis_order (AxisOrder order)
template<class MatT , class VecT >
TEMP_VEC4 transform_vector_4D (const MatT &m, const VecT &v, col_basis)
template<class MatT , class VecT >
TEMP_VEC4 transform_vector_4D (const MatT &m, const VecT &v, row_basis)
void unpack_axis_order (AxisOrder order, size_t &i, size_t &j, size_t &k, bool &odd)
void unpack_axis_order_2D (AxisOrder2D order, size_t &i, size_t &j, bool &odd)
void unpack_euler_order (EulerOrder order, size_t &i, size_t &j, size_t &k, bool &odd, bool &repeat)
template<typename LeftT , typename RightT >
DotPromote< LeftT, RightT >
::promoted_scalar 
UnrollDot (const LeftT &left, const RightT &right, dynamic_size_tag)
 Use a loop to compute the dot product for dynamic arrays.
template<typename LeftT , typename RightT >
DotPromote< LeftT, RightT >
::promoted_scalar 
UnrollDot (const LeftT &left, const RightT &right, fixed_size_tag)
 Construct a dot unroller for fixed-size arrays.
template<typename LeftT , typename RightT , typename OpT >
bool vector_total_order (const LeftT &left, const RightT &right, OpT)
 Vector total order relationship.
template<typename LeftT , typename RightT , typename OpT >
bool vector_weak_order (const LeftT &left, const RightT &right, OpT)
 Vector strict weak ordering relationship.

Typedef Documentation

Definition at line 41 of file matvec_mul.h.

Definition at line 42 of file matvec_mul.h.


Function Documentation

void cml::detail::CheckIndex2 ( size_t  index  )  [inline]

void cml::detail::CheckIndex3 ( size_t  index  )  [inline]

template<size_t N>
void cml::detail::CheckIndexN ( size_t  index  )  [inline]

Check for a valid integer index with value < N.

Definition at line 365 of file checking.h.

References CheckValidArg().

Here is the call graph for this function:

template<class MatT >
void cml::detail::CheckMat ( const MatT &   )  [inline]

Compile-time check for a matrix argument.

Definition at line 135 of file checking.h.

References CML_STATIC_REQUIRE_M.

Referenced by CheckMatMinNxM(), CheckMatNxM(), and CheckMatSquare().

Here is the caller graph for this function:

template<class MatT >
void cml::detail::CheckMat2x2 ( const MatT &  m  )  [inline]

Check for a square matrix of size 2x2.

Definition at line 182 of file checking.h.

template<class MatT >
void cml::detail::CheckMat3x3 ( const MatT &  m  )  [inline]

Check for a square matrix of size 3x3.

Definition at line 188 of file checking.h.

template<class MatT >
void cml::detail::CheckMat4x4 ( const MatT &  m  )  [inline]

Check for a square matrix of size 4x4.

Definition at line 194 of file checking.h.

template<class MatT >
void cml::detail::CheckMatAffine2D ( const MatT &  m  )  [inline]

Check for a matrix that can represent a 2D affine transform.

Definition at line 295 of file checking.h.

References CheckMatAffine2D().

Here is the call graph for this function:

template<class MatT >
void cml::detail::CheckMatAffine2D ( const MatT &  m,
col_basis   
) [inline]

Check for a matrix that can represent a 2D col-basis affine transform.

Definition at line 283 of file checking.h.

template<class MatT >
void cml::detail::CheckMatAffine2D ( const MatT &  m,
row_basis   
) [inline]

Check for a matrix that can represent a 2D row-basis affine transform.

Definition at line 277 of file checking.h.

Referenced by CheckMatAffine2D(), cml::matrix_decompose_SRT_2D(), cml::matrix_get_translation_2D(), cml::matrix_set_translation_2D(), and cml::transform_point_2D().

Here is the caller graph for this function:

template<class MatT >
void cml::detail::CheckMatAffine3D ( const MatT &  m  )  [inline]

Check for a matrix that can represent a 3D affine transform.

Definition at line 289 of file checking.h.

References CheckMatAffine3D().

Here is the call graph for this function:

template<class MatT >
void cml::detail::CheckMatAffine3D ( const MatT &  m,
col_basis   
) [inline]

Check for a matrix that can represent a 3D col-basis affine transform.

Definition at line 271 of file checking.h.

template<class MatT >
void cml::detail::CheckMatAffine3D ( const MatT &  m,
row_basis   
) [inline]

Check for a matrix that can represent a 3D row-basis affine transform.

Definition at line 265 of file checking.h.

Referenced by CheckMatAffine3D(), cml::matrix_decompose_SRT(), cml::matrix_get_translation(), cml::matrix_look_at(), cml::matrix_set_translation(), and cml::transform_point().

Here is the caller graph for this function:

template<class MatT >
void cml::detail::CheckMatHomogeneous3D ( const MatT &  m  )  [inline]

Check for a matrix that can represent a 3D homogenous transform.

Definition at line 301 of file checking.h.

References CheckMatMin4x4().

Referenced by depth_range_from_viewport_matrix(), cml::extract_frustum_planes(), cml::matrix_orthographic(), cml::matrix_perspective(), and cml::matrix_pick().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class MatT >
void cml::detail::CheckMatLinear2D ( const MatT &  m  )  [inline]

template<class MatT >
void cml::detail::CheckMatLinear3D ( const MatT &  m  )  [inline]

template<class MatT >
void cml::detail::CheckMatMin2x2 ( const MatT &  m  )  [inline]

Check for a matrix with minimum dimensions 2x2.

Definition at line 235 of file checking.h.

Referenced by CheckMatLinear2D(), cml::matrix_skew_symmetric_2D(), and cml::trace_2x2().

Here is the caller graph for this function:

template<class MatT >
void cml::detail::CheckMatMin3x3 ( const MatT &  m  )  [inline]

Check for a matrix with minimum dimensions 3x3.

Definition at line 241 of file checking.h.

Referenced by CheckMatLinear3D(), cml::matrix_skew_symmetric(), and cml::trace_3x3().

Here is the caller graph for this function:

template<class MatT >
void cml::detail::CheckMatMin4x4 ( const MatT &  m  )  [inline]

Check for a matrix with minimum dimensions 4x4.

Definition at line 247 of file checking.h.

Referenced by CheckMatHomogeneous3D().

Here is the caller graph for this function:

template<class MatT , size_t N, class ErrorT >
void cml::detail::CheckMatMinN ( const MatT &  m  )  [inline]

Check for a matrix with minimum dimensions NxN.

Definition at line 229 of file checking.h.

template<class MatT , size_t N, size_t M, class ErrorT >
void cml::detail::CheckMatMinNxM ( const MatT &  m  )  [inline]

Check for a matrix with minimum dimensions NxM.

Definition at line 220 of file checking.h.

template<class MatT , size_t N, size_t M, class >
void cml::detail::CheckMatMinNxM ( const MatT &  m,
dynamic_size_tag   
) [inline]

Run-time check for a matrix with minimum dimensions NxM.

Definition at line 209 of file checking.h.

References CheckMat().

Here is the call graph for this function:

template<class MatT , size_t N, size_t M, class ErrorT >
void cml::detail::CheckMatMinNxM ( const MatT &  m,
fixed_size_tag   
) [inline]

Compile-time check for a matrix with minimum dimensions NxM.

Definition at line 200 of file checking.h.

References CheckMat(), and CML_STATIC_REQUIRE_M.

Here is the call graph for this function:

template<class MatT , size_t N, class ErrorT >
void cml::detail::CheckMatN ( const MatT &  m  )  [inline]

Check for a square matrix of size NxN.

Definition at line 176 of file checking.h.

template<class MatT , size_t N, size_t M, class ErrorT >
void cml::detail::CheckMatNxM ( const MatT &  m  )  [inline]

Check for a matrix of size NxM.

Definition at line 167 of file checking.h.

template<class MatT , size_t N, size_t M, class >
void cml::detail::CheckMatNxM ( const MatT &  m,
dynamic_size_tag   
) [inline]

Run-time check for a matrix of size NxM.

Definition at line 156 of file checking.h.

References CheckMat().

Here is the call graph for this function:

template<class MatT , size_t N, size_t M, class ErrorT >
void cml::detail::CheckMatNxM ( const MatT &  m,
fixed_size_tag   
) [inline]

Compile-time check for a matrix of size NxM.

Definition at line 147 of file checking.h.

References CheckMat(), and CML_STATIC_REQUIRE_M.

Here is the call graph for this function:

template<class MatT >
void cml::detail::CheckMatSquare ( const MatT &  m  )  [inline]

Check for a square matrix.

Definition at line 327 of file checking.h.

References CheckMatSquare().

Here is the call graph for this function:

template<class MatT , class >
void cml::detail::CheckMatSquare ( const MatT &  m,
dynamic_size_tag   
) [inline]

Run-time check for a square matrix.

Definition at line 316 of file checking.h.

References CheckMat().

Here is the call graph for this function:

template<class MatT , class ErrorT >
void cml::detail::CheckMatSquare ( const MatT &  m,
fixed_size_tag   
) [inline]

Compile-time check for a square matrix.

Definition at line 307 of file checking.h.

References CheckMat(), and CML_STATIC_REQUIRE_M.

Referenced by CheckMatSquare(), and cml::trace().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class QuatT >
void cml::detail::CheckQuat ( const QuatT &   )  [inline]

Compile-time check for a quaternion argument.

Definition at line 341 of file checking.h.

References CML_STATIC_REQUIRE_M.

Referenced by cml::exp(), cml::log(), cml::matrix_rotation_quaternion(), cml::quaternion_get_basis_vector(), cml::quaternion_to_axis_angle(), and QuaternionMult().

Here is the caller graph for this function:

void cml::detail::CheckValidArg ( bool  valid  )  [inline]

Run-time check for a valid argument.

Definition at line 356 of file checking.h.

Referenced by cml::axis(), and CheckIndexN().

Here is the caller graph for this function:

template<class VecT >
void cml::detail::CheckVec ( const VecT &   )  [inline]

Compile-time check for a vector argument.

Definition at line 46 of file checking.h.

References CML_STATIC_REQUIRE_M.

Referenced by CheckVec2Or3(), and CheckVecN().

Here is the caller graph for this function:

template<class VecT >
void cml::detail::CheckVec2 ( const VecT &  v  )  [inline]

template<class VecT >
void cml::detail::CheckVec2Or3 ( const VecT &  v  )  [inline]

Check for a vector of size 2 or 3.

Definition at line 122 of file checking.h.

References CheckVec2Or3().

Here is the call graph for this function:

template<class VecT >
void cml::detail::CheckVec2Or3 ( const VecT &  v,
dynamic_size_tag   
) [inline]

Run-time check for a vector of size 2 or 3.

Definition at line 112 of file checking.h.

References CheckVec().

Here is the call graph for this function:

template<class VecT >
void cml::detail::CheckVec2Or3 ( const VecT &  v,
fixed_size_tag   
) [inline]

Compile-time check for a vector of size 2 or 3.

Definition at line 102 of file checking.h.

References CheckVec(), and CML_STATIC_REQUIRE_M.

Referenced by CheckVec2Or3(), and cml::matrix_set_translation().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class VecT >
void cml::detail::CheckVec3 ( const VecT &  v  )  [inline]

template<class VecT >
void cml::detail::CheckVec4 ( const VecT &  v  )  [inline]

Check for a vector of size 4.

Definition at line 96 of file checking.h.

template<class VecT , size_t N, class ErrorT >
void cml::detail::CheckVecN ( const VecT &  v  )  [inline]

Check for a vector of size N.

Definition at line 75 of file checking.h.

template<class VecT , size_t N, class >
void cml::detail::CheckVecN ( const VecT &  v,
dynamic_size_tag   
) [inline]

Run-time check for a vector of size N.

Definition at line 66 of file checking.h.

References CheckVec().

Here is the call graph for this function:

template<class VecT , size_t N, class ErrorT >
void cml::detail::CheckVecN ( const VecT &  v,
fixed_size_tag   
) [inline]

Compile-time check for a vector of size N.

Definition at line 58 of file checking.h.

References CheckVec(), and CML_STATIC_REQUIRE_M.

Here is the call graph for this function:

template<class MatT , typename Real >
void cml::detail::depth_range_from_viewport_matrix ( const MatT &  viewport,
Real &  n,
Real &  f 
) [inline]

Definition at line 32 of file picking.h.

References CheckMatHomogeneous3D().

Referenced by cml::make_pick_ray().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename MatT >
MatT::value_type cml::detail::determinant ( const MatT &  M,
dynamic_size_tag   
) [inline]

Definition at line 155 of file determinant.h.

References cml::et::CheckedSquare().

Here is the call graph for this function:

template<typename MatT >
MatT::value_type cml::detail::determinant ( const MatT &  M,
fixed_size_tag   
) [inline]

Definition at line 146 of file determinant.h.

References cml::et::CheckedSquare().

Referenced by cml::determinant().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename E >
void cml::detail::divide_by_w ( vector< E, fixed< 4 > > &  v  )  [inline]

Definition at line 26 of file projection.h.

Referenced by cml::project_point(), and cml::unproject_point().

Here is the caller graph for this function:

template<typename E , class A , class B , class L , class MatT >
void cml::detail::InterpResize ( matrix< E, A, B, L > &  m,
const MatT &  target,
dynamic_size_tag   
) [inline]

Definition at line 225 of file interpolation.h.

template<typename E , class A , class VecT >
void cml::detail::InterpResize ( vector< E, A > &  v,
const VecT &  target,
dynamic_size_tag   
) [inline]

Definition at line 220 of file interpolation.h.

template<class T1 , class T2 , class SizeTag >
void cml::detail::InterpResize ( T1 &  t1,
const T2 &  t2,
SizeTag   
) [inline]

Definition at line 215 of file interpolation.h.

Referenced by cml::bilerp(), cml::lerp(), cml::nlerp(), nlerp(), cml::slerp(), slerp(), and cml::trilerp().

Here is the caller graph for this function:

template<typename Real >
vector< Real, fixed<3> > cml::detail::intersect_planes ( Real  p1[4],
Real  p2[4],
Real  p3[4] 
) [inline]

Definition at line 166 of file frustum.h.

References cml::cross(), and cml::triple_product().

Referenced by cml::get_frustum_corners().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename MatT >
MatT::temporary_type cml::detail::inverse ( const MatT &  M,
dynamic_size_tag   
) [inline]

Definition at line 396 of file inverse.h.

References cml::et::CheckedSquare().

Here is the call graph for this function:

template<typename MatT >
MatT::temporary_type cml::detail::inverse ( const MatT &  M,
fixed_size_tag   
) [inline]

Definition at line 378 of file inverse.h.

References cml::et::CheckedSquare().

Referenced by cml::inverse().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class MatT >
MatT::temporary_type cml::detail::lu_copy ( const MatT &  M  )  [inline]

Definition at line 82 of file lu.h.

References CML_STATIC_REQUIRE_M, lu_inplace(), and cml::et::detail::Resize().

Referenced by cml::lu().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class MatT >
void cml::detail::lu_inplace ( MatT &  A  )  [inline]

Definition at line 46 of file lu.h.

References cml::et::CheckedSquare(), and CML_STATIC_REQUIRE_M.

Referenced by lu_copy().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename LeftT , typename RightT >
matrix_size cml::detail::MatMulCheckedSize ( const LeftT &  left,
const RightT &  right,
dynamic_size_tag   
) [inline]

Verify the sizes of the argument matrices for matrix multiplication.

Returns:
a matrix_size containing the size of the resulting matrix.

Definition at line 58 of file matrix_mul.h.

template<typename LeftT , typename RightT >
matrix_size cml::detail::MatMulCheckedSize ( const LeftT &  ,
const RightT &  ,
fixed_size_tag   
) [inline]

Verify the sizes of the argument matrices for matrix multiplication.

Returns:
a matrix_size containing the size of the resulting matrix.

Definition at line 45 of file matrix_mul.h.

References CML_STATIC_REQUIRE_M.

Referenced by mul().

Here is the caller graph for this function:

template<class MatT_1 , class MatT_2 >
MAT_TEMP_3X3 cml::detail::matrix_concat_rotations ( const MatT_1 &  m1,
const MatT_2 &  m2 
) [inline]

Concatenate two 3D rotation matrices in the order m1->m2.

Definition at line 761 of file matrix_rotation.h.

References matrix_concat_rotations().

Here is the call graph for this function:

template<class MatT_1 , class MatT_2 >
MAT_TEMP_3X3 cml::detail::matrix_concat_rotations ( const MatT_1 &  m1,
const MatT_2 &  m2,
col_basis   
) [inline]

Concatenate two 3D col-basis rotation matrices in the order m1->m2.

Definition at line 755 of file matrix_rotation.h.

template<class MatT_1 , class MatT_2 >
MAT_TEMP_3X3 cml::detail::matrix_concat_rotations ( const MatT_1 &  m1,
const MatT_2 &  m2,
row_basis   
) [inline]

Concatenate two 3D row-basis rotation matrices in the order m1->m2.

Definition at line 749 of file matrix_rotation.h.

Referenced by matrix_concat_rotations(), cml::matrix_rotation_difference(), cml::matrix_slerp(), and cml::detail::slerp_f< MatT_1, MatT_2, 3 >::operator()().

Here is the caller graph for this function:

template<class MatT_1 , class MatT_2 >
MAT_TEMP_2X2 cml::detail::matrix_concat_rotations_2D ( const MatT_1 &  m1,
const MatT_2 &  m2 
) [inline]

Concatenate two 2D rotation matrices in the order m1->m2.

Definition at line 779 of file matrix_rotation.h.

References matrix_concat_rotations_2D().

Here is the call graph for this function:

template<class MatT_1 , class MatT_2 >
MAT_TEMP_2X2 cml::detail::matrix_concat_rotations_2D ( const MatT_1 &  m1,
const MatT_2 &  m2,
col_basis   
) [inline]

Concatenate two 2D col-basis rotation matrices in the order m1->m2.

Definition at line 773 of file matrix_rotation.h.

template<class MatT_1 , class MatT_2 >
MAT_TEMP_2X2 cml::detail::matrix_concat_rotations_2D ( const MatT_1 &  m1,
const MatT_2 &  m2,
row_basis   
) [inline]

Concatenate two 2D row-basis rotation matrices in the order m1->m2.

Definition at line 767 of file matrix_rotation.h.

Referenced by matrix_concat_rotations_2D(), cml::matrix_rotation_difference_2D(), cml::matrix_slerp_2D(), and cml::detail::slerp_f< MatT_1, MatT_2, 2 >::operator()().

Here is the caller graph for this function:

template<class MatT_1 , class MatT_2 >
MAT_TEMP_4X4 cml::detail::matrix_concat_transforms_4x4 ( const MatT_1 &  m1,
const MatT_2 &  m2 
) [inline]

Concatenate two 3D rotation matrices in the order m1->m2.

Definition at line 53 of file matrix_concat.h.

References matrix_concat_transforms_4x4().

Here is the call graph for this function:

template<class MatT_1 , class MatT_2 >
MAT_TEMP_4X4 cml::detail::matrix_concat_transforms_4x4 ( const MatT_1 &  m1,
const MatT_2 &  m2,
col_basis   
) [inline]

Concatenate two 3D col-basis rotation matrices in the order m1->m2.

Definition at line 47 of file matrix_concat.h.

template<class MatT_1 , class MatT_2 >
MAT_TEMP_4X4 cml::detail::matrix_concat_transforms_4x4 ( const MatT_1 &  m1,
const MatT_2 &  m2,
row_basis   
) [inline]

Definition at line 41 of file matrix_concat.h.

Referenced by cml::extract_frustum_planes(), cml::make_pick_volume(), matrix_concat_transforms_4x4(), cml::project_point(), and cml::unproject_point().

Here is the caller graph for this function:

template<typename LeftT , typename RightT , typename OpT >
bool cml::detail::matrix_total_order ( const LeftT &  left,
const RightT &  right,
OpT   
) [inline]

Matrix total order relationship.

OpT must implement a total order on the matrix element type. operator<= and operator>= on integer and floating-point types are examples.

Definition at line 147 of file matrix_comparison.h.

References cml::et::CheckedSize(), and CML_STATIC_REQUIRE_M.

Here is the call graph for this function:

template<typename LeftT , typename RightT , typename OpT >
bool cml::detail::matrix_weak_order ( const LeftT &  left,
const RightT &  right,
OpT   
) [inline]

Matrix strict weak ordering relationship.

OpT must implement a strict weak order on the matrix element type. operator< and operator> on integer and floating-point types are examples.

Definition at line 87 of file matrix_comparison.h.

References cml::et::CheckedSize(), and CML_STATIC_REQUIRE_M.

Here is the call graph for this function:

template<typename LeftT , typename RightT >
et::MatVecPromote< typename et::ExprTraits<LeftT>::result_type, typename et::ExprTraits<RightT>::result_type>::temporary_type cml::detail::mul ( const LeftT &  x,
const RightT &  A,
mul_xA   
) [inline]

Compute y = x*A.

Definition at line 102 of file matvec_mul.h.

References cml::et::CheckedSize(), CML_STATIC_REQUIRE_M, and cml::et::detail::Resize().

Here is the call graph for this function:

template<typename LeftT , typename RightT >
et::MatVecPromote< typename et::ExprTraits<LeftT>::result_type, typename et::ExprTraits<RightT>::result_type>::temporary_type cml::detail::mul ( const LeftT &  A,
const RightT &  x,
mul_Ax   
) [inline]

Compute y = A*x.

Definition at line 50 of file matvec_mul.h.

References cml::et::CheckedSize(), CML_STATIC_REQUIRE_M, and cml::et::detail::Resize().

Here is the call graph for this function:

template<class LeftT , class RightT >
et::MatrixPromote< typename et::ExprTraits<LeftT>::result_type, typename et::ExprTraits<RightT>::result_type>::temporary_type cml::detail::mul ( const LeftT &  left,
const RightT &  right 
) [inline]

Matrix multiplication.

Computes C = A x B (O(N^3), non-blocked algorithm).

Definition at line 76 of file matrix_mul.h.

References CML_STATIC_REQUIRE_M, MatMulCheckedSize(), and cml::et::detail::Resize().

Referenced by cml::operator*().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,MatT_2,typename et::ExprTraits<MatT_1>::result_tag>::temporary_type cml::detail::nlerp ( const MatT_1 &  m1,
const MatT_2 &  m2,
Real  t,
et::matrix_result_tag  ,
dynamic_size_tag   
) [inline]

Definition at line 758 of file interpolation.h.

References cml::et::detail::Resize().

Here is the call graph for this function:

template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,MatT_2,typename et::ExprTraits<MatT_1>::result_tag>::temporary_type cml::detail::nlerp ( const MatT_1 &  m1,
const MatT_2 &  m2,
Real  t,
et::matrix_result_tag  ,
fixed_size_tag   
) [inline]

Definition at line 744 of file interpolation.h.

template<class QuatT_1 , class QuatT_2 , typename Real , class SizeT >
detail::TypePromote< QuatT_1,QuatT_2,typename et::ExprTraits<QuatT_1>::result_tag>::temporary_type cml::detail::nlerp ( const QuatT_1 &  q1,
const QuatT_2 &  q2,
Real  t,
et::quaternion_result_tag  ,
SizeT   
) [inline]

Definition at line 665 of file interpolation.h.

References cml::dot(), cml::lerp(), and cml::normalize().

Here is the call graph for this function:

template<class VecT_1 , class VecT_2 , typename Real , class SizeT >
detail::TypePromote< VecT_1,VecT_2,typename et::ExprTraits<VecT_1>::result_tag>::temporary_type cml::detail::nlerp ( const VecT_1 &  v1,
const VecT_2 &  v2,
Real  t,
et::vector_result_tag  ,
SizeT   
) [inline]

Definition at line 633 of file interpolation.h.

References InterpResize().

Referenced by cml::nlerp(), and slerp().

Here is the call graph for this function:

Here is the caller graph for this function:

AxisOrder cml::detail::pack_axis_order ( size_t  i,
bool  odd 
) [inline]

Definition at line 97 of file helper.h.

Referenced by swap_axis_order().

Here is the caller graph for this function:

template<class LeftT , class RightT >
detail::DotPromote<LeftT,RightT>::promoted_scalar cml::detail::quaternion_dot ( const LeftT &  p,
const RightT &  q 
) [inline]

Definition at line 24 of file quaternion_dot.h.

Referenced by cml::dot().

Here is the caller graph for this function:

template<class QuatT_1 , class QuatT_2 >
et::QuaternionPromote2<QuatT_1,QuatT_2>::temporary_type cml::detail::quaternion_rotation_difference ( const QuatT_1 &  q1,
const QuatT_2 &  q2,
negative_cross   
) [inline]

Concatenate two quaternions in the order q1->q2.

Definition at line 553 of file quaternion_rotation.h.

References cml::conjugate().

Here is the call graph for this function:

template<class QuatT_1 , class QuatT_2 >
et::QuaternionPromote2<QuatT_1,QuatT_2>::temporary_type cml::detail::quaternion_rotation_difference ( const QuatT_1 &  q1,
const QuatT_2 &  q2,
positive_cross   
) [inline]

Concatenate two quaternions in the order q1->q2.

Definition at line 544 of file quaternion_rotation.h.

References cml::conjugate().

Referenced by cml::quaternion_rotation_difference().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename LeftT , typename RightT , typename OpT >
bool cml::detail::quaternion_total_order ( const LeftT &  left,
const RightT &  right,
OpT   
) [inline]

Quaternion total order relationship.

OpT must implement a total order on the quaternion element type. operator<= and operator>= on integer and floating-point types are examples.

Definition at line 138 of file quaternion_comparison.h.

References CML_STATIC_REQUIRE_M.

template<typename LeftT , typename RightT , typename OpT >
bool cml::detail::quaternion_weak_order ( const LeftT &  left,
const RightT &  right,
OpT   
) [inline]

Quaternion strict weak ordering relationship.

OpT must implement a strict weak order on the quaternion element type. operator< and operator> on integer and floating-point types are examples.

Definition at line 82 of file quaternion_comparison.h.

References CML_STATIC_REQUIRE_M.

template<class Quat1_T , class Quat2_T >
et::QuaternionPromote< typename Quat1_T::temporary_type, typename Quat2_T::temporary_type>::temporary_type cml::detail::QuaternionMult ( const Quat1_T &  q1,
const Quat2_T &  q2 
) [inline]

Definition at line 43 of file quaternion_mul.h.

References CheckQuat().

Referenced by cml::operator*().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename VecT >
void cml::detail::Require2D ( const VecT &  v,
dynamic_size_tag   
) [inline]

For perp_dot(): run-time check for a 2D vector.

Definition at line 195 of file vector_products.h.

template<typename VecT >
void cml::detail::Require2D ( const VecT &  v,
fixed_size_tag   
) [inline]

For perp_dot(): compile-time check for a 2D vector.

Definition at line 187 of file vector_products.h.

References CML_STATIC_REQUIRE_M.

Referenced by cml::perp_dot().

Here is the caller graph for this function:

template<typename VecT >
void cml::detail::Require3D ( const VecT &  v,
dynamic_size_tag   
) [inline]

For cross(): run-time check for a 3D vector.

Definition at line 180 of file vector_products.h.

template<typename VecT >
void cml::detail::Require3D ( const VecT &  ,
fixed_size_tag   
) [inline]

For cross(): compile-time check for a 3D vector.

Definition at line 172 of file vector_products.h.

References CML_STATIC_REQUIRE_M.

Referenced by cml::cross().

Here is the caller graph for this function:

template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,MatT_2,typename et::ExprTraits<MatT_1>::result_tag>::temporary_type cml::detail::slerp ( const MatT_1 &  m1,
const MatT_2 &  m2,
Real  t,
Real  tolerance,
et::matrix_result_tag  ,
dynamic_size_tag   
) [inline]

Definition at line 595 of file interpolation.h.

References cml::et::detail::Resize().

Here is the call graph for this function:

template<class MatT_1 , class MatT_2 , typename Real >
detail::TypePromote< MatT_1,MatT_2,typename et::ExprTraits<MatT_1>::result_tag>::temporary_type cml::detail::slerp ( const MatT_1 &  m1,
const MatT_2 &  m2,
Real  t,
Real  tolerance,
et::matrix_result_tag  ,
fixed_size_tag   
) [inline]

Definition at line 580 of file interpolation.h.

template<class QuatT_1 , class QuatT_2 , typename Real , class SizeT >
detail::TypePromote< QuatT_1,QuatT_2,typename et::ExprTraits<QuatT_1>::result_tag>::temporary_type cml::detail::slerp ( const QuatT_1 &  q1,
const QuatT_2 &  q2,
Real  t,
Real  tolerance,
et::quaternion_result_tag  ,
SizeT   
) [inline]

Definition at line 484 of file interpolation.h.

References cml::acos_safe(), cml::dot(), cml::lerp(), and cml::normalize().

Here is the call graph for this function:

template<class VecT_1 , class VecT_2 , typename Real , class SizeT >
detail::TypePromote< VecT_1,VecT_2,typename et::ExprTraits<VecT_1>::result_tag>::temporary_type cml::detail::slerp ( const VecT_1 &  v1,
const VecT_2 &  v2,
Real  t,
Real  tolerance,
et::vector_result_tag  ,
SizeT   
) [inline]

Definition at line 445 of file interpolation.h.

References cml::acos_safe(), cml::dot(), InterpResize(), and nlerp().

Referenced by cml::slerp().

Here is the call graph for this function:

Here is the caller graph for this function:

AxisOrder cml::detail::swap_axis_order ( AxisOrder  order  )  [inline]

Definition at line 101 of file helper.h.

References pack_axis_order(), and unpack_axis_order().

Referenced by cml::orthonormal_basis_axial().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class MatT , class VecT >
TEMP_VEC4 cml::detail::transform_vector_4D ( const MatT &  m,
const VecT &  v,
col_basis   
) [inline]

Definition at line 64 of file vector_transform.h.

template<class MatT , class VecT >
TEMP_VEC4 cml::detail::transform_vector_4D ( const MatT &  m,
const VecT &  v,
row_basis   
) [inline]

Definition at line 59 of file vector_transform.h.

Referenced by cml::transform_vector_4D().

Here is the caller graph for this function:

void cml::detail::unpack_axis_order ( AxisOrder  order,
size_t i,
size_t j,
size_t k,
bool &  odd 
) [inline]

Definition at line 81 of file helper.h.

Referenced by cml::orthonormal_basis(), and swap_axis_order().

Here is the caller graph for this function:

void cml::detail::unpack_axis_order_2D ( AxisOrder2D  order,
size_t i,
size_t j,
bool &  odd 
) [inline]

Definition at line 122 of file helper.h.

Referenced by cml::orthonormal_basis_2D().

Here is the caller graph for this function:

void cml::detail::unpack_euler_order ( EulerOrder  order,
size_t i,
size_t j,
size_t k,
bool &  odd,
bool &  repeat 
) [inline]

Definition at line 46 of file helper.h.

Referenced by cml::matrix_rotation_euler(), cml::matrix_rotation_euler_derivatives(), cml::matrix_to_euler(), and cml::quaternion_rotation_euler().

Here is the caller graph for this function:

template<typename LeftT , typename RightT >
DotPromote<LeftT,RightT>::promoted_scalar cml::detail::UnrollDot ( const LeftT &  left,
const RightT &  right,
dynamic_size_tag   
) [inline]

Use a loop to compute the dot product for dynamic arrays.

Note:
This should only be called for vectors.
See also:
cml::dot

Definition at line 137 of file vector_products.h.

References cml::et::CheckedSize().

Here is the call graph for this function:

template<typename LeftT , typename RightT >
DotPromote<LeftT,RightT>::promoted_scalar cml::detail::UnrollDot ( const LeftT &  left,
const RightT &  right,
fixed_size_tag   
) [inline]

Construct a dot unroller for fixed-size arrays.

Note:
This should only be called for vectors.
See also:
cml::dot

Definition at line 105 of file vector_products.h.

Referenced by cml::dot().

Here is the caller graph for this function:

template<typename LeftT , typename RightT , typename OpT >
bool cml::detail::vector_total_order ( const LeftT &  left,
const RightT &  right,
OpT   
) [inline]

Vector total order relationship.

OpT must implement a total order on the vector element type. operator<= and operator>= on integer and floating-point types are examples.

Definition at line 140 of file vector_comparison.h.

References cml::et::CheckedSize(), and CML_STATIC_REQUIRE_M.

Here is the call graph for this function:

template<typename LeftT , typename RightT , typename OpT >
bool cml::detail::vector_weak_order ( const LeftT &  left,
const RightT &  right,
OpT   
) [inline]

Vector strict weak ordering relationship.

OpT must implement a strict weak order on the vector element type. operator< and operator> on integer and floating-point types are examples.

Definition at line 82 of file vector_comparison.h.

References cml::et::CheckedSize(), and CML_STATIC_REQUIRE_M.

Here is the call graph for this function:


Generated on Sat Jul 18 19:35:38 2009 for CML 1.0 by  doxygen 1.5.9