Ensign
Low-rank framework for multi-core CPUs and GPUs
Loading...
Searching...
No Matches
matrix.hpp File Reference

Declares dense matrix and vector operations, including BLAS wrappers. More...

Go to the source code of this file.

Classes

struct  Ensign::Matrix::blas_ops
 Provides matrix and vector operations with optional GPU execution. More...
 
struct  Ensign::Matrix::diagonalization
 Helper class to perform diagonalization of a symmetric matrix (also known as the Schur decomposition) Factorizes the matrix CC as follows CC = TT*diag(diag_r)*TT^T. More...
 
struct  Ensign::Matrix::lu_solver< T >
 Linear solver based on a LU decomposition. More...
 

Namespaces

namespace  Ensign
 Core namespace for Ensign's numerical algorithms and data structures.
 
namespace  Ensign::Matrix
 Dense matrix operations.
 

Functions

template<class T >
void Ensign::Matrix::set_zero (multi_array< T, 2 > &a)
 Set matrix to zero.
 
template<class T >
void Ensign::Matrix::set_identity (multi_array< T, 2 > &a)
 Set matrix to identity.
 
template<class T , size_t d>
void Ensign::Matrix::set_const (multi_array< T, d > &a, T alpha)
 Set vector or matrix to a constant value.
 
template<class T >
void Ensign::Matrix::ptw_mult_row (const multi_array< T, 2 > &a, const multi_array< T, 1 > &w, multi_array< T, 2 > &out)
 Multiply every row of a matrix with a vector (i.e.
 
template<class T >
void Ensign::Matrix::transpose_inplace (multi_array< T, 2 > &a)
 Transpose a square matrix inplace (intended for small matrices)
 
template<class T >
void Ensign::Matrix::svd (const multi_array< T, 2 > &input, multi_array< T, 2 > &U, multi_array< T, 2 > &V, multi_array< T, 1 > &sigma_diag, const blas_ops &blas)
 Computes the singular value decomposition of the matrix input.
 
template<class T >
void Ensign::Matrix::qr (multi_array< T, 2 > &Q, multi_array< T, 2 > &R)
 

Detailed Description

Declares dense matrix and vector operations, including BLAS wrappers.

Definition in file matrix.hpp.