mptensor  v0.3.0
Parallel Library for Tensor Network Methods
mptensor::scalapack Namespace Reference

Namespace for the distributed Matrix class with ScaLAPACK, PBLAS, and BLACS. More...

Classes

class  BlacsGrid
 
class  Matrix
 Distributed matrix using ScaLAPACK. More...
 

Functions

Matrix operations
template<typename C >
void replace_matrix_data (const Matrix< C > &M, const std::vector< int > &dest_rank, const std::vector< size_t > &local_position, Matrix< C > &M_new)
 
template<typename C >
void replace_matrix_data (const std::vector< C > &V, const std::vector< int > &dest_rank, const std::vector< size_t > &local_position, Matrix< C > &M_new)
 
template<typename C >
void sum_matrix_data (const Matrix< C > &M, const std::vector< int > &dest_rank, const std::vector< size_t > &local_position, Matrix< C > &M_new)
 
template<typename C >
double max_abs (const Matrix< C > &a)
 
template<typename C >
double min_abs (const Matrix< C > &a)
 
template<typename C >
void matrix_product (const Matrix< C > &a, const Matrix< C > &b, Matrix< C > &c)
 
template<typename C >
int matrix_svd (Matrix< C > &a, Matrix< C > &u, std::vector< double > &s, Matrix< C > &v)
 
template<typename C >
int matrix_svd (Matrix< C > &a, std::vector< double > &s)
 
template<typename C >
int matrix_qr (Matrix< C > &a, Matrix< C > &r)
 
template<typename C >
int matrix_eigh (Matrix< C > &a, std::vector< double > &s, Matrix< C > &u)
 
template<typename C >
int matrix_eigh (Matrix< C > &a, std::vector< double > &s)
 
template<typename C >
int matrix_eigh (Matrix< C > &a, Matrix< C > &b, std::vector< double > &s, Matrix< C > &u)
 
template<typename C >
int matrix_solve (Matrix< C > &a, Matrix< C > &b)
 
template<typename C >
matrix_trace (const Matrix< C > &a)
 
template<typename C >
double max (const Matrix< C > &a)
 
template<typename C >
double min (const Matrix< C > &a)
 

Detailed Description

Namespace for the distributed Matrix class with ScaLAPACK, PBLAS, and BLACS.

Function Documentation

◆ matrix_eigh() [1/3]

template<typename C >
int mptensor::scalapack::matrix_eigh ( Matrix< C > &  a,
Matrix< C > &  b,
std::vector< double > &  s,
Matrix< C > &  u 
)

◆ matrix_eigh() [2/3]

template<typename C >
int mptensor::scalapack::matrix_eigh ( Matrix< C > &  a,
std::vector< double > &  s 
)

◆ matrix_eigh() [3/3]

template<typename C >
int mptensor::scalapack::matrix_eigh ( Matrix< C > &  a,
std::vector< double > &  s,
Matrix< C > &  u 
)

◆ matrix_product()

template<typename C >
void mptensor::scalapack::matrix_product ( const Matrix< C > &  a,
const Matrix< C > &  b,
Matrix< C > &  c 
)

◆ matrix_qr()

template<typename C >
int mptensor::scalapack::matrix_qr ( Matrix< C > &  a,
Matrix< C > &  r 
)

◆ matrix_solve()

template<typename C >
int mptensor::scalapack::matrix_solve ( Matrix< C > &  a,
Matrix< C > &  b 
)

◆ matrix_svd() [1/2]

template<typename C >
int mptensor::scalapack::matrix_svd ( Matrix< C > &  a,
Matrix< C > &  u,
std::vector< double > &  s,
Matrix< C > &  v 
)

◆ matrix_svd() [2/2]

template<typename C >
int mptensor::scalapack::matrix_svd ( Matrix< C > &  a,
std::vector< double > &  s 
)

◆ matrix_trace()

template<typename C >
C mptensor::scalapack::matrix_trace ( const Matrix< C > &  a)

◆ max()

template<typename C >
double mptensor::scalapack::max ( const Matrix< C > &  a)

◆ max_abs()

template<typename C >
double mptensor::scalapack::max_abs ( const Matrix< C > &  a)

◆ min()

template<typename C >
double mptensor::scalapack::min ( const Matrix< C > &  a)

◆ min_abs()

template<typename C >
double mptensor::scalapack::min_abs ( const Matrix< C > &  a)

◆ replace_matrix_data() [1/2]

template<typename C >
void mptensor::scalapack::replace_matrix_data ( const Matrix< C > &  M,
const std::vector< int > &  dest_rank,
const std::vector< size_t > &  local_position,
Matrix< C > &  M_new 
)

◆ replace_matrix_data() [2/2]

template<typename C >
void mptensor::scalapack::replace_matrix_data ( const std::vector< C > &  V,
const std::vector< int > &  dest_rank,
const std::vector< size_t > &  local_position,
Matrix< C > &  M_new 
)

◆ sum_matrix_data()

template<typename C >
void mptensor::scalapack::sum_matrix_data ( const Matrix< C > &  M,
const std::vector< int > &  dest_rank,
const std::vector< size_t > &  local_position,
Matrix< C > &  M_new 
)