Eigenvalue SoLvers for Petaflop-Applications (ELPA)  2017.11.001
Data Types | Modules | Macros | Functions/Subroutines
elpa_impl.F90 File Reference
#include "config-f90.h"
#include "general/precision_macros.h"
#include "elpa_impl_template.F90"

Data Types

type  elpa_impl::elpa_impl_t
 Definition of the extended elpa_impl_t type. More...
 

Modules

module  elpa_impl
 Fortran module which provides the actual implementation of the API. Do not use directly! Use the module "elpa".
 

Macros

#define REALCASE   1
 
#define DOUBLE_PRECISION   1
 
#define REALCASE   1
 
#define SINGLE_PRECISION   1
 
#define COMPLEXCASE   1
 
#define DOUBLE_PRECISION   1
 
#define COMPLEXCASE   1
 
#define SINGLE_PRECISION
 

Functions/Subroutines

type(elpa_impl_t) function, pointer, public elpa_impl::elpa_impl_allocate (error)
 the implementation of the generic methods More...
 
type(c_ptr) function elpa_impl::elpa_impl_allocate_c (error)
 
subroutine elpa_impl::elpa_impl_deallocate_c (handle)
 
subroutine elpa_impl::elpa_autotune_impl_deallocate_c (autotune_handle)
 
integer function elpa_impl::elpa_setup (self)
 function to setup an ELPA object and to store the MPI communicators internally Parameters More...
 
integer(kind=c_int) function elpa_impl::elpa_setup_c (handle)
 
subroutine elpa_impl::elpa_set_integer_c (handle, name_p, value, error)
 
subroutine elpa_impl::elpa_get_integer_c (handle, name_p, value, error)
 
integer function elpa_impl::elpa_is_set (self, name)
 function to check whether a key/value pair is set Parameters More...
 
integer function elpa_impl::elpa_can_set (self, name, value)
 function to check whether a key/value pair can be set Parameters More...
 
