EigenvalueSoLversforPetaflop-Applications(ELPA)  2016.05.002
elpa_generated_fortran_interfaces.h
Go to the documentation of this file.
1 #ifdef HAVE_AVX
2  interface
3  subroutine hexa_hh_trafo_real_avx_avx2_6hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="hexa_hh_trafo_real_avx_avx2_6hv")
4  use, intrinsic :: iso_c_binding
5  integer(kind=c_int) :: pnb, pnq, pldq, pldh
6  real(kind=c_double) :: q(*)
7  real(kind=c_double) :: hh(pnb,6)
8  end subroutine
9  end interface
10 #endif
11 #ifdef HAVE_SSE_INTRINSICS
12  interface
13  subroutine hexa_hh_trafo_real_sse_6hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="hexa_hh_trafo_real_sse_6hv")
14  use, intrinsic :: iso_c_binding
15  integer(kind=c_int) :: pnb, pnq, pldq, pldh
16  real(kind=c_double) :: q(*)
17  real(kind=c_double) :: hh(pnb,6)
18  end subroutine
19  end interface
20 #endif
21 #ifdef HAVE_AVX
22  interface
23  subroutine single_hh_trafo_complex_avx_avx2_1hv(q, hh, pnb, pnq, pldq) bind(C, name="single_hh_trafo_complex_avx_avx2_1hv")
24  use, intrinsic :: iso_c_binding
25  integer(kind=c_int) :: pnb, pnq, pldq
26  complex(kind=c_double) :: q(*)
27  complex(kind=c_double) :: hh(pnb,2)
28  end subroutine
29  end interface
30 #endif
31 #ifdef HAVE_SSE_INTRINSICS
32  interface
33  subroutine single_hh_trafo_complex_sse_1hv(q, hh, pnb, pnq, pldq) bind(C, name="single_hh_trafo_complex_sse_1hv")
34  use, intrinsic :: iso_c_binding
35  integer(kind=c_int) :: pnb, pnq, pldq
36  complex(kind=c_double) :: q(*)
37  complex(kind=c_double) :: hh(pnb,2)
38  end subroutine
39  end interface
40 #endif
41 #ifdef HAVE_AVX
42  interface
43  subroutine double_hh_trafo_real_avx_avx2_2hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="double_hh_trafo_real_avx_avx2_2hv")
44  use, intrinsic :: iso_c_binding
45  integer(kind=c_int) :: pnb, pnq, pldq, pldh
46  real(kind=c_double) :: q(*)
47  real(kind=c_double) :: hh(pnb,6)
48  end subroutine
49  end interface
50 #endif
51 #ifdef HAVE_SSE_INTRINSICS
52  interface
53  subroutine double_hh_trafo_real_sse_2hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="double_hh_trafo_real_sse_2hv")
54  use, intrinsic :: iso_c_binding
55  integer(kind=c_int) :: pnb, pnq, pldq, pldh
56  real(kind=c_double) :: q(*)
57  real(kind=c_double) :: hh(pnb,6)
58  end subroutine
59  end interface
60 #endif
61 #ifdef HAVE_AVX
62  interface
63  subroutine quad_hh_trafo_real_avx_avx2_4hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="quad_hh_trafo_real_avx_avx2_4hv")
64  use, intrinsic :: iso_c_binding
65  integer(kind=c_int) :: pnb, pnq, pldq, pldh
66  real(kind=c_double) :: q(*)
67  real(kind=c_double) :: hh(pnb,6)
68  end subroutine
69  end interface
70 #endif
71 #ifdef HAVE_SSE_INTRINSICS
72  interface
73  subroutine quad_hh_trafo_real_sse_4hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="quad_hh_trafo_real_sse_4hv")
74  use, intrinsic :: iso_c_binding
75  integer(kind=c_int) :: pnb, pnq, pldq, pldh
76  real(kind=c_double) :: q(*)
77  real(kind=c_double) :: hh(pnb,6)
78  end subroutine
79  end interface
80 #endif
81 #ifdef HAVE_AVX
82  interface
83  subroutine double_hh_trafo_complex_avx_avx2_2hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="double_hh_trafo_complex_avx_avx2_2hv")
84  use, intrinsic :: iso_c_binding
85  integer(kind=c_int) :: pnb, pnq, pldq, pldh
86  complex(kind=c_double) :: q(*)
87  complex(kind=c_double) :: hh(pnb,2)
88  end subroutine
89  end interface
90 #endif
91 #ifdef HAVE_SSE_INTRINSICS
92  interface
93  subroutine double_hh_trafo_complex_sse_2hv(q, hh, pnb, pnq, pldq, pldh) bind(C, name="double_hh_trafo_complex_sse_2hv")
94  use, intrinsic :: iso_c_binding
95  integer(kind=c_int) :: pnb, pnq, pldq, pldh
96  complex(kind=c_double) :: q(*)
97  complex(kind=c_double) :: hh(pnb,2)
98  end subroutine
99  end interface
100 #endif
101 #ifdef WITH_REAL_SSE_ASSEMBLY_KERNEL
102  interface
103  subroutine double_hh_trafo(q, hh, nb, nq, ldq, ldh) bind(C,name="double_hh_trafo")
104  use, intrinsic :: iso_c_binding
105  integer(kind=c_int) :: nb, nq, ldq, ldh
106  real(kind=c_double) :: q(*)
107  real(kind=c_double) :: hh(nb,6)
108  end subroutine
109  end interface
110 #endif
111 #ifdef WITH_COMPLEX_SSE_ASSEMBLY_KERNEL
112  interface
113  subroutine single_hh_trafo_complex(q, hh, nb, nq, ldq) bind(C,name="single_hh_trafo_complex")
114  use, intrinsic :: iso_c_binding
115  integer(kind=c_int) :: nb, nq, ldq
116  complex(kind=c_double) :: q(*)
117  complex(kind=c_double) :: hh(nb,2)
118  end subroutine
119  end interface
120 #endif