Eigenvalue SoLvers for Petaflop-Applications (ELPA) 2022.05.001
Macros
elpa_generic.h File Reference

Go to the source code of this file.

Macros

#define elpa_set(e, name, value, error)
 generic C method for elpa_set More...
 
#define elpa_get(e, name, value, error)
 generic C method for elpa_get More...
 
#define elpa_eigenvectors(handle, a, ev, q, error)
 generic C method for elpa_eigenvectors More...
 
#define elpa_eigenvectors_double(handle, a, ev, q, error)
 generic C method for elpa_eigenvectors_double More...
 
#define elpa_eigenvectors_float(handle, a, ev, q, error)
 generic C method for elpa_eigenvectors_float More...
 
#define elpa_eigenvectors_double_complex(handle, a, ev, q, error)
 generic C method for elpa_eigenvectors_double_complex More...
 
#define elpa_eigenvectors_float_complex(handle, a, ev, q, error)
 generic C method for elpa_eigenvectors_float_complex More...
 
#define elpa_skew_eigenvectors(handle, a, ev, q, error)
 generic C method for elpa_skew_eigenvectors More...
 
#define elpa_skew_eigenvectors_double(handle, a, ev, q, error)
 generic C method for elpa_skew_eigenvectors_double More...
 
#define elpa_skew_eigenvectors_float(handle, a, ev, q, error)
 generic C method for elpa_skew_eigenvectors_float More...
 
#define elpa_generalized_eigenvectors(handle, a, b, ev, q, is_already_decomposed, error)
 generic C method for elpa_generalized_eigenvectors More...
 
#define elpa_eigenvalues(handle, a, ev, error)
 generic C method for elpa_eigenvalues More...
 
#define elpa_eigenvalues_double(handle, a, ev, error)
 generic C method for elpa_eigenvalues_double More...
 
#define elpa_eigenvalues_float(handle, a, ev, error)
 generic C method for elpa_eigenvalues_float More...
 
#define elpa_eigenvalues_double_complex(handle, a, ev, error)
 generic C method for elpa_eigenvalues_double_complex More...
 
#define elpa_eigenvalues_float_complex(handle, a, ev, error)
 generic C method for elpa_eigenvalues_float_complex More...
 
#define elpa_skew_eigenvalues(handle, a, ev, error)
 generic C method for elpa_skew_eigenvalues More...
 
#define elpa_skew_eigenvalues_double(handle, a, ev, error)
 generic C method for elpa_skew_eigenvalues_double More...
 
#define elpa_skew_eigenvalues_float(handle, a, ev, error)
 generic C method for elpa_skew_eigenvalues_float More...
 
#define elpa_cholesky(handle, a, error)
 
#define elpa_hermitian_multiply(handle, uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 generic C method for elpa_hermitian_multiply More...
 
#define elpa_invert_triangular(handle, a, error)
 generic C method for elpa_invert_triangular More...
 

Macro Definition Documentation

◆ elpa_cholesky

#define elpa_cholesky (   handle,
  a,
  error 
)
Value:
_Generic((a), \
double*: \
elpa_cholesky_d, \
\
float*: \
elpa_cholesky_f, \
\
double complex*: \
elpa_cholesky_dc, \
\
float complex*: \
elpa_cholesky_fc \
)(handle, a, error)

◆ elpa_eigenvalues

#define elpa_eigenvalues (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
double*: \
\
float*: \
\
double complex*: \
\
float complex*: \
)(handle, a, ev, error)
void elpa_eigenvalues_a_h_a_fc(elpa_t handle, float complex *a, float *ev, int *error)
void elpa_eigenvalues_a_h_a_f(elpa_t handle, float *a, float *ev, int *error)
void elpa_eigenvalues_a_h_a_dc(elpa_t handle, double complex *a, double *ev, int *error)
void elpa_eigenvalues_a_h_a_d(elpa_t handle, double *a, double *ev, int *error)

generic C method for elpa_eigenvalues

Parameters
handlehandle of the ELPA object, which defines the problem
afloat/double float complex/double complex pointer to matrix a
evon return: float/double pointer to eigenvalues
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvalues_double

#define elpa_eigenvalues_double (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
double*: \
)(handle, a, ev, error)
void elpa_eigenvalues_d_ptr_d(elpa_t handle, double *a, double *ev, int *error)

generic C method for elpa_eigenvalues_double

Parameters
handlehandle of the ELPA object, which defines the problem
adouble pointer to matrix a in GPU memory
evon return: double pointer to eigenvalues in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvalues_double_complex

#define elpa_eigenvalues_double_complex (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
double complex*: \
)(handle, a, ev, error)
void elpa_eigenvalues_d_ptr_dc(elpa_t handle, double complex *a, double *ev, int *error)

generic C method for elpa_eigenvalues_double_complex

Parameters
handlehandle of the ELPA object, which defines the problem
adouble complex pointer to matrix a in GPU memory
evon return: double pointer to eigenvalues in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvalues_float

#define elpa_eigenvalues_float (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
float*: \
)(handle, a, ev, error)
void elpa_eigenvalues_d_ptr_f(elpa_t handle, float *a, float *ev, int *error)