character(kind=c_char, len=elpa_index_int_value_to_strlen_c(self%index, option_name//c_null_char)) function, pointer elpa_impl::elpa_value_to_string (self, option_name, error)
 function to convert a value to an human readable string Parameters More...
 
subroutine elpa_impl::elpa_set_double_c (handle, name_p, value, error)
 
subroutine elpa_impl::elpa_get_double_c (handle, name_p, value, error)
 
integer(kind=c_int) function, pointer elpa_impl::elpa_associate_int (self, name)
 function to associate a pointer with an integer value Parameters More...
 
real(kind=c_double) function elpa_impl::elpa_get_time (self, name1, name2, name3, name4, name5, name6)
 function to querry the timing information at a certain level Parameters More...
 
subroutine elpa_impl::elpa_print_times (self, name1, name2, name3, name4)
 function to print the timing tree below at a certain level Parameters More...
 
subroutine elpa_impl::elpa_timer_start (self, name)
 function to start the timing of a code region Parameters More...
 
subroutine elpa_impl::elpa_timer_stop (self, name)
 function to stop the timing of a code region Parameters More...
 
subroutine elpa_impl::elpa_eigenvectors_d (self, a, ev, q, error)
 elpa_eigenvectors_d: class method to solve the eigenvalue problem for double real matrices More...
 
subroutine elpa_impl::elpa_eigenvectors_d_c (handle, a_p, ev_p, q_p, error)
 
subroutine elpa_impl::elpa_eigenvectors_f (self, a, ev, q, error)
 elpa_eigenvectors_f: class method to solve the eigenvalue problem for float real matrices More...
 
subroutine elpa_impl::elpa_eigenvectors_f_c (handle, a_p, ev_p, q_p, error)
 
subroutine elpa_impl::elpa_eigenvectors_dc (self, a, ev, q, error)
 elpa_eigenvectors_dc: class method to solve the eigenvalue problem for double complex matrices More...
 
subroutine elpa_impl::elpa_eigenvectors_dc_c (handle, a_p, ev_p, q_p, error)
 
subroutine elpa_impl::elpa_eigenvectors_fc (self, a, ev, q, error)
 elpa_eigenvectors_fc: class method to solve the eigenvalue problem for float complex matrices More...
 
subroutine elpa_impl::elpa_eigenvectors_fc_c (handle, a_p, ev_p, q_p, error)
 
subroutine elpa_impl::elpa_eigenvalues_d (self, a, ev, error)
 elpa_eigenvalues_d: class method to solve the eigenvalue problem for double real matrices More...
 
subroutine elpa_impl::elpa_eigenvalues_d_c (handle, a_p, ev_p, error)
 
subroutine elpa_impl::elpa_eigenvalues_f (self, a, ev, error)
 elpa_eigenvectors_f: class method to solve the eigenvalue problem for float real matrices More...
 
subroutine elpa_impl::elpa_eigenvalues_f_c (handle, a_p, ev_p, error)
 
subroutine elpa_impl::elpa_eigenvalues_dc (self, a, ev, error)
 elpa_eigenvalues_dc: class method to solve the eigenvalue problem for double complex matrices More...
 
subroutine elpa_impl::elpa_eigenvalues_dc_c (handle, a_p, ev_p, error)
 
subroutine elpa_impl::elpa_eigenvalues_fc (self, a, ev, error)
 elpa_eigenvalues_fc: class method to solve the eigenvalue problem for float complex matrices More...
 
subroutine elpa_impl::elpa_eigenvalues_fc_c (handle, a_p, ev_p, error)
 
subroutine elpa_impl::elpa_hermitian_multiply_d (self, uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 elpa_hermitian_multiply_d: class method to perform C : = A**T * B for double real matrices where A is a square matrix (selfna,selfna) which is optionally upper or lower triangular B is a (selfna,ncb) matrix C is a (selfna,ncb) matrix where optionally only the upper or lower triangle may be computed More...
 
subroutine elpa_impl::elpa_hermitian_multiply_d_c (handle, uplo_a, uplo_c, ncb, a_p, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 
subroutine elpa_impl::elpa_hermitian_multiply_f (self, uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 elpa_hermitian_multiply_f: class method to perform C : = A**T * B for float real matrices where A is a square matrix (selfna,selfna) which is optionally upper or lower triangular B is a (selfna,ncb) matrix C is a (selfna,ncb) matrix where optionally only the upper or lower triangle may be computed More...
 
subroutine elpa_impl::elpa_hermitian_multiply_f_c (handle, uplo_a, uplo_c, ncb, a_p, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 
subroutine elpa_impl::elpa_hermitian_multiply_dc (self, uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 elpa_hermitian_multiply_dc: class method to perform C : = A**H * B for double complex matrices where A is a square matrix (selfna,selfna) which is optionally upper or lower triangular B is a (selfna,ncb) matrix C is a (selfna,ncb) matrix where optionally only the upper or lower triangle may be computed More...
 
subroutine elpa_impl::elpa_hermitian_multiply_dc_c (handle, uplo_a, uplo_c, ncb, a_p, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 
subroutine elpa_impl::elpa_hermitian_multiply_fc (self, uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 elpa_hermitian_multiply_fc: class method to perform C : = A**H * B for float complex matrices where A is a square matrix (selfna,selfna) which is optionally upper or lower triangular B is a (selfna,ncb) matrix C is a (selfna,ncb) matrix where optionally only the upper or lower triangle may be computed More...
 
subroutine elpa_impl::elpa_hermitian_multiply_fc_c (handle, uplo_a, uplo_c, ncb, a_p, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error)
 
subroutine elpa_impl::elpa_cholesky_d (self, a, error)
 elpa_choleksy_d: class method to do a cholesky factorization for a double real matrix More...
 
subroutine elpa_impl::elpa_choleksy_d_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_cholesky_f (self, a, error)
 elpa_choleksy_f: class method to do a cholesky factorization for a float real matrix More...
 
subroutine elpa_impl::elpa_choleksy_f_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_cholesky_dc (self, a, error)
 elpa_choleksy_d: class method to do a cholesky factorization for a double complex matrix More...
 
subroutine elpa_impl::elpa_choleksy_dc_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_cholesky_fc (self, a, error)
 elpa_choleksy_fc: class method to do a cholesky factorization for a float complex matrix More...
 
subroutine elpa_impl::elpa_choleksy_fc_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_invert_trm_d (self, a, error)
 elpa_invert_trm_d: class method to invert a triangular double real matrix More...
 
subroutine elpa_impl::elpa_invert_trm_d_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_invert_trm_f (self, a, error)
 elpa_invert_trm_f: class method to invert a triangular float real matrix More...
 
subroutine elpa_impl::elpa_invert_trm_f_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_invert_trm_dc (self, a, error)
 elpa_invert_trm_dc: class method to invert a triangular double complex matrix More...
 
subroutine elpa_impl::elpa_invert_trm_dc_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_invert_trm_fc (self, a, error)
 elpa_invert_trm_fc: class method to invert a triangular float complex matrix More...
 
subroutine elpa_impl::elpa_invert_trm_fc_c (handle, a_p, error)
 
subroutine elpa_impl::elpa_solve_tridiagonal_d (self, d, e, q, error)
 elpa_solve_tridiagonal_d: class method to solve the eigenvalue problem for a double real tridiagonal matrix a More...
 
subroutine elpa_impl::elpa_solve_tridiagonal_f (self, d, e, q, error)
 elpa_solve_tridiagonal_f: class method to solve the eigenvalue problem for a float real tridiagonal matrix a More...
 
subroutine elpa_impl::elpa_destroy (self)
 function to destroy an elpa object Parameters More...
 
class(elpa_autotune_t) function, pointer elpa_impl::elpa_autotune_setup (self, level, domain, error)
 function to setup the ELPA autotuning and create the autotune object Parameters More...
 
type(c_ptr) function elpa_impl::elpa_autotune_setup_c (handle, level, domain, error)
 
logical function elpa_impl::elpa_autotune_step (self, tune_state)
 function to do an autotunig step Parameters More...
 
integer(kind=c_int) function elpa_impl::elpa_autotune_step_c (handle, autotune_handle)
 
subroutine elpa_impl::elpa_autotune_set_best (self, tune_state)
 function to set the up-to-know best options of the autotuning Parameters More...
 
subroutine elpa_impl::elpa_autotune_set_best_c (handle, autotune_handle)
 

Macro Definition Documentation

◆ COMPLEXCASE [1/2]

#define COMPLEXCASE   1

◆ COMPLEXCASE [2/2]

#define COMPLEXCASE   1

◆ DOUBLE_PRECISION [1/2]

#define DOUBLE_PRECISION   1

◆ DOUBLE_PRECISION [2/2]

#define DOUBLE_PRECISION   1

◆ REALCASE [1/2]

#define REALCASE   1

◆ REALCASE [2/2]

#define REALCASE   1

◆ SINGLE_PRECISION [1/2]

#define SINGLE_PRECISION   1

◆ SINGLE_PRECISION [2/2]

#define SINGLE_PRECISION