Eigenvalue SoLvers for Petaflop-Applications (ELPA)  2021.05.002
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_skew_eigenvectors(handle, a, ev, q, error)
 generic C method for elpa_skew_eigenvectors 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_skew_eigenvalues(handle, a, ev, error)
 generic C method for elpa_skew_eigenvalues 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*: \
\
float*: \
\
double complex*: \
\
float complex*: \
)(handle, a, error)
void elpa_cholesky_d(elpa_t handle, double *a, int *error)
void elpa_cholesky_f(elpa_t handle, float *a, int *error)
void elpa_cholesky_dc(elpa_t handle, double complex *a, int *error)
void elpa_cholesky_fc(elpa_t handle, float complex *a, int *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_d(elpa_t handle, double *a, double *ev, int *error)
void elpa_eigenvalues_fc(elpa_t handle, float complex *a, float *ev, int *error)
void elpa_eigenvalues_dc(elpa_t handle, double complex *a, double *ev, int *error)
void elpa_eigenvalues_f(elpa_t handle, float *a, float *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_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_d(elpa_t handle, double *a, double *ev, double *q, int *error)
void elpa_eigenvectors_dc(elpa_t handle, double complex *a, double *ev, double complex *q, int *error)
void elpa_eigenvectors_f(elpa_t handle, float *a, float *ev, float *q, int *error)
void elpa_eigenvectors_fc(elpa_t handle, float complex *a, float *ev, float complex *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_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*: \
\
float*: \
elpa_hermitian_multiply_f, \
\
double complex*: \
\
float complex*: \
)(handle, a, error)
void elpa_hermitian_multiply_d(elpa_t handle, char uplo_a, char uplo_c, int ncb, double *a, double *b, int nrows_b, int ncols_b, double *c, int nrows_c, int ncols_c, int *error)
void elpa_hermitian_multiply_fc(elpa_t handle, char uplo_a, char uplo_c, int ncb, float complex *a, float complex *b, int nrows_b, int ncols_b, float complex *c, int nrows_c, int ncols_c, int *error)
void elpa_hermitian_multiply_dc(elpa_t handle, char uplo_a, char uplo_c, int ncb, double complex *a, double complex *b, int nrows_b, int ncols_b, double complex *c, int nrows_c, int ncols_c, int *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*: \
\
float*: \
\
double complex*: \
\
float complex*: \
)(handle, a, error)
void elpa_invert_trm_d(elpa_t handle, double *a, int *error)
void elpa_invert_trm_fc(elpa_t handle, float complex *a, int *error)
void elpa_invert_trm_f(elpa_t handle, float *a, int *error)
void elpa_invert_trm_dc(elpa_t handle, double complex *a, int *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_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