PLaSK library
Loading...
Searching...
No Matches
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< doubleplask::optical::modal::dmatrix
 
typedef Matrix< dcomplex > plask::optical::modal::cmatrix
 
typedef DataVector< dcomplex > plask::optical::modal::cvector
 
typedef DataVector< doubleplask::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.