generic C method for elpa_eigenvalues_float

Parameters
handlehandle of the ELPA object, which defines the problem
afloat pointer to matrix a in GPU memory
evon return: float pointer to eigenvalues in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvalues_float_complex

#define elpa_eigenvalues_float_complex (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
float complex*: \
)(handle, a, ev, error)
void elpa_eigenvalues_d_ptr_fc(elpa_t handle, float complex *a, float *ev, int *error)

generic C method for elpa_eigenvalues_float_complex

Parameters
handlehandle of the ELPA object, which defines the problem
afloat complex pointer to matrix a in GPU memory
evon return: float pointer to eigenvalues in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvectors

#define elpa_eigenvectors (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
double*: \
\
float*: \
\
double complex*: \
\
float complex*: \
)(handle, a, ev, q, error)
void elpa_eigenvectors_a_h_a_dc(elpa_t handle, double complex *a, double *ev, double complex *q, int *error)
void elpa_eigenvectors_a_h_a_fc(elpa_t handle, float complex *a, float *ev, float complex *q, int *error)
void elpa_eigenvectors_a_h_a_d(elpa_t handle, double *a, double *ev, double *q, int *error)
void elpa_eigenvectors_a_h_a_f(elpa_t handle, float *a, float *ev, float *q, int *error)

generic C method for elpa_eigenvectors

Parameters
handlehandle of the ELPA object, which defines the problem
afloat/double float complex/double complex pointer to matrix a
evon return: float/double pointer to eigenvalues
qon return: float/double float complex/double complex pointer to eigenvectors
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvectors_double

#define elpa_eigenvectors_double (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
double*: \
)(handle, a, ev, q, error)
void elpa_eigenvectors_d_ptr_d(elpa_t handle, double *a, double *ev, double *q, int *error)

generic C method for elpa_eigenvectors_double

Parameters
handlehandle of the ELPA object, which defines the problem
adouble device pointer to matrix a in GPU memory
evon return: double pointer to eigenvalues in GPU memory
qon return: double pointer to eigenvectors in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvectors_double_complex

#define elpa_eigenvectors_double_complex (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
double complex*: \
)(handle, a, ev, q, error)
void elpa_eigenvectors_d_ptr_dc(elpa_t handle, double complex *a, double *ev, double complex *q, int *error)

generic C method for elpa_eigenvectors_double_complex

Parameters
handlehandle of the ELPA object, which defines the problem
adouble complex device pointer to matrix a in GPU memory
evon return: double pointer to eigenvalues in GPU memory
qon return: double complex pointer to eigenvectors in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvectors_float

#define elpa_eigenvectors_float (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
float*: \
)(handle, a, ev, q, error)
void elpa_eigenvectors_d_ptr_f(elpa_t handle, float *a, float *ev, float *q, int *error)

generic C method for elpa_eigenvectors_float

Parameters
handlehandle of the ELPA object, which defines the problem
afloat device pointer to matrix a in GPU memory
evon return: float pointer to eigenvalues in GPU memory
qon return: float pointer to eigenvectors in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_eigenvectors_float_complex

#define elpa_eigenvectors_float_complex (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
float complex*: \
)(handle, a, ev, q, error)
void elpa_eigenvectors_d_ptr_fc(elpa_t handle, float complex *a, float *ev, float complex *q, int *error)

generic C method for elpa_eigenvectors_float_complex

Parameters
handlehandle of the ELPA object, which defines the problem
afloat complex device pointer to matrix a in GPU memory
evon return: float pointer to eigenvalues in GPU memory
qon return: float complex pointer to eigenvectors in GPU memory
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_generalized_eigenvectors

#define elpa_generalized_eigenvectors (   handle,
  a,
  b,
  ev,
  q,
  is_already_decomposed,
  error 
)
Value:
_Generic((a), \
double*: \
\
float*: \
\
double complex*: \
\
float complex*: \
)(handle, a, b, ev, q, is_already_decomposed, error)
void elpa_generalized_eigenvectors_f(elpa_t handle, float *a, float *b, float *ev, float *q, int is_already_decomposed, int *error)
void elpa_generalized_eigenvectors_fc(elpa_t handle, float complex *a, float complex *b, float *ev, float complex *q, int is_already_decomposed, int *error)
void elpa_generalized_eigenvectors_dc(elpa_t handle, double complex *a, double complex *b, double *ev, double complex *q, int is_already_decomposed, int *error)
void elpa_generalized_eigenvectors_d(elpa_t handle, double *a, double *b, double *ev, double *q, int is_already_decomposed, int *error)

generic C method for elpa_generalized_eigenvectors

Parameters
handlehandle of the ELPA object, which defines the problem
afloat/double float complex/double complex pointer to matrix a
bfloat/double float complex/double complex pointer to matrix b
evon return: float/double pointer to eigenvalues
qon return: float/double float complex/double complex pointer to eigenvectors
is_already_decomposedset to 1, if b already decomposed by previous call to elpa_generalized
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_get

#define elpa_get (   e,
  name,
  value,
  error 
)
Value:
_Generic((value), \
int*: \
\
double*: \
)(e, name, value, error)
void elpa_get_integer(elpa_t handle, const char *name, int *value, int *error)
C interface for the implementation of the elpa_get_integer method This method is available to the use...
void elpa_get_double(elpa_t handle, const char *name, double *value, int *error)
C interface for the implementation of the elpa_get_double method This method is available to the user...

generic C method for elpa_get

Parameters
handlehandle of the ELPA object for which a key/value pair should be queried
namethe name of the key
valueinteger/double value to be queried
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_hermitian_multiply

#define elpa_hermitian_multiply (   handle,
  uplo_a,
  uplo_c,
  ncb,
  a,
  b,
  nrows_b,
  ncols_b,
  c,
  nrows_c,
  ncols_c,
  error 
)
Value:
_Generic((a), \
double*: \
elpa_hermitian_multiply_d, \
\
float*: \
elpa_hermitian_multiply_f, \
\
double complex*: \
elpa_hermitian_multiply_dc, \
\
float complex*: \
elpa_hermitian_multiply_fc \
)(handle, a, error)

generic C method for elpa_hermitian_multiply

Parameters
handlehandle of the ELPA object, which defines the problem
uplo_adescriptor for matrix a
uplo_cdescriptor for matrix c
ncbint
afloat/double float complex/double complex pointer to matrix a
bfloat/double float complex/double complex pointer to matrix b
nrows_bnumber of rows for matrix b
ncols_bnumber of cols for matrix b
cfloat/double float complex/double complex pointer to matrix c
nrows_cnumber of rows for matrix c
ncols_cnumber of cols for matrix c
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_invert_triangular

#define elpa_invert_triangular (   handle,
  a,
  error 
)
Value:
_Generic((a), \
double*: \
elpa_invert_trm_d, \
\
float*: \
elpa_invert_trm_f, \
\
double complex*: \
elpa_invert_trm_dc, \
\
float complex*: \
elpa_invert_trm_fc \
)(handle, a, error)

generic C method for elpa_invert_triangular

Parameters
handlehandle of the ELPA object, which defines the problem
afloat/double float complex/double complex pointer to matrix a, which should be inverted
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_set

#define elpa_set (   e,
  name,
  value,
  error 
)
Value:
_Generic((value), \
int: \
\
double: \
)(e, name, value, error)
void elpa_set_integer(elpa_t handle, const char *name, int value, int *error)
C interface for the implementation of the elpa_set_integer method This method is available to the use...
void elpa_set_double(elpa_t handle, const char *name, double value, int *error)
C interface for the implementation of the elpa_set_double method This method is available to the user...

generic C method for elpa_set

Parameters
handlehandle of the ELPA object for which a key/value pair should be set
namethe name of the key
valueinteger/double value to be set for the key
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_skew_eigenvalues

#define elpa_skew_eigenvalues (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
double*: \
\
float*: \
)(handle, a, ev, error)

generic C method for elpa_skew_eigenvalues

Parameters
handlehandle of the ELPA object, which defines the problem
afloat/double float complex/double complex pointer to matrix a
evon return: float/double pointer to eigenvalues
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_skew_eigenvalues_double

#define elpa_skew_eigenvalues_double (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
double*: \
)(handle, a, ev, error)

generic C method for elpa_skew_eigenvalues_double

Parameters
handlehandle of the ELPA object, which defines the problem
adouble pointer to matrix a
evon return: double pointer to eigenvalues
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_skew_eigenvalues_float

#define elpa_skew_eigenvalues_float (   handle,
  a,
  ev,
  error 
)
Value:
_Generic((a), \
float*: \
)(handle, a, ev, error)

generic C method for elpa_skew_eigenvalues_float

Parameters
handlehandle of the ELPA object, which defines the problem
afloat pointer to matrix a
evon return: float pointer to eigenvalues
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_skew_eigenvectors

#define elpa_skew_eigenvectors (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
double*: \
\
float*: \
)(handle, a, ev, q, error)

generic C method for elpa_skew_eigenvectors

Parameters
handlehandle of the ELPA object, which defines the problem
afloat/double float complex/double complex pointer to matrix a
evon return: float/double pointer to eigenvalues
qon return: float/double float complex/double complex pointer to eigenvectors
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_skew_eigenvectors_double

#define elpa_skew_eigenvectors_double (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
double*: \
)(handle, a, ev, q, error)

generic C method for elpa_skew_eigenvectors_double

Parameters
handlehandle of the ELPA object, which defines the problem
adouble pointer to matrix a
evon return: double pointer to eigenvalues
qon return: double pointer to eigenvectors
erroron return the error code, which can be queried with elpa_strerr()
Returns
void

◆ elpa_skew_eigenvectors_float

#define elpa_skew_eigenvectors_float (   handle,
  a,
  ev,
  q,
  error 
)
Value:
_Generic((a), \
float*: \
)(handle, a, ev, q, error)

generic C method for elpa_skew_eigenvectors_float

Parameters
handlehandle of the ELPA object, which defines the problem
afloat pointer to matrix a
evon return: float pointer to eigenvalues
qon return: float pointer to eigenvectors
erroron return the error code, which can be queried with elpa_strerr()
Returns
void