Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::numeric::ublas::blas_3 Namespace Reference

Interface and implementation of BLAS level 3 This includes functions which perform matrix-matrix operations. More...

Functions

template<class M1 , class T , class M2 , class M3 >
M1tmm (M1 &m1, const T &t, const M2 &m2, const M3 &m3)
 triangular matrix multiplication $m_1=t.m_2.m_3$ where $m_2$ and $m_3$ are triangular More...
 
template<class M1 , class T , class M2 , class C >
M1tsm (M1 &m1, const T &t, const M2 &m2, C)
 triangular solve $ m_2.x = t.m_1$ in place, $m_2$ is a triangular matrix More...
 
template<class M1 , class T1 , class T2 , class M2 , class M3 >
M1gmm (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2, const M3 &m3)
 general matrix multiplication $m_1=t_1.m_1 + t_2.m_2.m_3$ More...
 
template<class M1 , class T1 , class T2 , class M2 >
M1srk (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2)
 symmetric rank k update: $m_1=t.m_1+t_2.(m_2.m_2^T)$ More...
 
template<class M1 , class T1 , class T2 , class M2 >
M1hrk (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2)
 hermitian rank k update: $m_1=t.m_1+t_2.(m_2.m2^H)$ More...
 
template<class M1 , class T1 , class T2 , class M2 , class M3 >
M1sr2k (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2, const M3 &m3)
 generalized symmetric rank k update: $m_1=t_1.m_1+t_2.(m_2.m3^T)+t_2.(m_3.m2^T)$ More...
 
template<class M1 , class T1 , class T2 , class M2 , class M3 >
M1hr2k (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2, const M3 &m3)
 generalized hermitian rank k update: * $m_1=t_1.m_1+t_2.(m_2.m_3^H)+(m_3.(t_2.m_2)^H)$ More...
 

Detailed Description

Interface and implementation of BLAS level 3 This includes functions which perform matrix-matrix operations.

More information about BLAS can be found at http://en.wikipedia.org/wiki/BLAS

Function Documentation

template<class M1 , class T1 , class T2 , class M2 , class M3 >
M1& boost::numeric::ublas::blas_3::gmm ( M1 m1,
const T1 &  t1,
const T2 &  t2,
const M2 &  m2,
const M3 &  m3 
)

general matrix multiplication $m_1=t_1.m_1 + t_2.m_2.m_3$

Parameters
m1first matrix
t1first scalar
t2second scalar
m2second matrix
m3third matrix
Returns
the matrix m1
Template Parameters
M1type of the first matrix (not needed by default)
T1type of the first scalar (not needed by default)
T2type of the second scalar (not needed by default)
M2type of the second matrix (not needed by default)
M3type of the third matrix (not needed by default)

References boost::numeric::ublas::prod().

template<class M1 , class T1 , class T2 , class M2 , class M3 >
M1& boost::numeric::ublas::blas_3::hr2k ( M1 m1,
const T1 &  t1,
const T2 &  t2,
const M2 &  m2,
const M3 &  m3 
)

generalized hermitian rank k update: * $m_1=t_1.m_1+t_2.(m_2.m_3^H)+(m_3.(t_2.m_2)^H)$

Parameters
m1first matrix
t1first scalar
t2second scalar
m2second matrix
m3third matrix
Returns
matrix m1
Template Parameters
M1type of the first matrix (not needed by default)
T1type of the first scalar (not needed by default)
T2type of the second scalar (not needed by default)
M2type of the second matrix (not needed by default)
M3type of the third matrix (not needed by default)
Todo:
use opb_prod()

References boost::numeric::ublas::scalar_traits< T >::conj(), boost::numeric::ublas::herm(), and boost::numeric::ublas::prod().

template<class M1 , class T1 , class T2 , class M2 >
M1& boost::numeric::ublas::blas_3::hrk ( M1 m1,
const T1 &  t1,
const T2 &  t2,
const M2 &  m2 
)

hermitian rank k update: $m_1=t.m_1+t_2.(m_2.m2^H)$

Parameters
m1first matrix
t1first scalar
t2second scalar
m2second matrix
Returns
matrix m1
Template Parameters
M1type of the first matrix (not needed by default)
T1type of the first scalar (not needed by default)
T2type of the second scalar (not needed by default)
M2type of the second matrix (not needed by default)
Todo:
use opb_prod()

References boost::numeric::ublas::herm(), and boost::numeric::ublas::prod().

template<class M1 , class T1 , class T2 , class M2 , class M3 >
M1& boost::numeric::ublas::blas_3::sr2k ( M1 m1,
const T1 &  t1,
const T2 &  t2,
const M2 &  m2,
const M3 &  m3 
)

generalized symmetric rank k update: $m_1=t_1.m_1+t_2.(m_2.m3^T)+t_2.(m_3.m2^T)$

Parameters
m1first matrix
t1first scalar
t2second scalar
m2second matrix
m3third matrix
Returns
matrix m1
Template Parameters
M1type of the first matrix (not needed by default)
T1type of the first scalar (not needed by default)
T2type of the second scalar (not needed by default)
M2type of the second matrix (not needed by default)
M3type of the third matrix (not needed by default)
Todo:
use opb_prod()

References boost::numeric::ublas::prod(), and boost::numeric::ublas::trans().

template<class M1 , class T1 , class T2 , class M2 >
M1& boost::numeric::ublas::blas_3::srk ( M1 m1,
const T1 &  t1,
const T2 &  t2,
const M2 &  m2 
)

symmetric rank k update: $m_1=t.m_1+t_2.(m_2.m_2^T)$

Parameters
m1first matrix
t1first scalar
t2second scalar
m2second matrix
Returns
matrix m1
Template Parameters
M1type of the first matrix (not needed by default)
T1type of the first scalar (not needed by default)
T2type of the second scalar (not needed by default)
M2type of the second matrix (not needed by default)
Todo:
use opb_prod()

References boost::numeric::ublas::prod(), and boost::numeric::ublas::trans().

template<class M1 , class T , class M2 , class M3 >
M1& boost::numeric::ublas::blas_3::tmm ( M1 m1,
const T t,
const M2 &  m2,
const M3 &  m3 
)

triangular matrix multiplication $m_1=t.m_2.m_3$ where $m_2$ and $m_3$ are triangular

Parameters
m1a matrix for storing result
ta scalar
m2a triangular matrix
m3a triangular matrix
Returns
the matrix m1
Template Parameters
M1type of the result matrix (not needed by default)
Ttype of the scalar (not needed by default)
M2type of the first triangular matrix (not needed by default)
M3type of the second triangular matrix (not needed by default)

References boost::numeric::ublas::prod().

template<class M1 , class T , class M2 , class C >
M1& boost::numeric::ublas::blas_3::tsm ( M1 m1,
const T t,
const M2 &  m2,
 
)

triangular solve $ m_2.x = t.m_1$ in place, $m_2$ is a triangular matrix

Parameters
m1a matrix
ta scalar
m2a triangular matrix
C(not used)
Returns
the $m_1$ matrix
Template Parameters
M1type of the first matrix (not needed by default)
Ttype of the scalar (not needed by default)
M2type of the triangular matrix (not needed by default)
C(n/a)

References boost::numeric::ublas::solve().