SIRIUS 7.5.0
Electronic structure library and applications
Namespaces | Macros | Functions
rocsolver.hpp File Reference

Contains implementation of rocsolver wrappers. More...

Go to the source code of this file.

Namespaces

module  sirius
 Namespace of the SIRIUS library.
 
namespace  sirius::acc
 Namespace for accelerator-related functions.
 
namespace  sirius::acc::rocsolver
 Interface to ROCM eigensolver.
 

Macros

#define CALL_ROCSOLVER(func__, args__)
 

Functions

acc::blas_api::handle_t & sirius::acc::rocsolver::rocsolver_handle ()
 
rocblas_operation sirius::acc::rocsolver::get_rocblas_operation (char trans)
 
template<class T >
std::enable_if_t< std::is_same< T, double >::value > sirius::acc::rocsolver::syheevd (rocblas_handle handle, const rocblas_evect evect, const rocblas_fill uplo, int n, T *A, int lda, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian STANDARD eigenvalue problem | double More...
 
template<class T >
std::enable_if_t< std::is_same< T, float >::value > sirius::acc::rocsolver::syheevd (rocblas_handle handle, const rocblas_evect evect, const rocblas_fill uplo, int n, T *A, int lda, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian STANDARD eigenvalue problem | float More...
 
template<class T >
std::enable_if_t< std::is_same< T, double >::value > sirius::acc::rocsolver::syheevd (rocblas_handle handle, const rocblas_evect evect, const rocblas_fill uplo, int n, std::complex< T > *A, int lda, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian STANDARD eigenvalue problem | complex double More...
 
template<class T >
std::enable_if_t< std::is_same< T, float >::value > sirius::acc::rocsolver::syheevd (rocblas_handle handle, const rocblas_evect evect, const rocblas_fill uplo, int n, std::complex< T > *A, int lda, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian STANDARD eigenvalue problem | complex float More...
 
template<class T >
std::enable_if_t< std::is_same< T, double >::value > sirius::acc::rocsolver::syhegvd (rocblas_handle handle, const rocblas_eform itype, const rocblas_evect evect, const rocblas_fill uplo, int n, T *A, int lda, T *B, int ldb, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian GENERALIZED eigenvalue problem | double More...
 
template<class T >
std::enable_if_t< std::is_same< T, float >::value > sirius::acc::rocsolver::syhegvd (rocblas_handle handle, const rocblas_eform itype, const rocblas_evect evect, const rocblas_fill uplo, int n, T *A, int lda, T *B, int ldb, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian GENERALIZED eigenvalue problem | float More...
 
template<class T >
std::enable_if_t< std::is_same< T, float >::value > sirius::acc::rocsolver::syhegvd (rocblas_handle handle, const rocblas_eform itype, const rocblas_evect evect, const rocblas_fill uplo, int n, std::complex< T > *A, int lda, std::complex< T > *B, int ldb, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian GENERALIZED eigenvalue problem | complex float More...
 
template<class T >
std::enable_if_t< std::is_same< T, double >::value > sirius::acc::rocsolver::syhegvd (rocblas_handle handle, const rocblas_eform itype, const rocblas_evect evect, const rocblas_fill uplo, int n, std::complex< T > *A, int lda, std::complex< T > *B, int ldb, T *D, T *E, int *info)
 _sy_mmetric or _he_rmitian GENERALIZED eigenvalue problem | complex double More...
 
void sirius::acc::rocsolver::zgetrs (rocblas_handle handle, char trans, int n, int nrhs, acc_complex_double_t *A, int lda, const int *devIpiv, acc_complex_double_t *B, int ldb)
 Linear Solvers.
 
void sirius::acc::rocsolver::zgetrf (rocblas_handle handle, int m, int n, acc_complex_double_t *A, int *devIpiv, int lda, int *devInfo)
 

Detailed Description

Contains implementation of rocsolver wrappers.

Definition in file rocsolver.hpp.

Macro Definition Documentation

◆ CALL_ROCSOLVER

#define CALL_ROCSOLVER (   func__,
  args__ 
)
Value:
{ \
rocblas_status status = func__ args__; \
if (status != rocblas_status::rocblas_status_success) { \
char nm[1024]; \
gethostname(nm, 1024); \
printf("hostname: %s\n", nm); \
printf("Error in %s at line %i of file %s: %s\n", #func__, __LINE__, __FILE__, \
rocblas_status_to_string(status)); \
acc::stack_backtrace(); \
} \
}
@ nm
Non-magnetic case.

Definition at line 42 of file rocsolver.hpp.