YAP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Functions
Matrix.h File Reference
#include "fwd/Matrix.h"
#include "Exceptions.h"
#include "MathUtilities.h"
#include <array>
#include <string>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

class  Matrix< T, R, C >
 

Namespaces

 yap
 
 

Functions

template<typename T , size_t R, size_t C>
std::string to_string (const Matrix< T, R, C > &M)
 
template<typename T , size_t N>
const SquareMatrix< T, N > zeroMatrix ()
 zero square matrix
 
template<typename T , size_t R, size_t C>
const Matrix< T, R, C > zeroMatrix ()
 zero matrix
 
template<typename T , size_t N>
const SquareMatrix< T, N > unitMatrix ()
 unit matrix
 
template<typename T , size_t N>
const SquareMatrix< T, N > diagonalMatrix (std::array< T, N > d)
 diagonal matrix
 
template<typename T , size_t N>
const SquareMatrix< T, N > symmetricMatrix (std::initializer_list< T > elements)
 
template<typename T , size_t R, size_t C>
const Matrix< T, C, R > transpose (const Matrix< T, R, C > &M)
 transpose a matrix
 
template<typename T , size_t R, size_t C>
const Matrix< T, C, R > operator- (const Matrix< T, R, C > &M)
 unary minus
 
template<typename T , size_t R, size_t K, size_t C>
std::enable_if< (R!=1) or(C!=1),
Matrix< T, R, C > >::type
const 
operator* (const Matrix< T, R, K > &A, const Matrix< T, K, C > &B)
 matrix multiplication
 
template<typename T1 , typename T2 , size_t R, size_t K, size_t C>
auto operator* (const Matrix< T1, R, K > &A, const Matrix< T2, K, C > &B) -> const typename std::enable_if< (R!=1) or(C!=1), Matrix< typename std::remove_cv< decltype(operator*(A[0][0], B[0][0]))>::type, R, C > >::type
 
template<typename T , size_t K>
const T operator* (const Matrix< T, 1, K > &A, const Matrix< T, K, 1 > &B)
 matrix multiplication yielding single value
 
template<typename T , size_t R, size_t C>
Matrix< T, R, C > & operator*= (Matrix< T, R, C > &M, const T &c)
 assignment by multiplication by a single element
 
template<typename T1 , typename T2 , size_t R, size_t C>
Matrix< T2, R, C > & operator*= (Matrix< T2, R, C > &M, const T1 &c)
 assignment by multiplication by a single element with different template types
 
template<typename T , size_t R, size_t C>
const Matrix< T, R, C > operator* (const T &c, const Matrix< T, R, C > &M)
 multiplication by a single element
 
template<typename T1 , typename T2 , size_t R, size_t C>
const Matrix< T2, R, C > operator* (const T1 &c, const Matrix< T2, R, C > &M)
 multiplication by a single element with different template types
 
template<typename T1 , typename T2 , size_t R, size_t C>
const Matrix< T2, R, C > operator* (const Matrix< T1, R, C > &M, const T2 &c)
 multiplication by a single element with different template types
 
template<typename T , size_t R, size_t C>
Matrix< T, R, C > & operator+= (Matrix< T, R, C > &lhs, const Matrix< T, R, C > &rhs)
 addition assignment
 
template<typename T , size_t R, size_t C>
const Matrix< T, R, C > operator+ (const Matrix< T, R, C > &lhs, const Matrix< T, R, C > &rhs)
 addition
 
template<typename T , size_t R, size_t C>
Matrix< T, R, C > & operator-= (Matrix< T, R, C > &lhs, const Matrix< T, R, C > &rhs)
 subtraction assignment
 
template<typename T , size_t R, size_t C>
const Matrix< T, R, C > operator- (const Matrix< T, R, C > &lhs, const Matrix< T, R, C > &rhs)
 subtraction
 
template<typename T , size_t N>
const SquareMatrix< T, N-1 > minor_matrix (const SquareMatrix< T, N > &M, size_t r, size_t c)
 
template<typename T , size_t N>
const T minor_det (const SquareMatrix< T, N > &M, size_t r, size_t c)
 
template<typename T , size_t N>
const T cofactor (const SquareMatrix< T, N > &M, size_t r, size_t c)
 
template<typename T , size_t N>
const T det (SquareMatrix< T, N > M)
 
template<typename T , size_t M, size_t N>
const SquareMatrix< T, M > diagonal_minor (const SquareMatrix< T, N > m, std::vector< size_t > indices)
 diagonal minor matrix
 
template<typename T , size_t N>
const T trace (const SquareMatrix< T, N > &M)
 trace