QMCPACK
rocsolver.hpp File Reference
+ Include dependency graph for rocsolver.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 qmcplusplus
 helper functions for EinsplineSetBuilder
 
 qmcplusplus::rocsolver
 interface to rocsolver calls for different data types S/C/D/Z
 

Macros

#define rocsolverErrorCheck(ans, cause)
 

Functions

void rocsolverAssert (rocblas_status code, const std::string &cause, const char *file, int line, bool abort=true)
 prints rocsolver error messages. Always use rocsolverErrorCheck macro. More...
 
rocblas_status getrf (rocblas_handle &handle, int m, int n, double *A, int lda, int *ipiv, int *info)
 
rocblas_status getrf (rocblas_handle &handle, int m, int n, std::complex< double > *A, int lda, int *ipiv, int *info)
 
rocblas_status getrs (rocblas_handle &handle, const rocblas_operation &transa, int m, int n, double *A, int lda, int *ipiv, double *B, int ldb)
 
rocblas_status getrs (rocblas_handle &handle, const rocblas_operation &transa, int m, int n, std::complex< double > *A, int lda, int *ipiv, std::complex< double > *B, int ldb)
 
rocblas_status getri (rocblas_handle &handle, int n, double *A, int lda, int *ipiv, int *info)
 
rocblas_status getri (rocblas_handle &handle, int n, std::complex< double > *A, int lda, int *ipiv, int *info)
 

Macro Definition Documentation

◆ rocsolverErrorCheck

#define rocsolverErrorCheck (   ans,
  cause 
)

Function Documentation

◆ rocsolverAssert()

void rocsolverAssert ( rocblas_status  code,
const std::string &  cause,
const char *  file,
int  line,
bool  abort = true 
)
inline

prints rocsolver error messages. Always use rocsolverErrorCheck macro.

Definition at line 30 of file rocsolver.hpp.

35 {
36  if (code != rocblas_status_success)
37  {
38  std::string rocsolver_error;
39  switch (code)
40  {
41  case rocblas_status_invalid_handle:
42  rocsolver_error = "rocblas_status_invalid_handle";
43  break;
44  case rocblas_status_not_implemented:
45  rocsolver_error = "rocblas_status_not_implemented";
46  break;
47  case rocblas_status_invalid_pointer:
48  rocsolver_error = "rocblas_status_invalid_pointer";
49  break;
50  case rocblas_status_invalid_size:
51  rocsolver_error = "rocblas_status_invalid_size";
52  break;
53  case rocblas_status_memory_error:
54  rocsolver_error = "rocblas_status_memory_error";
55  break;
56  case rocblas_status_internal_error:
57  rocsolver_error = "rocblas_status_internal_error";
58  break;
59  case rocblas_status_perf_degraded:
60  rocsolver_error = "rocblas_status_perf_degraded";
61  break;
62  case rocblas_status_size_query_mismatch:
63  rocsolver_error = "rocblas_status_size_query_mismatch";
64  break;
65  case rocblas_status_size_increased:
66  rocsolver_error = "rocblas_status_size_increased";
67  break;
68  case rocblas_status_size_unchanged:
69  rocsolver_error = "rocblas_status_size_unchanged";
70  break;
71  case rocblas_status_invalid_value:
72  rocsolver_error = "rocblas_status_invalid_value";
73  break;
74  case rocblas_status_continue:
75  rocsolver_error = "rocblas_status_continue";
76  break;
77  case rocblas_status_check_numerics_fail:
78  rocsolver_error = "rocblas_status_check_numerics_fail";
79  break;
80  default:
81  rocsolver_error = "<unknown>";
82  }
83 
84  std::ostringstream err;
85  err << "rocsolverAssert: " << rocsolver_error << ", file " << file << " , line " << line << std::endl
86  << cause << std::endl;
87  std::cerr << err.str();
88  //if (abort) exit(code);
89  throw std::runtime_error(cause);
90  }
91 }