Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
elpa
elpa
Commits
f040ba1f
Commit
f040ba1f
authored
Aug 25, 2021
by
Andreas Marek
Browse files
Rename routines
parent
cf9360c2
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
elpa/elpa_generic.h
View file @
f040ba1f
...
...
@@ -48,16 +48,16 @@
*/
#define elpa_eigenvectors(handle, a, ev, q, error) _Generic((a), \
double*: \
elpa_eigenvectors_d, \
elpa_eigenvectors_
all_host_arrays_
d, \
\
float*: \
elpa_eigenvectors_f, \
elpa_eigenvectors_
all_host_arrays_
f, \
\
double complex*: \
elpa_eigenvectors_dc, \
elpa_eigenvectors_
all_host_arrays_
dc, \
\
float complex*: \
elpa_eigenvectors_fc \
elpa_eigenvectors_
all_host_arrays_
fc \
)(handle, a, ev, q, error)
/*! \brief generic C method for elpa_skew_eigenvectors
...
...
@@ -72,10 +72,10 @@
*/
#define elpa_skew_eigenvectors(handle, a, ev, q, error) _Generic((a), \
double*: \
elpa_eigenvectors_d, \
elpa_eigenvectors_
all_host_arrays_
d, \
\
float*: \
elpa_eigenvectors_f, \
elpa_eigenvectors_
all_host_arrays_
f, \
)(handle, a, ev, q, error)
...
...
@@ -118,16 +118,16 @@
*/
#define elpa_eigenvalues(handle, a, ev, error) _Generic((a), \
double*: \
elpa_eigenvalues_d, \
elpa_eigenvalues_
all_host_arrays_
d, \
\
float*: \
elpa_eigenvalues_f, \
elpa_eigenvalues_
all_host_arrays_
f, \
\
double complex*: \
elpa_eigenvalues_dc, \
elpa_eigenvalues_
all_host_arrays_
dc, \
\
float complex*: \
elpa_eigenvalues_fc \
elpa_eigenvalues_
all_host_arrays_
fc \
)(handle, a, ev, error)
/*! \brief generic C method for elpa_skew_eigenvalues
...
...
@@ -141,10 +141,10 @@
*/
#define elpa_skew_eigenvalues(handle, a, ev, error) _Generic((a), \
double*: \
elpa_eigenvalues_d, \
elpa_eigenvalues_
all_host_arrays_
d, \
\
float*: \
elpa_eigenvalues_f, \
elpa_eigenvalues_
all_host_arrays_
f, \
)(handle, a, ev, error)
...
...
src/elpa_api.F90
View file @
f040ba1f
...
...
@@ -114,25 +114,25 @@ module elpa_api
! Actual math routines
generic
,
public
::
eigenvectors
=>
&
!< method eigenvectors for solving the full eigenvalue problem
elpa_eigenvectors_
d
,
&
!< the eigenvalues and (parts of) the eigenvectors are computed
elpa_eigenvectors_
f
,
&
!< for symmetric real valued / hermitian complex valued matrices
elpa_eigenvectors_dc
,
&
elpa_eigenvectors_fc
elpa_eigenvectors_
all_host_arrays_d
,
&
!< the eigenvalues and (parts of) the eigenvectors are computed
elpa_eigenvectors_
all_host_arrays_f
,
&
!< for symmetric real valued / hermitian complex valued matrices
elpa_eigenvectors_
all_host_arrays_
dc
,
&
elpa_eigenvectors_
all_host_arrays_
fc
generic
,
public
::
eigenvalues
=>
&
!< method eigenvalues for solving the eigenvalue problem
elpa_eigenvalues_
d
,
&
!< only the eigenvalues are computed
elpa_eigenvalues_
f
,
&
!< for symmetric real valued / hermitian complex valued matrices
elpa_eigenvalues_dc
,
&
elpa_eigenvalues_fc
elpa_eigenvalues_
all_host_arrays_d
,
&
!< only the eigenvalues are computed
elpa_eigenvalues_
all_host_arrays_f
,
&
!< for symmetric real valued / hermitian complex valued matrices
elpa_eigenvalues_
all_host_arrays_
dc
,
&
elpa_eigenvalues_
all_host_arrays_
fc
#ifdef HAVE_SKEWSYMMETRIC
generic
,
public
::
skew_eigenvectors
=>
&
!< method skew_eigenvectors for solving the full skew-symmetric eigenvalue problem
elpa_skew_eigenvectors_
d
,
&
!< the eigenvalues and (parts of) the eigenvectors are computed
elpa_skew_eigenvectors_
f
!< for symmetric real valued skew-symmetric matrices
elpa_skew_eigenvectors_
all_host_arrays_d
,
&
!< the eigenvalues and (parts of) the eigenvectors are computed
elpa_skew_eigenvectors_
all_host_arrays_f
!< for symmetric real valued skew-symmetric matrices
generic
,
public
::
skew_eigenvalues
=>
&
!< method skew_eigenvalues for solving the skew-symmetric eigenvalue problem
elpa_skew_eigenvalues_
d
,
&
!< only the eigenvalues are computed
elpa_skew_eigenvalues_
f
!< for symmetric real valued skew-symmetric matrices
elpa_skew_eigenvalues_
all_host_arrays_d
,
&
!< only the eigenvalues are computed
elpa_skew_eigenvalues_
all_host_arrays_f
!< for symmetric real valued skew-symmetric matrices
#endif
generic
,
public
::
generalized_eigenvectors
=>
&
!< method eigenvectors for solving the full generalized eigenvalue problem
...
...
@@ -192,23 +192,23 @@ module elpa_api
procedure
(
elpa_get_float_i
),
deferred
,
public
::
elpa_get_float
procedure
(
elpa_get_double_i
),
deferred
,
public
::
elpa_get_double
procedure
(
elpa_eigenvectors_d_i
),
deferred
,
public
::
elpa_eigenvectors_d
procedure
(
elpa_eigenvectors_f_i
),
deferred
,
public
::
elpa_eigenvectors_f
procedure
(
elpa_eigenvectors_dc_i
),
deferred
,
public
::
elpa_eigenvectors_dc
procedure
(
elpa_eigenvectors_fc_i
),
deferred
,
public
::
elpa_eigenvectors_fc
procedure
(
elpa_eigenvectors_
all_host_arrays_
d_i
),
deferred
,
public
::
elpa_eigenvectors_
all_host_arrays_
d
procedure
(
elpa_eigenvectors_
all_host_arrays_
f_i
),
deferred
,
public
::
elpa_eigenvectors_
all_host_arrays_
f
procedure
(
elpa_eigenvectors_
all_host_arrays_
dc_i
),
deferred
,
public
::
elpa_eigenvectors_
all_host_arrays_
dc
procedure
(
elpa_eigenvectors_
all_host_arrays_
fc_i
),
deferred
,
public
::
elpa_eigenvectors_
all_host_arrays_
fc
procedure
(
elpa_eigenvalues_d_i
),
deferred
,
public
::
elpa_eigenvalues_d
procedure
(
elpa_eigenvalues_f_i
),
deferred
,
public
::
elpa_eigenvalues_f
procedure
(
elpa_eigenvalues_dc_i
),
deferred
,
public
::
elpa_eigenvalues_dc
procedure
(
elpa_eigenvalues_fc_i
),
deferred
,
public
::
elpa_eigenvalues_fc
procedure
(
elpa_eigenvalues_
all_host_arrays_
d_i
),
deferred
,
public
::
elpa_eigenvalues_
all_host_arrays_
d
procedure
(
elpa_eigenvalues_
all_host_arrays_
f_i
),
deferred
,
public
::
elpa_eigenvalues_
all_host_arrays_
f
procedure
(
elpa_eigenvalues_
all_host_arrays_
dc_i
),
deferred
,
public
::
elpa_eigenvalues_
all_host_arrays_
dc
procedure
(
elpa_eigenvalues_
all_host_arrays_
fc_i
),
deferred
,
public
::
elpa_eigenvalues_
all_host_arrays_
fc
#ifdef HAVE_SKEWSYMMETRIC
procedure
(
elpa_skew_eigenvectors_d_i
),
deferred
,
public
::
elpa_skew_eigenvectors_d
procedure
(
elpa_skew_eigenvectors_f_i
),
deferred
,
public
::
elpa_skew_eigenvectors_f
procedure
(
elpa_skew_eigenvectors_
all_host_arrays_
d_i
),
deferred
,
public
::
elpa_skew_eigenvectors_
all_host_arrays_
d
procedure
(
elpa_skew_eigenvectors_
all_host_arrays_
f_i
),
deferred
,
public
::
elpa_skew_eigenvectors_
all_host_arrays_
f
procedure
(
elpa_skew_eigenvalues_d_i
),
deferred
,
public
::
elpa_skew_eigenvalues_d
procedure
(
elpa_skew_eigenvalues_f_i
),
deferred
,
public
::
elpa_skew_eigenvalues_f
procedure
(
elpa_skew_eigenvalues_
all_host_arrays_
d_i
),
deferred
,
public
::
elpa_skew_eigenvalues_
all_host_arrays_
d
procedure
(
elpa_skew_eigenvalues_
all_host_arrays_
f_i
),
deferred
,
public
::
elpa_skew_eigenvalues_
all_host_arrays_
f
#endif
procedure
(
elpa_generalized_eigenvectors_d_i
),
deferred
,
public
::
elpa_generalized_eigenvectors_d
...
...
src/elpa_api_math_template.F90
View file @
f040ba1f
...
...
@@ -81,7 +81,7 @@
#endif
!> \result error integer, optional : error code, which can be queried with elpa_strerr
abstract
interface
subroutine
elpa_eigenvectors_
&
subroutine
elpa_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
i
(
self
,
a
,
ev
,
q
,
error
)
use
,
intrinsic
::
iso_c_binding
...
...
@@ -129,7 +129,7 @@
#endif
!> \result error integer, optional : error code, which can be queried with elpa_strerr
abstract
interface
subroutine
elpa_skew_eigenvectors_
&
subroutine
elpa_skew_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
i
(
self
,
a
,
ev
,
q
,
error
)
use
,
intrinsic
::
iso_c_binding
...
...
@@ -183,7 +183,7 @@
#endif
!> \result error integer, optional : error code, which can be queried with elpa_strerr
abstract
interface
subroutine
elpa_eigenvalues_
&
subroutine
elpa_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
i
(
self
,
a
,
ev
,
error
)
use
,
intrinsic
::
iso_c_binding
...
...
@@ -228,7 +228,7 @@
#endif
!> \result error integer, optional : error code, which can be queried with elpa_strerr
abstract
interface
subroutine
elpa_skew_eigenvalues_
&
subroutine
elpa_skew_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
i
(
self
,
a
,
ev
,
error
)
use
,
intrinsic
::
iso_c_binding
...
...
src/elpa_impl.F90
View file @
f040ba1f
...
...
@@ -105,26 +105,26 @@ module elpa_impl
!> \brief the implemenation methods
procedure
,
public
::
elpa_eigenvectors_d
!< public methods to implement the solve step for real/complex
!< double/single matrices
procedure
,
public
::
elpa_eigenvectors_f
procedure
,
public
::
elpa_eigenvectors_dc
procedure
,
public
::
elpa_eigenvectors_fc
procedure
,
public
::
elpa_eigenvalues_d
!< public methods to implement the solve step for real/complex
!< double/single matrices; only the eigenvalues are computed
procedure
,
public
::
elpa_eigenvalues_f
procedure
,
public
::
elpa_eigenvalues_dc
procedure
,
public
::
elpa_eigenvalues_fc
procedure
,
public
::
elpa_eigenvectors_
all_host_arrays_
d
!< public methods to implement the solve step for real/complex
!< double/single matrices
procedure
,
public
::
elpa_eigenvectors_
all_host_arrays_
f
procedure
,
public
::
elpa_eigenvectors_
all_host_arrays_
dc
procedure
,
public
::
elpa_eigenvectors_
all_host_arrays_
fc
procedure
,
public
::
elpa_eigenvalues_
all_host_arrays_
d
!< public methods to implement the solve step for real/complex
!< double/single matrices; only the eigenvalues are computed
procedure
,
public
::
elpa_eigenvalues_
all_host_arrays_
f
procedure
,
public
::
elpa_eigenvalues_
all_host_arrays_
dc
procedure
,
public
::
elpa_eigenvalues_
all_host_arrays_
fc
#ifdef HAVE_SKEWSYMMETRIC
procedure
,
public
::
elpa_skew_eigenvectors_d
!< public methods to implement the solve step for real skew-symmetric
!< double/single matrices
procedure
,
public
::
elpa_skew_eigenvectors_f
procedure
,
public
::
elpa_skew_eigenvectors_
all_host_arrays_
d
!< public methods to implement the solve step for real skew-symmetric
!< double/single matrices
procedure
,
public
::
elpa_skew_eigenvectors_
all_host_arrays_
f
procedure
,
public
::
elpa_skew_eigenvalues_d
!< public methods to implement the solve step for real skew-symmetric
!< double/single matrices; only the eigenvalues are computed
procedure
,
public
::
elpa_skew_eigenvalues_f
procedure
,
public
::
elpa_skew_eigenvalues_
all_host_arrays_
d
!< public methods to implement the solve step for real skew-symmetric
!< double/single matrices; only the eigenvalues are computed
procedure
,
public
::
elpa_skew_eigenvalues_
all_host_arrays_
f
#endif
procedure
,
public
::
elpa_generalized_eigenvectors_d
!< public methods to implement the solve step for generalized
...
...
src/elpa_impl_math_template.F90
View file @
f040ba1f
...
...
@@ -71,7 +71,7 @@
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine
elpa_eigenvectors_
&
subroutine
elpa_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
q
,
error
)
class
(
elpa_impl_t
)
::
self
...
...
@@ -153,37 +153,37 @@
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
!c> void elpa_eigenvectors_d(elpa_t handle, double *a, double *ev, double *q, int *error);
!c> void elpa_eigenvectors_
all_host_arrays_
d(elpa_t handle, double *a, double *ev, double *q, int *error);
#endif
#ifdef SINGLE_PRECISION_REAL
!c> void elpa_eigenvectors_f(elpa_t handle, float *a, float *ev, float *q, int *error);
!c> void elpa_eigenvectors_
all_host_arrays_
f(elpa_t handle, float *a, float *ev, float *q, int *error);
#endif
#endif
#ifdef COMPLEXCASE
#ifdef DOUBLE_PRECISION_COMPLEX
!c> void elpa_eigenvectors_dc(elpa_t handle, double complex *a, double *ev, double complex *q, int *error);
!c> void elpa_eigenvectors_
all_host_arrays_
dc(elpa_t handle, double complex *a, double *ev, double complex *q, int *error);
#endif
#ifdef SINGLE_PRECISION_COMPLEX
!c> void elpa_eigenvectors_fc(elpa_t handle, float complex *a, float *ev, float complex *q, int *error);
!c> void elpa_eigenvectors_
all_host_arrays_
fc(elpa_t handle, float complex *a, float *ev, float complex *q, int *error);
#endif
#endif
subroutine
elpa_eigenvectors_
&
subroutine
elpa_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
c
(
handle
,
a_p
,
ev_p
,
q_p
,
error
)
&
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_eigenvectors_d"
)
bind
(
C
,
name
=
"elpa_eigenvectors_
all_host_arrays_
d"
)
#endif
#ifdef SINGLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_eigenvectors_f"
)
bind
(
C
,
name
=
"elpa_eigenvectors_
all_host_arrays_
f"
)
#endif
#endif
#ifdef COMPLEXCASE
#ifdef DOUBLE_PRECISION_COMPLEX
bind
(
C
,
name
=
"elpa_eigenvectors_dc"
)
bind
(
C
,
name
=
"elpa_eigenvectors_
all_host_arrays_
dc"
)
#endif
#ifdef SINGLE_PRECISION_COMPLEX
bind
(
C
,
name
=
"elpa_eigenvectors_fc"
)
bind
(
C
,
name
=
"elpa_eigenvectors_
all_host_arrays_
fc"
)
#endif
#endif
type
(
c_ptr
),
intent
(
in
),
value
::
handle
,
a_p
,
ev_p
,
q_p
...
...
@@ -202,7 +202,7 @@
call
c_f_pointer
(
ev_p
,
ev
,
[
self
%
na
])
call
c_f_pointer
(
q_p
,
q
,
[
self
%
local_nrows
,
self
%
local_ncols
])
call
elpa_eigenvectors_
&
call
elpa_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
q
,
error
)
end
subroutine
...
...
@@ -235,7 +235,7 @@
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine
elpa_skew_eigenvectors_
&
subroutine
elpa_skew_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
q
,
error
)
class
(
elpa_impl_t
)
::
self
...
...
@@ -319,21 +319,21 @@
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
!c> void elpa_skew_eigenvectors_d(elpa_t handle, double *a, double *ev, double *q, int *error);
!c> void elpa_skew_eigenvectors_
all_host_arrays_
d(elpa_t handle, double *a, double *ev, double *q, int *error);
#endif
#ifdef SINGLE_PRECISION_REAL
!c> void elpa_skew_eigenvectors_f(elpa_t handle, float *a, float *ev, float *q, int *error);
!c> void elpa_skew_eigenvectors_
all_host_arrays_
f(elpa_t handle, float *a, float *ev, float *q, int *error);
#endif
#endif
subroutine
elpa_skew_eigenvectors_
&
subroutine
elpa_skew_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
c
(
handle
,
a_p
,
ev_p
,
q_p
,
error
)
&
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_skew_eigenvectors_d"
)
bind
(
C
,
name
=
"elpa_skew_eigenvectors_
all_host_arrays_
d"
)
#endif
#ifdef SINGLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_skew_eigenvectors_f"
)
bind
(
C
,
name
=
"elpa_skew_eigenvectors_
all_host_arrays_
f"
)
#endif
#endif
...
...
@@ -353,7 +353,7 @@
call
c_f_pointer
(
ev_p
,
ev
,
[
self
%
na
])
call
c_f_pointer
(
q_p
,
q
,
[
self
%
local_nrows
,
self
%
local_ncols
])
call
elpa_skew_eigenvectors_
&
call
elpa_skew_eigenvectors_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
q
,
error
)
end
subroutine
...
...
@@ -380,7 +380,7 @@
!> \param ev On output: eigenvalues of a, every processor gets the complete set
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine
elpa_eigenvalues_
&
subroutine
elpa_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
error
)
class
(
elpa_impl_t
)
::
self
...
...
@@ -460,37 +460,37 @@
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
!c> void elpa_eigenvalues_d(elpa_t handle, double *a, double *ev, int *error);
!c> void elpa_eigenvalues_
all_host_arrays_
d(elpa_t handle, double *a, double *ev, int *error);
#endif
#ifdef SINGLE_PRECISION_REAL
!c> void elpa_eigenvalues_f(elpa_t handle, float *a, float *ev, int *error);
!c> void elpa_eigenvalues_
all_host_arrays_
f(elpa_t handle, float *a, float *ev, int *error);
#endif
#endif
#ifdef COMPLEXCASE
#ifdef DOUBLE_PRECISION_COMPLEX
!c> void elpa_eigenvalues_dc(elpa_t handle, double complex *a, double *ev, int *error);
!c> void elpa_eigenvalues_
all_host_arrays_
dc(elpa_t handle, double complex *a, double *ev, int *error);
#endif
#ifdef SINGLE_PRECISION_COMPLEX
!c> void elpa_eigenvalues_fc(elpa_t handle, float complex *a, float *ev, int *error);
!c> void elpa_eigenvalues_
all_host_arrays_
fc(elpa_t handle, float complex *a, float *ev, int *error);
#endif
#endif
subroutine
elpa_eigenvalues_
&
subroutine
elpa_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
c
(
handle
,
a_p
,
ev_p
,
error
)
&
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_eigenvalues_d"
)
bind
(
C
,
name
=
"elpa_eigenvalues_
all_host_arrays_
d"
)
#endif
#ifdef SINGLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_eigenvalues_f"
)
bind
(
C
,
name
=
"elpa_eigenvalues_
all_host_arrays_
f"
)
#endif
#endif
#ifdef COMPLEXCASE
#ifdef DOUBLE_PRECISION_COMPLEX
bind
(
C
,
name
=
"elpa_eigenvalues_dc"
)
bind
(
C
,
name
=
"elpa_eigenvalues_
all_host_arrays_
dc"
)
#endif
#ifdef SINGLE_PRECISION_COMPLEX
bind
(
C
,
name
=
"elpa_eigenvalues_fc"
)
bind
(
C
,
name
=
"elpa_eigenvalues_
all_host_arrays_
fc"
)
#endif
#endif
...
...
@@ -505,7 +505,7 @@
call
c_f_pointer
(
a_p
,
a
,
[
self
%
local_nrows
,
self
%
local_ncols
])
call
c_f_pointer
(
ev_p
,
ev
,
[
self
%
na
])
call
elpa_eigenvalues_
&
call
elpa_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
error
)
end
subroutine
...
...
@@ -532,7 +532,7 @@
!> \param ev On output: eigenvalues of a, every processor gets the complete set
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine
elpa_skew_eigenvalues_
&
subroutine
elpa_skew_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
error
)
class
(
elpa_impl_t
)
::
self
...
...
@@ -613,21 +613,21 @@
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
!c> void elpa_skew_eigenvalues_d(elpa_t handle, double *a, double *ev, int *error);
!c> void elpa_skew_eigenvalues_
all_host_arrays_
d(elpa_t handle, double *a, double *ev, int *error);
#endif
#ifdef SINGLE_PRECISION_REAL
!c> void elpa_skew_eigenvalues_f(elpa_t handle, float *a, float *ev, int *error);
!c> void elpa_skew_eigenvalues_
all_host_arrays_
f(elpa_t handle, float *a, float *ev, int *error);
#endif
#endif
subroutine
elpa_skew_eigenvalues_
&
subroutine
elpa_skew_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
_
c
(
handle
,
a_p
,
ev_p
,
error
)
&
#ifdef REALCASE
#ifdef DOUBLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_skew_eigenvalues_d"
)
bind
(
C
,
name
=
"elpa_skew_eigenvalues_
all_host_arrays_
d"
)
#endif
#ifdef SINGLE_PRECISION_REAL
bind
(
C
,
name
=
"elpa_skew_eigenvalues_f"
)
bind
(
C
,
name
=
"elpa_skew_eigenvalues_
all_host_arrays_
f"
)
#endif
#endif
type
(
c_ptr
),
intent
(
in
),
value
::
handle
,
a_p
,
ev_p
...
...
@@ -641,7 +641,7 @@
call
c_f_pointer
(
a_p
,
a
,
[
self
%
local_nrows
,
self
%
local_ncols
])
call
c_f_pointer
(
ev_p
,
ev
,
[
self
%
na
])
call
elpa_skew_eigenvalues_
&
call
elpa_skew_eigenvalues_
all_host_arrays_
&
&
ELPA_IMPL_SUFFIX
&
&
(
self
,
a
,
ev
,
error
)
end
subroutine
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment