Namespaces | Classes | Typedefs | Functions

mln::metal Namespace Reference

Namespace of meta-programming tools. More...

Namespaces

namespace  impl
 

Implementation namespace of metal namespace.


namespace  internal
 

Internal namespace of metal namespace.


namespace  math
 

Namespace of static mathematical functions.


Classes

struct  abort_
struct  and_
 And type. More...
struct  ands
 Ands type. More...
struct  array1d
struct  array2d
struct  array3d
struct  bool_< false >
 "false" type. More...
struct  bool_< true >
 "true" type. More...
struct  const_
struct  const_< const T & >
struct  const_< const T * >
struct  const_< const T *const >
struct  const_< const T >
struct  const_< T & >
struct  const_< T * >
struct  const_< T *const >
struct  const_return_
struct  const_return_< const T & >
struct  const_return_< const T * >
struct  const_return_< const T *const >
struct  const_return_< const T >
struct  const_return_< T & >
struct  const_return_< T * >
struct  const_return_< T *const >
struct  converts_to
 "converts-to" check. More...
struct  converts_to< double, def::coord >
struct  converts_to< double, int >
struct  converts_to< double, value::int_s< n > >
struct  converts_to< double, value::int_u< n > >
struct  converts_to< float, def::coord >
struct  converts_to< float, int >
struct  converts_to< float, value::int_s< n > >
struct  converts_to< float, value::int_u< n > >
struct  converts_to< T **, U ** >
struct  converts_to< T *, U * >
struct  equal
 Definition of a static 'equal' test. More...
struct  equal< T, T >
struct  fix_return
struct  fix_return< const T & >
struct  fix_return< const T * >
struct  fix_return< const T *const >
struct  fix_return< const T >
struct  fix_return< T & >
struct  fix_return< T * >
struct  fix_return< T *const >
struct  goes_to
 "goes-to" check. More...
struct  if_
 "if-then-else" expression. More...
struct  int_
 "int" type. More...
struct  is
 "is" check. More...
struct  is< const T, const U >
struct  is< T &, U & >
struct  is< T **, U ** >
struct  is< T *, U * >
struct  is_a
 "is_a" check. More...
struct  is_a< const T &, M >
struct  is_a< const T, M >
struct  is_a< T &, M >
struct  is_const
struct  is_const< const T & >
struct  is_const< const T >
struct  is_not
 "is_not" check. More...
struct  is_not_a
 "is_not_a" static Boolean expression. More...
struct  is_not_const
struct  is_not_const< const T & >
struct  is_not_const< const T >
struct  is_not_ref
struct  is_not_ref< const T & >
struct  is_not_ref< T & >
struct  is_ref
struct  is_ref< const T & >
struct  is_ref< T & >
struct  is_unqualif
class  mat
struct  not_
 Negate type. More...
struct  not_equal
struct  not_equal< T, T >
struct  or_
 Or type. More...
struct  ref
struct  ref< T & >
struct  same_coord
struct  same_point
struct  templated_by
struct  templated_by< T< V >, T >
struct  unconst
struct  unconst< const T & >
struct  unconst< const T >
struct  unptr
struct  unptr< T * >
struct  unqualif
struct  unref
struct  unref< const T & >
struct  unref< T & >
class  vec
struct  xor_
 Xor type. More...

Typedefs

typedef bool_< false > false_
typedef bool_< true > true_

Functions

template<unsigned i, class T , unsigned n>
get (const array1d< T, n > &arr)
template<unsigned row, unsigned col, class T , unsigned r, unsigned c>
get (const array2d< T, r, c > &arr)
template<unsigned sli, unsigned row, unsigned col, class T , unsigned s, unsigned r, unsigned c>
get_ (const array3d< T, s, r, c > &arr)
template<unsigned i, class T , unsigned n>
get_at (const array1d< T, n > &arr)
template<unsigned sli, unsigned row, unsigned col, class T , unsigned s, unsigned r, unsigned c>
get_at (const array3d< T, s, r, c > &arr)
template<unsigned row, unsigned col, class T , unsigned r, unsigned c>
get_at (const array2d< T, r, c > &arr)
template<unsigned n, typename T , typename U >
mln::trait::value_< typename
mln::trait::op::times< T, U >
::ret >::sum 
operator* (const vec< n, T > &lhs, const vec< n, U > &rhs)
template<unsigned n, typename T , typename S >
vec< n, typename
mln::trait::op::times< T, S >
::ret
operator* (const vec< n, T > &lhs, const mln::value::scalar_< S > &s)
template<unsigned n, unsigned o, typename T , unsigned m, typename U >
mat< n, m, typename
mln::trait::value_< typename
mln::trait::op::times< T, U >
::ret >::sum > 
operator* (const mat< n, o, T > &lhs, const mat< o, m, U > &rhs)
template<unsigned n, unsigned m, typename T , typename U >
vec< n, typename
mln::trait::value_< typename
mln::trait::op::times< T, U >
::ret >::sum > 
operator* (const mat< n, m, T > &lhs, const vec< m, U > &rhs)
template<unsigned n, unsigned m, typename T , typename S >
mat< n, m, typename
mln::trait::op::times< T, S >
::ret
operator* (const mat< n, m, T > &lhs, const value::scalar_< S > &s)
template<unsigned n, unsigned m, typename T , typename U >
mat< n, m, typename
mln::trait::op::plus< T, U >
::ret
operator+ (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs)
template<unsigned n, unsigned m, typename T , typename U >
mat< n, m, typename
mln::trait::op::plus< T, U >
::ret
operator+ (mat< n, m, T > &lhs, const mat< n, m, U > &rhs)
template<unsigned n, typename T , typename U >
vec< n, typename
mln::trait::op::plus< T, U >
::ret
operator+ (const vec< n, T > &lhs, const vec< n, U > &rhs)
template<unsigned n, typename T , typename U >
vec< n, typename
mln::trait::op::minus< T, U >
::ret
operator- (const vec< n, T > &lhs, const vec< n, U > &rhs)
template<unsigned n, unsigned m, typename T >
mat< n, m, typename
mln::trait::op::uminus< T >
::ret
operator- (const mat< n, m, T > &lhs)
template<unsigned n, unsigned m, typename T , typename U >
mat< n, m, typename
mln::trait::op::minus< T, U >
::ret
operator- (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs)
template<unsigned n, typename T , typename S >
vec< n, typename
mln::trait::op::div< T, S >
::ret
operator/ (const vec< n, T > &lhs, const mln::value::scalar_< S > &s)
template<unsigned n, unsigned m, typename T , typename S >
mat< n, m, typename
mln::trait::op::div< T, S >
::ret
operator/ (const mat< n, m, T > &lhs, const value::scalar_< S > &s)
template<typename T , unsigned r, unsigned c>
std::ostream & operator<< (std::ostream &ostr, const array2d< T, r, c > &rhs)
template<unsigned n, unsigned m, typename T >
std::ostream & operator<< (std::ostream &ostr, const mat< n, m, T > &v)
template<typename T , unsigned n>
std::ostream & operator<< (std::ostream &ostr, const array1d< T, n > &rhs)
template<unsigned n, typename T >
std::ostream & operator<< (std::ostream &ostr, const vec< n, T > &v)
template<unsigned n, unsigned m, typename T , typename U >
bool operator== (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs)
template<unsigned n, typename T , typename U >
bool operator== (const vec< n, T > &lhs, const vec< n, U > &rhs)
template<unsigned n, unsigned m, typename T , typename U >
bool operator== (mat< n, m, T > &lhs, const mat< n, m, U > &rhs)
template<typename T , typename U >
vec< 3, typename
mln::trait::op::times< T, U >
::ret
vprod (const vec< 3, T > &lhs, const vec< 3, U > &rhs)

Detailed Description

Namespace of meta-programming tools.


Typedef Documentation

typedef bool_<false> mln::metal::false_

Definition at line 78 of file bool.hh.

typedef bool_<true> mln::metal::true_

Definition at line 64 of file bool.hh.


Function Documentation

template<unsigned i, class T , unsigned n>
T mln::metal::get ( const array1d< T, n > &  arr  )  [inline]

Definition at line 48 of file metal/array.hh.

template<unsigned row, unsigned col, class T , unsigned r, unsigned c>
T mln::metal::get ( const array2d< T, r, c > &  arr  )  [inline]

Definition at line 64 of file metal/array.hh.

template<unsigned sli, unsigned row, unsigned col, class T , unsigned s, unsigned r, unsigned c>
T mln::metal::get_ ( const array3d< T, s, r, c > &  arr  )  [inline]

Definition at line 80 of file metal/array.hh.

template<unsigned i, class T , unsigned n>
T mln::metal::get_at ( const array1d< T, n > &  arr  )  [inline]

Definition at line 42 of file metal/array.hh.

template<unsigned sli, unsigned row, unsigned col, class T , unsigned s, unsigned r, unsigned c>
T mln::metal::get_at ( const array3d< T, s, r, c > &  arr  )  [inline]

Definition at line 73 of file metal/array.hh.

template<unsigned row, unsigned col, class T , unsigned r, unsigned c>
T mln::metal::get_at ( const array2d< T, r, c > &  arr  )  [inline]

Definition at line 57 of file metal/array.hh.

template<unsigned n, typename T , typename U >
mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum mln::metal::operator* ( const vec< n, T > &  lhs,
const vec< n, U > &  rhs 
) [inline]

Definition at line 483 of file metal/vec.hh.

References mln::literal::zero.

template<unsigned n, typename T , typename S >
vec< n, typename mln::trait::op::times< T, S >::ret > mln::metal::operator* ( const vec< n, T > &  lhs,
const mln::value::scalar_< S > &  s 
) [inline]

Definition at line 494 of file metal/vec.hh.

References mln::value::scalar_< T >::to_equiv().

template<unsigned n, unsigned o, typename T , unsigned m, typename U >
mat< n, m, typename mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum > mln::metal::operator* ( const mat< n, o, T > &  lhs,
const mat< o, m, U > &  rhs 
) [inline]

Definition at line 403 of file metal/mat.hh.

References mln::rhs, and mln::literal::zero.

template<unsigned n, unsigned m, typename T , typename U >
vec< n, typename mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum > mln::metal::operator* ( const mat< n, m, T > &  lhs,
const vec< m, U > &  rhs 
) [inline]

Definition at line 420 of file metal/mat.hh.

References mln::literal::zero.

template<unsigned n, unsigned m, typename T , typename S >
mat< n, m, typename mln::trait::op::times< T, S >::ret > mln::metal::operator* ( const mat< n, m, T > &  lhs,
const value::scalar_< S > &  s 
) [inline]

Definition at line 436 of file metal/mat.hh.

References mln::value::scalar_< T >::to_equiv().

template<unsigned n, unsigned m, typename T , typename U >
mat<n, m, typename mln::trait::op::plus< T , U >::ret> mln::metal::operator+ ( const mat< n, m, T > &  lhs,
const mat< n, m, U > &  rhs 
) [inline]

Definition at line 366 of file metal/mat.hh.

References mln::rhs.

template<unsigned n, unsigned m, typename T , typename U >
mat<n, m, typename mln::trait::op::plus< T , U >::ret> mln::metal::operator+ ( mat< n, m, T > &  lhs,
const mat< n, m, U > &  rhs 
)
template<unsigned n, typename T , typename U >
vec< n, typename mln::trait::op::plus< T, U >::ret > mln::metal::operator+ ( const vec< n, T > &  lhs,
const vec< n, U > &  rhs 
) [inline]

Definition at line 461 of file metal/vec.hh.

template<unsigned n, typename T , typename U >
vec< n, typename mln::trait::op::minus< T, U >::ret > mln::metal::operator- ( const vec< n, T > &  lhs,
const vec< n, U > &  rhs 
) [inline]

Definition at line 472 of file metal/vec.hh.

template<unsigned n, unsigned m, typename T >
mat< n, m, typename mln::trait::op::uminus< T >::ret > mln::metal::operator- ( const mat< n, m, T > &  lhs  )  [inline]

Definition at line 390 of file metal/mat.hh.

References mln::rhs.

template<unsigned n, unsigned m, typename T , typename U >
mat< n, m, typename mln::trait::op::minus< T, U >::ret > mln::metal::operator- ( const mat< n, m, T > &  lhs,
const mat< n, m, U > &  rhs 
) [inline]

Definition at line 378 of file metal/mat.hh.

References mln::rhs.

template<unsigned n, typename T , typename S >
vec< n, typename mln::trait::op::div< T, S >::ret > mln::metal::operator/ ( const vec< n, T > &  lhs,
const mln::value::scalar_< S > &  s 
) [inline]
template<unsigned n, unsigned m, typename T , typename S >
mat< n, m, typename mln::trait::op::div< T, S >::ret > mln::metal::operator/ ( const mat< n, m, T > &  lhs,
const value::scalar_< S > &  s 
) [inline]

Definition at line 449 of file metal/mat.hh.

References mln::value::scalar_< T >::to_equiv().

template<typename T , unsigned r, unsigned c>
std::ostream& mln::metal::operator<< ( std::ostream &  ostr,
const array2d< T, r, c > &  rhs 
)

Definition at line 98 of file metal/array.hh.

References mln::rhs.

template<unsigned n, unsigned m, typename T >
std::ostream & mln::metal::operator<< ( std::ostream &  ostr,
const mat< n, m, T > &  v 
) [inline]

Definition at line 464 of file metal/mat.hh.

References mln::debug::format().

template<typename T , unsigned n>
std::ostream& mln::metal::operator<< ( std::ostream &  ostr,
const array1d< T, n > &  rhs 
)

Definition at line 88 of file metal/array.hh.

References mln::rhs.

template<unsigned n, typename T >
std::ostream & mln::metal::operator<< ( std::ostream &  ostr,
const vec< n, T > &  v 
) [inline]

Definition at line 528 of file metal/vec.hh.

References mln::debug::format().

template<unsigned n, unsigned m, typename T , typename U >
bool mln::metal::operator== ( const mat< n, m, T > &  lhs,
const mat< n, m, U > &  rhs 
) [inline]

Definition at line 354 of file metal/mat.hh.

References mln::rhs.

template<unsigned n, typename T , typename U >
bool mln::metal::operator== ( const vec< n, T > &  lhs,
const vec< n, U > &  rhs 
) [inline]

Definition at line 449 of file metal/vec.hh.

template<unsigned n, unsigned m, typename T , typename U >
bool mln::metal::operator== ( mat< n, m, T > &  lhs,
const mat< n, m, U > &  rhs 
)
template<typename T , typename U >
vec< 3, typename mln::trait::op::times< T, U >::ret > mln::metal::vprod ( const vec< 3, T > &  lhs,
const vec< 3, U > &  rhs 
) [inline]

Definition at line 541 of file metal/vec.hh.