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

Static Public Member Functions | Private Types | Private Member Functions
tvmet::meta::gemtm< Rows1, Cols1, Cols2, K > Class Template Reference

Meta class for trans(matrix)-matrix operations, like product. More...

#include <tvmet/meta/Gemtm.h>

List of all members.

Static Public Member Functions

template<class E1 , class E2 >
static PromoteTraits< typename
E1::value_type, typename
E2::value_type >::value_type 
prod (const E1 &lhs, const E2 &rhs, std::size_t i, std::size_t j)

Private Types

enum  { doIt = (K != Rows1 - 1) }

Private Member Functions

 gemtm ()
 gemtm (const gemtm &)
gemtmoperator= (const gemtm &)

Detailed Description

template<std::size_t Rows1, std::size_t Cols1, std::size_t Cols2, std::size_t K>
class tvmet::meta::gemtm< Rows1, Cols1, Cols2, K >

Meta class for trans(matrix)-matrix operations, like product.

,0,0> Gemtm.h "tvmet/meta/Gemtm.h"

using formula

\[ M_1^{T}\,M_2 \]

Note:
The number of cols of matrix 2 have to be equal to number of rows of matrix 1, since matrix 1 is transposed - the result is a (Cols1 x Cols2) matrix.

gemtm Specialized for recursion.


Member Enumeration Documentation

template<std::size_t Rows1, std::size_t Cols1, std::size_t Cols2, std::size_t K>
anonymous enum [private]
Enumerator:
doIt 

recursive counter


Constructor & Destructor Documentation

template<std::size_t Rows1, std::size_t Cols1, std::size_t Cols2, std::size_t K>
tvmet::meta::gemtm< Rows1, Cols1, Cols2, K >::gemtm ( ) [private]
template<std::size_t Rows1, std::size_t Cols1, std::size_t Cols2, std::size_t K>
tvmet::meta::gemtm< Rows1, Cols1, Cols2, K >::gemtm ( const gemtm< Rows1, Cols1, Cols2, K > &  ) [private]

Member Function Documentation

template<std::size_t Rows1, std::size_t Cols1, std::size_t Cols2, std::size_t K>
gemtm& tvmet::meta::gemtm< Rows1, Cols1, Cols2, K >::operator= ( const gemtm< Rows1, Cols1, Cols2, K > &  ) [private]
template<std::size_t Rows1, std::size_t Cols1, std::size_t Cols2, std::size_t K>
template<class E1 , class E2 >
static PromoteTraits< typename E1::value_type, typename E2::value_type >::value_type tvmet::meta::gemtm< Rows1, Cols1, Cols2, K >::prod ( const E1 &  lhs,
const E2 &  rhs,
std::size_t  i,
std::size_t  j 
) [inline, static]
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Defines

Author: