vmmlib  1.9.0
Templatized C++ vector and matrix math library
vmml::matrix< M, N, T > Class Template Reference
+ Collaboration diagram for vmml::matrix< M, N, T >:

Public Types

typedef T value_type
 
typedef T * iterator
 
typedef const T * const_iterator
 
typedef std::reverse_iterator< iterator > reverse_iterator
 
typedef std::reverse_iterator< const_iterator > const_reverse_iterator
 

Public Member Functions

template<size_t P, size_t Q, typename U >
 matrix (const matrix< P, Q, U > &source_)
 
T & operator() (size_t row_index, size_t col_index)
 
const T & operator() (size_t row_index, size_t col_index) const
 
T & at (size_t row_index, size_t col_index)
 
const T & at (size_t row_index, size_t col_index) const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator rend () const
 
 operator T * ()
 
 operator const T * () const
 
bool operator== (const matrix &other) const
 
bool operator!= (const matrix &other) const
 
bool equals (const matrix &other, T tolerance) const
 
template<typename compare_t >
bool equals (const matrix &other, compare_t &cmp) const
 
void multiply_piecewise (const matrix &other)
 
template<size_t P>
void multiply (const matrix< M, P, T > &left, const matrix< P, N, T > &right)
 
template<size_t U, size_t V>
void convolve (const matrix< U, V, T > &kernel)
 
template<size_t P>
matrix< M, P, T > operator* (const matrix< N, P, T > &other) const
 
template<size_t O, size_t P, typename TT >
enable_if< M==N &&O==P &&M==O, TT >::type * operator*= (const matrix< O, P, TT > &right)
 
matrix operator+ (const matrix &other) const
 
matrix operator- (const matrix &other) const
 
void operator+= (const matrix &other)
 
void operator-= (const matrix &other)
 
void operator+= (T scalar)
 
void operator-= (T scalar)
 
template<size_t O, size_t P, size_t Q, size_t R>
enable_if< M==O+Q &&N==P+R >::type * direct_sum (const matrix< O, P, T > &m0, const matrix< Q, R, T > &m1)
 
matrix operator* (T scalar)
 
void operator*= (T scalar)
 
matrix operator/ (T scalar)
 
void operator/= (T scalar)
 
vector< M, T > operator* (const vector< N, T > &other) const
 
template<size_t O>
vector< O, T > operator* (const vector< O, T > &vector_) const
 
matrix< M, N, T > operator- () const
 
matrix< M, N, T > negate () const
 
void tensor (const vector< M, T > &u, const vector< N, T > &v)
 
template<size_t uM, size_t vM>
enable_if< uM==3 &&vM==3 &&M==N &&M==4 >::type * tensor (const vector< uM, T > &u, const vector< vM, T > &v)
 
template<size_t O, size_t P>
matrix< O, P, T > get_sub_matrix (size_t row_offset, size_t col_offset, typename enable_if< O<=M &&P<=N >::type *=0) const
 
template<size_t O, size_t P, typename TT >
enable_if< M==N &&O==P &&M==O, TT >::type * operator*= (const matrix< O, P, TT > &right)
 
template<size_t uM, size_t vM>
enable_if< uM==3 &&vM==3 &&M==N &&M==4 >::type * tensor (const vector< uM, T > &u, const vector< vM, T > &v)
 
template<size_t O, size_t P, size_t Q, size_t R>
enable_if< M==O+Q &&N==P+R >::type * direct_sum (const matrix< O, P, T > &upper_left, const matrix< Q, R, T > &lower_right)
 

Static Public Attributes

static const size_t ROWS = M
 
static const size_t COLS = N
 

Detailed Description

template<size_t M, size_t N, typename T = float>
class vmml::matrix< M, N, T >

Definition at line 58 of file matrix.hpp.


The documentation for this class was generated from the following file: