Ensign
Low-rank framework for multi-core CPUs and GPUs
Loading...
Searching...
No Matches
Ensign::Matrix::blas_ops Struct Reference

Provides matrix and vector operations with optional GPU execution. More...

#include <matrix.hpp>

Public Member Functions

 blas_ops (bool gpu=false)
 
 ~blas_ops ()
 
template<class T >
void matmul (const multi_array< T, 2 > &a, const multi_array< T, 2 > &b, multi_array< T, 2 > &c) const
 Matrix multiplication (computes c = a b)
 
template<class T >
void matmul_transa (const multi_array< T, 2 > &a, const multi_array< T, 2 > &b, multi_array< T, 2 > &c) const
 Matrix multiplication with first matrix transposed (computes c = a^T b)
 
template<class T >
void matmul_transb (const multi_array< T, 2 > &a, const multi_array< T, 2 > &b, multi_array< T, 2 > &c) const
 Matrix multiplication with second matrix transposed (computes c = a b^T)
 
template<class T >
void matmul_transab (const multi_array< T, 2 > &a, const multi_array< T, 2 > &b, multi_array< T, 2 > &c) const
 Matrix multiplication with both matrices transposed (computes c = a^T b^T)
 
template<class T >
void matvec (const multi_array< T, 2 > &a, const multi_array< T, 1 > &b, multi_array< T, 1 > &c) const
 Matrix vector multiplication (c = a b)
 
template<class T >
void matvec_trans (const multi_array< T, 2 > &a, const multi_array< T, 1 > &b, multi_array< T, 1 > &c) const
 Matrix vector multiplication with matrix transposed (c = a^T b)
 
template<class T >
void transpose (const multi_array< T, 2 > &in, multi_array< T, 2 > &out) const
 Transpose a matrix.
 

Public Attributes

bool gpu
 

Detailed Description

Provides matrix and vector operations with optional GPU execution.

Definition at line 47 of file matrix.hpp.

Constructor & Destructor Documentation

◆ blas_ops()

Ensign::Matrix::blas_ops::blas_ops ( bool  gpu = false)

◆ ~blas_ops()

Ensign::Matrix::blas_ops::~blas_ops ( )

Member Function Documentation

◆ matmul()

template<class T >
void Ensign::Matrix::blas_ops::matmul ( const multi_array< T, 2 > &  a,
const multi_array< T, 2 > &  b,
multi_array< T, 2 > &  c 
) const

Matrix multiplication (computes c = a b)

The number of rows in matrix c can be smaller than the number of rows in matrix a. In this case only a partial result is computed.

◆ matmul_transa()

template<class T >
void Ensign::Matrix::blas_ops::matmul_transa ( const multi_array< T, 2 > &  a,
const multi_array< T, 2 > &  b,
multi_array< T, 2 > &  c 
) const

Matrix multiplication with first matrix transposed (computes c = a^T b)

◆ matmul_transab()

template<class T >
void Ensign::Matrix::blas_ops::matmul_transab ( const multi_array< T, 2 > &  a,
const multi_array< T, 2 > &  b,
multi_array< T, 2 > &  c 
) const

Matrix multiplication with both matrices transposed (computes c = a^T b^T)

◆ matmul_transb()

template<class T >
void Ensign::Matrix::blas_ops::matmul_transb ( const multi_array< T, 2 > &  a,
const multi_array< T, 2 > &  b,
multi_array< T, 2 > &  c 
) const

Matrix multiplication with second matrix transposed (computes c = a b^T)

◆ matvec()

template<class T >
void Ensign::Matrix::blas_ops::matvec ( const multi_array< T, 2 > &  a,
const multi_array< T, 1 > &  b,
multi_array< T, 1 > &  c 
) const

Matrix vector multiplication (c = a b)

◆ matvec_trans()

template<class T >
void Ensign::Matrix::blas_ops::matvec_trans ( const multi_array< T, 2 > &  a,
const multi_array< T, 1 > &  b,
multi_array< T, 1 > &  c 
) const

Matrix vector multiplication with matrix transposed (c = a^T b)

◆ transpose()

template<class T >
void Ensign::Matrix::blas_ops::transpose ( const multi_array< T, 2 > &  in,
multi_array< T, 2 > &  out 
) const

Transpose a matrix.

Member Data Documentation

◆ gpu

bool Ensign::Matrix::blas_ops::gpu

Definition at line 91 of file matrix.hpp.


The documentation for this struct was generated from the following file: