Yet Another Game Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
yage::matrix Namespace Reference

Namespace containing functions that operate on matrices. More...

Functions

template<int M, int N, class T >
Matrix< N, M, T > transpose (const Matrix< M, N, T > &m)
 Transposes a matrix and returns the result. More...
 
template<int R, class T >
dot (const Matrix< R, 1, T > &m1, const Matrix< R, 1, T > &m2)
 Returns the dot product between two vectors. More...
 
template<int M, int N, int P, int Q, class T >
Matrix< M, Q, T > multiply (const Matrix< M, N, T > &m1, const Matrix< P, Q, T > &m2)
 Multiplies two matrices together. More...
 

Detailed Description

Namespace containing functions that operate on matrices.

Implementations defined here are meant to operate on anything that inherits from the base Matrix class.

Function Documentation

template<int R, class T >
T yage::matrix::dot ( const Matrix< R, 1, T > &  m1,
const Matrix< R, 1, T > &  m2 
)

Returns the dot product between two vectors.

Parameters
m1,m2Input matrices.
template<int M, int N, int P, int Q, class T >
Matrix<M, Q, T> yage::matrix::multiply ( const Matrix< M, N, T > &  m1,
const Matrix< P, Q, T > &  m2 
)

Multiplies two matrices together.

Parameters
m1,m2Matrix inputs

Requires the two matrices to be compatible with multiplication.

Todo:
Think if this should be a static_assert.

Performs multiplication by getting the rows and columns, transposing one of them and then doting the result.

template<int M, int N, class T >
Matrix<N, M, T> yage::matrix::transpose ( const Matrix< M, N, T > &  m)

Transposes a matrix and returns the result.

Parameters
minput matrix.