SourceForge Logo Tiny Vector Matrix library using Expression Templates Sourceforge Project Page

include/tvmet/MatrixUnaryFunctions.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tvmet

Defines

#define TVMET_DECLARE_MACRO(NAME)
#define TVMET_DECLARE_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME)

Functions

template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_abs<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::abs (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 absolute value function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_cbrt<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::cbrt (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 cube root function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_ceil<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::ceil (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_floor<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::floor (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 round function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_rint<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::rint (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 round function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_sin<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::sin (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 sin function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_cos<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::cos (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 cos function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_tan<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::tan (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_sinh<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::sinh (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 sinh function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_cosh<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::cosh (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 cosh function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_tanh<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::tanh (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_asin<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::asin (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 asin function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_acos<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::acos (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 acos function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_atan<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::atan (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 atan function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_exp<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::exp (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 exponential function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_log<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::log (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 logarithmic function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_log10<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::log10 (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 logarithmic function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_sqrt<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::sqrt (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 sqrt function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_asinh<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::asinh (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math asinh function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_acosh<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::acosh (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math acosh function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_atanh<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::atanh (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math atanh function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_expm1<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::expm1 (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math expm1 function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_log1p<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::log1p (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math log1p function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_erf<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::erf (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math erf function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_erfc<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::erfc (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math erfc function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_j0<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::j0 (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math Bessel function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_j1<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::j1 (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math Bessel function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_y0<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::y0 (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math Bessel function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_y1<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::y1 (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math Bessel function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_lgamma<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::lgamma (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math lgamma function on Matrix.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_isnan<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::isnan (const Matrix< T, Rows, Cols > &rhs)
 IEEE Math isnan.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_isinf<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::isinf (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
 IEEE Math isinf.
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_finite<
T >, MatrixConstReference<
T, Rows, Cols > >, Rows,
Cols > 
tvmet::finite (const Matrix< T, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_real<
std::complex< T > >, MatrixConstReference<
std::complex< T >, Rows,
Cols > >, Rows, Cols > 
tvmet::real (const Matrix< std::complex< T >, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_imag<
std::complex< T > >, MatrixConstReference<
std::complex< T >, Rows,
Cols > >, Rows, Cols > 
tvmet::imag (const Matrix< std::complex< T >, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_arg<
std::complex< T > >, MatrixConstReference<
std::complex< T >, Rows,
Cols > >, Rows, Cols > 
tvmet::arg (const Matrix< std::complex< T >, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_norm<
std::complex< T > >, MatrixConstReference<
std::complex< T >, Rows,
Cols > >, Rows, Cols > 
tvmet::norm (const Matrix< std::complex< T >, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE
template<class T, std::size_t Rows, std::size_t Cols>
XprMatrix< XprUnOp< Fcnl_conj<
std::complex< T > >, MatrixConstReference<
std::complex< T >, Rows,
Cols > >, Rows, Cols > 
tvmet::conj (const Matrix< std::complex< T >, Rows, Cols > &rhs) TVMET_CXX_ALWAYS_INLINE


Define Documentation

#define TVMET_DECLARE_MACRO ( NAME   ) 

Value:

template<class T, std::size_t Rows, std::size_t Cols>       \
inline                    \
XprMatrix<                  \
  XprUnOp<                  \
    Fcnl_##NAME< std::complex<T> >,           \
    MatrixConstReference<std::complex<T>, Rows, Cols>       \
  >,                    \
  Rows, Cols                  \
>                   \
NAME(const Matrix<std::complex<T>, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_DECLARE_MACRO ( NAME   ) 

Value:

template<class T, std::size_t Rows, std::size_t Cols>   \
inline                \
XprMatrix<              \
  XprUnOp<              \
    Fcnl_##NAME<T>,           \
    MatrixConstReference<T, Rows, Cols>       \
  >,                \
  Rows, Cols              \
>               \
NAME(const Matrix<T, Rows, Cols>& rhs) TVMET_CXX_ALWAYS_INLINE;

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template<class T, std::size_t Rows, std::size_t Cols>     \
inline                  \
XprMatrix<                \
  XprUnOp<                \
    Fcnl_##NAME< std::complex<T> >,         \
    MatrixConstReference<std::complex<T>, Rows, Cols>     \
  >,                  \
  Rows, Cols                \
>                 \
NAME(const Matrix<std::complex<T>, Rows, Cols>& rhs) {      \
  typedef XprUnOp<              \
    Fcnl_##NAME< std::complex<T> >,         \
    MatrixConstReference<std::complex<T>, Rows, Cols>     \
  >               expr_type;  \
  return XprMatrix<expr_type, Rows, Cols>(expr_type(rhs.const_ref()));  \
}

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template<class T, std::size_t Rows, std::size_t Cols>     \
inline                  \
XprMatrix<                \
  XprUnOp<                \
    Fcnl_##NAME<T>,             \
    MatrixConstReference<T, Rows, Cols>         \
  >,                  \
  Rows, Cols                \
>                 \
NAME(const Matrix<T, Rows, Cols>& rhs) {        \
  typedef XprUnOp<              \
    Fcnl_##NAME<T>,             \
    MatrixConstReference<T, Rows, Cols>         \
  >               expr_type;  \
  return XprMatrix<expr_type, Rows, Cols>(expr_type(rhs.const_ref()));  \
}


Author: