OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
GSLBLAS.h File Reference
#include <cstring>
#include "Utilities/GSLComplex.h"
#include "Utilities/GSLMatrix.h"
Include dependency graph for GSLBLAS.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  CBLAS_TRANSPOSE { CblasNoTrans = 111 , CblasTrans = 112 , CblasConjTrans = 113 }
 Transpose operation selector for BLAS routines. More...
 

Functions

void gsl_blas_dgemm (CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB, double alpha, const gsl_matrix *A, const gsl_matrix *B, double beta, gsl_matrix *C)
 Real matrix-matrix multiply and accumulate.
 
void gsl_blas_zgemm (CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB, gsl_complex alpha, const gsl_matrix_complex *A, const gsl_matrix_complex *B, gsl_complex beta, gsl_matrix_complex *C)
 Complex matrix-matrix multiply and accumulate.
 
void gsl_blas_dgemv (CBLAS_TRANSPOSE TransA, double alpha, const gsl_matrix *A, const gsl_vector *x, double beta, gsl_vector *y)
 Real matrix-vector multiply and accumulate.
 
void gsl_blas_zgemv (CBLAS_TRANSPOSE TransA, gsl_complex alpha, const gsl_matrix_complex *A, const gsl_vector_complex *x, gsl_complex beta, gsl_vector_complex *y)
 Complex matrix-vector multiply and accumulate.
 

Enumeration Type Documentation

◆ CBLAS_TRANSPOSE

Transpose operation selector for BLAS routines.

See also
Documentation on https://www.gnu.org/software/gsl/doc/html/blas.html
Implementation on https://www.gnu.org/software/gsl/
  • CblasNoTrans: \(\mathrm{op}(A) = A\)
  • CblasTrans: \(\mathrm{op}(A) = A^T\)
  • CblasConjTrans: \(\mathrm{op}(A) = A^H\) (conjugate transpose)
Enumerator
CblasNoTrans 
CblasTrans 
CblasConjTrans 

Definition at line 32 of file GSLBLAS.h.

Function Documentation

◆ gsl_blas_dgemm()

void gsl_blas_dgemm ( CBLAS_TRANSPOSE  TransA,
CBLAS_TRANSPOSE  TransB,
double  alpha,
const gsl_matrix A,
const gsl_matrix B,
double  beta,
gsl_matrix C 
)
inline

Real matrix-matrix multiply and accumulate.

Computes \(C \leftarrow \alpha \,\mathrm{op}(A)\,\mathrm{op}(B) + \beta\, C\) where \(\mathrm{op}(X)\) is chosen by TransA and TransB.

Parameters
TransAInput: operation applied to A.
TransBInput: operation applied to B.
alphaInput: scalar multiplier for \(\mathrm{op}(A)\mathrm{op}(B)\).
AInput: left matrix operand.
BInput: right matrix operand.
betaInput: scalar multiplier for existing C.
CInput/Output: accumulation target updated in-place.

Definition at line 44 of file GSLBLAS.h.

References CblasNoTrans, gsl_matrix_ptr(), gsl_matrix::size1, and gsl_matrix::size2.

Referenced by TEST_F(), TEST_F(), and TEST_F().

Here is the call graph for this function:

◆ gsl_blas_dgemv()

void gsl_blas_dgemv ( CBLAS_TRANSPOSE  TransA,
double  alpha,
const gsl_matrix A,
const gsl_vector x,
double  beta,
gsl_vector y 
)
inline

Real matrix-vector multiply and accumulate.

Computes \(y \leftarrow \alpha\,\mathrm{op}(A)\,x + \beta\,y\) with \(\mathrm{op}(A) = A\) or \(A^T\).

Parameters
TransAInput: operation applied to A.
alphaInput: scalar multiplier for \(\mathrm{op}(A)x\).
AInput: matrix operand.
xInput: vector operand.
betaInput: scalar multiplier for existing y.
yInput/Output: result vector updated in-place.

Definition at line 144 of file GSLBLAS.h.

References CblasNoTrans, gsl_matrix_ptr(), gsl_vector_ptr(), gsl_vector::size, gsl_matrix::size1, and gsl_matrix::size2.

Referenced by TEST_F().

Here is the call graph for this function:

◆ gsl_blas_zgemm()

void gsl_blas_zgemm ( CBLAS_TRANSPOSE  TransA,
CBLAS_TRANSPOSE  TransB,
gsl_complex  alpha,
const gsl_matrix_complex A,
const gsl_matrix_complex B,
gsl_complex  beta,
gsl_matrix_complex C 
)
inline

Complex matrix-matrix multiply and accumulate.

Computes \(C \leftarrow \alpha \,\mathrm{op}(A)\,\mathrm{op}(B) + \beta\, C\) with \(\mathrm{op}(X)\) defined by TransA/TransB (including conjugate transpose).

Parameters
TransAInput: operation applied to A.
TransBInput: operation applied to B.
alphaInput: scalar multiplier for \(\mathrm{op}(A)\mathrm{op}(B)\).
AInput: left matrix operand.
BInput: right matrix operand.
betaInput: scalar multiplier for existing C.
CInput/Output: accumulation target updated in-place.

Definition at line 90 of file GSLBLAS.h.

References CblasConjTrans, CblasNoTrans, gsl_complex::dat, gsl_complex_add(), gsl_complex_conjugate(), gsl_complex_mul(), gsl_matrix_complex_ptr(), gsl_matrix_complex::size1, and gsl_matrix_complex::size2.

Referenced by TEST_F().

Here is the call graph for this function:

◆ gsl_blas_zgemv()

void gsl_blas_zgemv ( CBLAS_TRANSPOSE  TransA,
gsl_complex  alpha,
const gsl_matrix_complex A,
const gsl_vector_complex x,
gsl_complex  beta,
gsl_vector_complex y 
)
inline

Complex matrix-vector multiply and accumulate.

Computes \(y \leftarrow \alpha\,\mathrm{op}(A)\,x + \beta\,y\) with \(\mathrm{op}(A) = A, A^T,\) or \(A^H\).

Parameters
TransAInput: operation applied to A.
alphaInput: scalar multiplier for \(\mathrm{op}(A)x\).
AInput: matrix operand.
xInput: vector operand.
betaInput: scalar multiplier for existing y.
yInput/Output: result vector updated in-place.

Definition at line 194 of file GSLBLAS.h.

References CblasConjTrans, CblasNoTrans, gsl_complex_add(), gsl_complex_conjugate(), gsl_complex_mul(), gsl_matrix_complex_ptr(), gsl_vector_complex_ptr(), gsl_vector_complex::size, gsl_matrix_complex::size1, and gsl_matrix_complex::size2.

Here is the call graph for this function: