PLaSK library

Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
matrices.hpp File Reference
`#include <cstring>`
`#include <cmath>`
`#include <plask/plask.hpp>`
`#include "fortran.hpp"`
Include dependency graph for matrices.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | plask::optical::modal::Matrix< T >
| General simple matrix template. More...
class | plask::optical::modal::MatrixDiagonal< T >
| General simple diagonal matrix template. More...

## Namespaces
namespace | plask
| Patterson quadrature for complex function along specified line.
namespace | plask::optical
namespace | plask::optical::modal

## Typedefs
typedef Matrix< double > | plask::optical::modal::dmatrix
typedef Matrix< dcomplex > | plask::optical::modal::cmatrix
typedef DataVector< dcomplex > | plask::optical::modal::cvector
typedef DataVector< double > | plask::optical::modal::dvector
typedef DataVector< const dcomplex > | plask::optical::modal::const_cvector
typedef MatrixDiagonal< dcomplex > | plask::optical::modal::cdiagonal

## Functions
template<typename T >
Matrix< T > | plask::optical::modal::operator+ (const Matrix< T > &A, const Matrix< T > &B)
| Summation operator of the matrices.
template<typename T >
Matrix< T > | plask::optical::modal::operator- (const Matrix< T > &A, const Matrix< T > &B)
| Difference operator of the matrices.
template<typename T >
Matrix< T > | plask::optical::modal::operator- (const Matrix< T > &A)
| Negation operator of the matrix.
cmatrix | plask::optical::modal::operator* (const cmatrix &A, const cmatrix &B)
| Multiplication operator of the matrices (using BLAS level3)
cvector | plask::optical::modal::operator* (const cmatrix &A, const cvector &v)
| Multiplication operator of the matrix-vector product (using BLAS level3)
template<typename T >
cmatrix | plask::optical::modal::operator* (const Matrix< T > &A, const MatrixDiagonal< T > &B)
| Multiplication by the diagonal matrix (right)
template<typename T >
cmatrix | plask::optical::modal::operator* (const MatrixDiagonal< T > &A, const Matrix< T > &B)
| Multiplication by the diagonal matrix (left)
template<typename T >
void | plask::optical::modal::mult_matrix_by_diagonal (Matrix< T > &A, const MatrixDiagonal< T > &B)
| Multiplication of matrix by diagonal in-place (replacing A)
template<typename T >
void | plask::optical::modal::mult_diagonal_by_matrix (const MatrixDiagonal< T > &A, Matrix< T > &B)
| Multiplication of diagonal by matrix in-place (replacing B)
void | plask::optical::modal::mult_matrix_by_vector (const cmatrix &A, const const_cvector &v, cvector &dst)
void | plask::optical::modal::mult_matrix_by_matrix (const cmatrix &A, const cmatrix &B, cmatrix &dst)
void | plask::optical::modal::add_mult_matrix_by_vector (const cmatrix &A, const cvector &v, cvector &dst)
void | plask::optical::modal::add_mult_matrix_by_matrix (const cmatrix &A, const cmatrix &B, cmatrix &dst)
cmatrix | plask::optical::modal::invmult (cmatrix &A, cmatrix &B)
cvector | plask::optical::modal::invmult (cmatrix &A, cvector &B)
cmatrix | plask::optical::modal::inv (cmatrix &A)
dcomplex | plask::optical::modal::det (cmatrix &A)
int | plask::optical::modal::eigenv (cmatrix &A, cdiagonal &vals, cmatrix *rightv, cmatrix *leftv)
cmatrix | plask::optical::modal::invmult (cmatrix &&A, cmatrix &B)
cvector | plask::optical::modal::invmult (cmatrix &&A, cvector &B)
cmatrix | plask::optical::modal::inv (cmatrix &&A)
dcomplex | plask::optical::modal::det (cmatrix &&A)
int | plask::optical::modal::eigenv (cmatrix &&A, cdiagonal &vals, cmatrix *rightv=NULL, cmatrix *leftv=NULL)
template<typename T >
void | plask::optical::modal::zero_matrix (Matrix< T > &A, size_t m, size_t n)
| Zero matrix.
template<typename T >
void | plask::optical::modal::zero_matrix (Matrix< T > &A)
| Zero matrix.
template<typename T >
void | plask::optical::modal::make_unit_matrix (Matrix< T > &A, size_t n)
| Create unit matrix.
template<typename T >
void | plask::optical::modal::make_unit_matrix (Matrix< T > &A)
| Create unit matrix.