OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Classes | Functions
FMatrix.h File Reference
#include "FixedAlgebra/FArray2D.h"
#include "FixedAlgebra/FVector.h"
#include "Utilities/SizeError.h"
#include <algorithm>
#include <numeric>
#include <functional>
Include dependency graph for FMatrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FMatrix< T, R, C >
 A templated representation for matrices. More...
 

Functions

template<class T , int R, int C>
FMatrix< T, R, C > operator- (const FMatrix< T, R, C > &)
 Unary minus. More...
 
template<class T , int R, int C>
FMatrix< T, R, C > operator+ (const FMatrix< T, R, C > &, const FMatrix< T, R, C > &)
 Add. More...
 
template<class T , int R, int C>
FMatrix< T, R, C > operator- (const FMatrix< T, R, C > &, const FMatrix< T, R, C > &)
 Subtract. More...
 
template<class T , int R, int C>
FVector< T, R > operator* (const FMatrix< T, R, C > &, const FVector< T, C > &)
 Multiply by column vector. More...
 
template<class T , int R, int C>
FVector< T, C > operator* (const FVector< T, R > &, const FMatrix< T, R, C > &)
 Row vector times Matrix. More...
 
template<class T , int R, int C>
FMatrix< T, R, C > operator* (const FMatrix< T, R, C > &, const T &)
 Matrix times scalar. More...
 
template<class T , int R, int C>
FMatrix< T, R, C > operator* (const T &, const FMatrix< T, R, C > &)
 Scalar times Matrix. More...
 
template<class T , int R, int C>
FMatrix< T, R, C > operator/ (const FMatrix< T, R, C > &, const T &)
 Matrix divided by scalar. More...
 
template<class T , int C>
FMatrix< T, C, C > operator+ (const FMatrix< T, C, C > &, const T &t)
 Add unit matrix times [b]t[/b] to matrix. More...
 
template<class T , int C>
FMatrix< T, C, C > operator- (const FMatrix< T, C, C > &, const T &t)
 Subtract unit matrix times [b]t[/b] from matrix. More...
 
template<class T , int R, int I, int C>
FMatrix< T, R, C > operator* (const FMatrix< T, R, I > &lhs, const FMatrix< T, I, C > &rhs)
 

Function Documentation

◆ operator*() [1/5]

template<class T , int R, int C>
FVector< T, R > operator* ( const FMatrix< T, R, C > &  lhs,
const FVector< T, C > &  rhs 
)

Multiply by column vector.

Definition at line 261 of file FMatrix.h.

References FArray1D< T, N >::begin(), Attrib::Distribution::R, FArray2D< T, M, N >::row_begin(), FArray2D< T, M, N >::row_end(), and Attrib::Legacy::Distribution::T.

Here is the call graph for this function:

◆ operator*() [2/5]

template<class T , int R, int C>
FMatrix< T, R, C > operator* ( const FMatrix< T, R, C > &  lhs,
const T &  rhs 
)

Matrix times scalar.

Definition at line 287 of file FMatrix.h.

◆ operator*() [3/5]

template<class T , int R, int I, int C>
FMatrix< T, R, C > operator* ( const FMatrix< T, R, I > &  lhs,
const FMatrix< T, I, C > &  rhs 
)

◆ operator*() [4/5]

template<class T , int R, int C>
FVector< T, C > operator* ( const FVector< T, R > &  lhs,
const FMatrix< T, R, C > &  rhs 
)

Row vector times Matrix.

Definition at line 274 of file FMatrix.h.

References FArray1D< T, N >::begin(), FArray2D< T, M, N >::col_begin(), FArray1D< T, N >::end(), and Attrib::Legacy::Distribution::T.

Here is the call graph for this function:

◆ operator*() [5/5]

template<class T , int R, int C>
FMatrix< T, R, C > operator* ( const T &  lhs,
const FMatrix< T, R, C > &  rhs 
)

Scalar times Matrix.

Definition at line 294 of file FMatrix.h.

◆ operator+() [1/2]

template<class T , int C>
FMatrix< T, C, C > operator+ ( const FMatrix< T, C, C > &  lhs,
const T &  t 
)

Add unit matrix times [b]t[/b] to matrix.

Definition at line 311 of file FMatrix.h.

◆ operator+() [2/2]

template<class T , int R, int C>
FMatrix< T, R, C > operator+ ( const FMatrix< T, R, C > &  lhs,
const FMatrix< T, R, C > &  rhs 
)

Add.

Definition at line 230 of file FMatrix.h.

◆ operator-() [1/3]

template<class T , int C>
FMatrix< T, C, C > operator- ( const FMatrix< T, C, C > &  lhs,
const T &  t 
)

Subtract unit matrix times [b]t[/b] from matrix.

Definition at line 319 of file FMatrix.h.

◆ operator-() [2/3]

template<class T , int R, int C>
FMatrix< T, R, C > operator- ( const FMatrix< T, R, C > &  rhs)

Unary minus.

Definition at line 222 of file FMatrix.h.

References FArray2D< T, M, N >::begin(), and FArray2D< T, M, N >::end().

Here is the call graph for this function:

◆ operator-() [3/3]

template<class T , int R, int C>
FMatrix< T, R, C > operator- ( const FMatrix< T, R, C > &  lhs,
const FMatrix< T, R, C > &  rhs 
)

Subtract.

Definition at line 237 of file FMatrix.h.

◆ operator/()

template<class T , int R, int C>
FMatrix< T, R, C > operator/ ( const FMatrix< T, R, C > &  lhs,
const T &  rhs 
)

Matrix divided by scalar.

Definition at line 301 of file FMatrix.h.