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
1d9439c6
Commit
1d9439c6
authored
Mar 25, 2017
by
Andreas Marek
Browse files
Pointer for matrix in complex case
parent
7f7dcff2
Changes
17
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/compute_hh_trafo.X90
View file @
1d9439c6
...
@@ -103,10 +103,10 @@
...
@@ -103,10 +103,10 @@
#if COMPLEXCASE == 1
#if COMPLEXCASE == 1
#if defined(WITH_COMPLEX_GENERIC_SIMPLE_KERNEL)
#if defined(WITH_COMPLEX_GENERIC_SIMPLE_KERNEL)
&& !(defined(USE_ASSUMED_SIZE))
use complex_generic_simple_kernel !, only : single_hh_trafo_complex_generic_simple
use complex_generic_simple_kernel !, only : single_hh_trafo_complex_generic_simple
#endif
#endif
#if defined(WITH_COMPLEX_GENERIC_KERNEL)
#if defined(WITH_COMPLEX_GENERIC_KERNEL)
&& !(defined(USE_ASSUMED_SIZE))
use complex_generic_kernel !, only : single_hh_trafo_complex_generic
use complex_generic_kernel !, only : single_hh_trafo_complex_generic
#endif
#endif
...
@@ -147,7 +147,8 @@
...
@@ -147,7 +147,8 @@
real(kind=C_DATATYPE_KIND), pointer:: a(:,:,:)
real(kind=C_DATATYPE_KIND), pointer:: a(:,:,:)
#endif
#endif
#if COMPLEXCASE == 1
#if COMPLEXCASE == 1
complex(kind=C_DATATYPE_KIND) :: a(stripe_width,a_dim2,stripe_count)
! complex(kind=C_DATATYPE_KIND) :: a(stripe_width,a_dim2,stripe_count)
complex(kind=C_DATATYPE_KIND),pointer :: a(:,:,:)
#endif
#endif
#else /* WITH_OPENMP */
#else /* WITH_OPENMP */
...
@@ -157,7 +158,8 @@
...
@@ -157,7 +158,8 @@
real(kind=C_DATATYPE_KIND), pointer:: a(:,:,:,:)
real(kind=C_DATATYPE_KIND), pointer:: a(:,:,:,:)
#endif
#endif
#if COMPLEXCASE == 1
#if COMPLEXCASE == 1
complex(kind=C_DATATYPE_KIND) :: a(stripe_width,a_dim2,stripe_count,max_threads)
! complex(kind=C_DATATYPE_KIND) :: a(stripe_width,a_dim2,stripe_count,max_threads)
complex(kind=C_DATATYPE_KIND),pointer :: a(:,:,:,:)
#endif
#endif
#endif /* WITH_OPENMP */
#endif /* WITH_OPENMP */
...
@@ -536,14 +538,14 @@
...
@@ -536,14 +538,14 @@
&_&
&_&
&PRECISION&
&PRECISION&
&_sse_assembly&
&_sse_assembly&
& (a(1,j+off+a_off,istripe,my_thread), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe,my_thread)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#else
#else
call single_hh_trafo_&
call single_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_&
&_&
&PRECISION&
&PRECISION&
&_sse_assembly&
&_sse_assembly&
& (a(1,j+off+a_off,istripe), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#endif
#endif
enddo
enddo
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
...
@@ -571,13 +573,13 @@
...
@@ -571,13 +573,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_sse_1hv_&
&_sse_1hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off,istripe,my_thread), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe,my_thread)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#else
#else
call single_hh_trafo_&
call single_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_sse_1hv_&
&_sse_1hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off,istripe), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#endif
#endif
enddo
enddo
#endif /* defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_SSE_BLOCK2_KERNEL)) */
#endif /* defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_SSE_BLOCK2_KERNEL)) */
...
@@ -609,13 +611,13 @@
...
@@ -609,13 +611,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx_avx2_1hv_&
&_avx_avx2_1hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off,istripe,my_thread), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe,my_thread)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#else
#else
call single_hh_trafo_&
call single_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx_avx2_1hv_&
&_avx_avx2_1hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off,istripe), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#endif
#endif
enddo
enddo
#endif /* defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_AVX_BLOCK2_KERNEL) && !defined(WITH_COMPLEX_AVX2_BLOCK2_KERNEL)) */
#endif /* defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_AVX_BLOCK2_KERNEL) && !defined(WITH_COMPLEX_AVX2_BLOCK2_KERNEL)) */
...
@@ -646,13 +648,13 @@
...
@@ -646,13 +648,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx512_1hv_&
&_avx512_1hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off,istripe,my_thread), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe,my_thread)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#else
#else
call single_hh_trafo_&
call single_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx512_1hv_&
&_avx512_1hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off,istripe), bcast_buffer(1,j+off),nbw,nl,stripe_width)
&
(c_loc
(a(1,j+off+a_off,istripe)
)
, bcast_buffer(1,j+off),nbw,nl,stripe_width)
#endif
#endif
enddo
enddo
#endif /* defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_AVX512_BLOCK2_KERNEL) ) */
#endif /* defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_AVX512_BLOCK2_KERNEL) ) */
...
@@ -715,13 +717,13 @@
...
@@ -715,13 +717,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_sse_2hv_&
&_sse_2hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off-1,istripe,my_thread), w, nbw, nl, stripe_width, nbw)
&
(c_loc
(a(1,j+off+a_off-1,istripe,my_thread)
)
, w, nbw, nl, stripe_width, nbw)
#else
#else
call double_hh_trafo_&
call double_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_sse_2hv_&
&_sse_2hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off-1,istripe), w, nbw, nl, stripe_width, nbw)
&
(c_loc
(a(1,j+off+a_off-1,istripe)
)
, w, nbw, nl, stripe_width, nbw)
#endif
#endif
enddo
enddo
#ifdef WITH_OPENMP
#ifdef WITH_OPENMP
...
@@ -729,13 +731,13 @@
...
@@ -729,13 +731,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_sse_1hv_&
&_sse_1hv_&
&PRECISION&
&PRECISION&
& (a(1,1+off+a_off,istripe,my_thread), bcast_buffer(1,off+1), nbw, nl, stripe_width)
&
(c_loc
(a(1,1+off+a_off,istripe,my_thread)
)
, bcast_buffer(1,off+1), nbw, nl, stripe_width)
#else
#else
if (j==1) call single_hh_trafo_&
if (j==1) call single_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_sse_1hv_&
&_sse_1hv_&
&PRECISION&
&PRECISION&
& (a(1,1+off+a_off,istripe), bcast_buffer(1,off+1), nbw, nl, stripe_width)
&
(c_loc
(a(1,1+off+a_off,istripe)
)
, bcast_buffer(1,off+1), nbw, nl, stripe_width)
#endif
#endif
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
...
@@ -799,13 +801,13 @@
...
@@ -799,13 +801,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx_avx2_2hv_&
&_avx_avx2_2hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off-1,istripe,my_thread), w, nbw, nl, stripe_width, nbw)
&
(c_loc
(a(1,j+off+a_off-1,istripe,my_thread)
)
, w, nbw, nl, stripe_width, nbw)
#else
#else
call double_hh_trafo_&
call double_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx_avx2_2hv_&
&_avx_avx2_2hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off-1,istripe), w, nbw, nl, stripe_width, nbw)
&
(c_loc
(a(1,j+off+a_off-1,istripe)
)
, w, nbw, nl, stripe_width, nbw)
#endif
#endif
enddo
enddo
#ifdef WITH_OPENMP
#ifdef WITH_OPENMP
...
@@ -813,13 +815,13 @@
...
@@ -813,13 +815,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx_avx2_1hv_&
&_avx_avx2_1hv_&
&PRECISION&
&PRECISION&
& (a(1,1+off+a_off,istripe,my_thread), bcast_buffer(1,off+1), nbw, nl, stripe_width)
&
(c_loc
(a(1,1+off+a_off,istripe,my_thread)
)
, bcast_buffer(1,off+1), nbw, nl, stripe_width)
#else
#else
if (j==1) call single_hh_trafo_&
if (j==1) call single_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx_avx2_1hv_&
&_avx_avx2_1hv_&
&PRECISION&
&PRECISION&
& (a(1,1+off+a_off,istripe), bcast_buffer(1,off+1), nbw, nl, stripe_width)
&
(c_loc
(a(1,1+off+a_off,istripe)
)
, bcast_buffer(1,off+1), nbw, nl, stripe_width)
#endif
#endif
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
...
@@ -882,13 +884,13 @@
...
@@ -882,13 +884,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx512_2hv_&
&_avx512_2hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off-1,istripe,my_thread), w, nbw, nl, stripe_width, nbw)
&
(c_loc
(a(1,j+off+a_off-1,istripe,my_thread)
)
, w, nbw, nl, stripe_width, nbw)
#else
#else
call double_hh_trafo_&
call double_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx512_2hv_&
&_avx512_2hv_&
&PRECISION&
&PRECISION&
& (a(1,j+off+a_off-1,istripe), w, nbw, nl, stripe_width, nbw)
&
(c_loc
(a(1,j+off+a_off-1,istripe)
)
, w, nbw, nl, stripe_width, nbw)
#endif
#endif
enddo
enddo
#ifdef WITH_OPENMP
#ifdef WITH_OPENMP
...
@@ -896,13 +898,13 @@
...
@@ -896,13 +898,13 @@
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx512_1hv_&
&_avx512_1hv_&
&PRECISION&
&PRECISION&
& (a(1,1+off+a_off,istripe,my_thread), bcast_buffer(1,off+1), nbw, nl, stripe_width)
&
(c_loc
(a(1,1+off+a_off,istripe,my_thread)
)
, bcast_buffer(1,off+1), nbw, nl, stripe_width)
#else
#else
if (j==1) call single_hh_trafo_&
if (j==1) call single_hh_trafo_&
&MATH_DATATYPE&
&MATH_DATATYPE&
&_avx512_1hv_&
&_avx512_1hv_&
&PRECISION&
&PRECISION&
& (a(1,1+off+a_off,istripe), bcast_buffer(1,off+1), nbw, nl, stripe_width)
&
(c_loc
(a(1,1+off+a_off,istripe)
)
, bcast_buffer(1,off+1), nbw, nl, stripe_width)
#endif
#endif
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL)
...
...
src/elpa2_kernels/elpa2_kernels_asm_x86_64_double_precision.s
View file @
1d9439c6
...
@@ -715,9 +715,10 @@ return1:
...
@@ -715,9 +715,10 @@ return1:
#!
f
>
subroutine
single_hh_trafo_complex_double_sse_assembly
(
q
,
hh
,
nb
,
nq
,
ldq
)
&
#!
f
>
subroutine
single_hh_trafo_complex_double_sse_assembly
(
q
,
hh
,
nb
,
nq
,
ldq
)
&
#!
f
>
bind
(
C
,
name
="
single_hh_trafo_complex_double_sse_assembly
")
#!
f
>
bind
(
C
,
name
="
single_hh_trafo_complex_double_sse_assembly
")
#!
f
>
use
,
intrinsic
::
iso_c_binding
#!
f
>
use
,
intrinsic
::
iso_c_binding
#!
f
>
integer
(
kind
=
c_int
)
::
nb
,
nq
,
ldq
#!
f
>
integer
(
kind
=
c_int
)
::
nb
,
nq
,
ldq
#!
f
>
complex
(
kind
=
c_double_complex
)
::
q
(*)
#!
f
>
!
complex
(
kind
=
c_double_complex
)
::
q
(*)
#!
f
>
complex
(
kind
=
c_double_complex
)
::
hh
(
nb
,
2
)
#!
f
>
type
(
c_ptr
),
value
::
q
#!
f
>
complex
(
kind
=
c_double_complex
)
::
hh
(
nb
,
2
)
#!
f
>
end
subroutine
#!
f
>
end
subroutine
#!
f
>
end
interface
#!
f
>
end
interface
#!
f
>#
endif
#!
f
>#
endif
...
...
src/elpa2_kernels/elpa2_kernels_asm_x86_64_single_precision.s
View file @
1d9439c6
...
@@ -735,9 +735,10 @@ return1:
...
@@ -735,9 +735,10 @@ return1:
#!
f
>
subroutine
single_hh_trafo_complex_single_sse_assembly
(
q
,
hh
,
nb
,
nq
,
ldq
)
&
#!
f
>
subroutine
single_hh_trafo_complex_single_sse_assembly
(
q
,
hh
,
nb
,
nq
,
ldq
)
&
#!
f
>
bind
(
C
,
name
="
single_hh_trafo_complex_single_sse_assembly
")
#!
f
>
bind
(
C
,
name
="
single_hh_trafo_complex_single_sse_assembly
")
#!
f
>
use
,
intrinsic
::
iso_c_binding
#!
f
>
use
,
intrinsic
::
iso_c_binding
#!
f
>
integer
(
kind
=
c_int
)
::
nb
,
nq
,
ldq
#!
f
>
integer
(
kind
=
c_int
)
::
nb
,
nq
,
ldq
#!
f
>
complex
(
kind
=
c_float_complex
)
::
q
(*)
#!
f
>
!
complex
(
kind
=
c_float_complex
)
::
q
(*)
#!
f
>
complex
(
kind
=
c_float_complex
)
::
hh
(
nb
,
2
)
#!
f
>
type
(
c_ptr
),
value
::
q
#!
f
>
complex
(
kind
=
c_float_complex
)
::
hh
(
nb
,
2
)
#!
f
>
end
subroutine
#!
f
>
end
subroutine
#!
f
>
end
interface
#!
f
>
end
interface
#!
f
>#
endif
#!
f
>#
endif
...
...
src/elpa2_kernels/elpa2_kernels_complex.F90
View file @
1d9439c6
...
@@ -56,6 +56,7 @@
...
@@ -56,6 +56,7 @@
#include "config-f90.h"
#include "config-f90.h"
#ifndef USE_ASSUMED_SIZE
module
complex_generic_kernel
module
complex_generic_kernel
private
private
...
@@ -65,6 +66,7 @@ module complex_generic_kernel
...
@@ -65,6 +66,7 @@ module complex_generic_kernel
#endif
#endif
contains
contains
#endif
#define DOUBLE_PRECISION_COMPLEX 1
#define DOUBLE_PRECISION_COMPLEX 1
#define COMPLEX_DATATYPE ck8
#define COMPLEX_DATATYPE ck8
...
@@ -80,5 +82,8 @@ module complex_generic_kernel
...
@@ -80,5 +82,8 @@ module complex_generic_kernel
#undef COMPLEX_DATATYPE
#undef COMPLEX_DATATYPE
#endif
#endif
#ifndef USE_ASSUMED_SIZE
end
module
complex_generic_kernel
end
module
complex_generic_kernel
#endif
! --------------------------------------------------------------------------------------------------
! --------------------------------------------------------------------------------------------------
src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_1hv_double_precision.c
View file @
1d9439c6
...
@@ -94,8 +94,9 @@ static __forceinline void hh_trafo_complex_kernel_4_AVX_1hv_double(double compl
...
@@ -94,8 +94,9 @@ static __forceinline void hh_trafo_complex_kernel_4_AVX_1hv_double(double compl
!f> bind(C, name="single_hh_trafo_complex_avx_avx2_1hv_double")
!f> bind(C, name="single_hh_trafo_complex_avx_avx2_1hv_double")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> complex(kind=c_double_complex) :: q(*)
!f> ! complex(kind=c_double_complex) :: q(*)
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> type(c_ptr), value :: q
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
!f>#endif
!f>#endif
...
...
src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_1hv_single_precision.c
View file @
1d9439c6
...
@@ -79,7 +79,8 @@ static __forceinline void hh_trafo_complex_kernel_4_AVX_1hv_single(float comple
...
@@ -79,7 +79,8 @@ static __forceinline void hh_trafo_complex_kernel_4_AVX_1hv_single(float comple
!f> bind(C, name="single_hh_trafo_complex_avx_avx2_1hv_single")
!f> bind(C, name="single_hh_trafo_complex_avx_avx2_1hv_single")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> complex(kind=c_float_complex) :: q(*)
!f> ! complex(kind=c_float_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_2hv_double_precision.c
View file @
1d9439c6
...
@@ -95,7 +95,8 @@ static __forceinline void hh_trafo_complex_kernel_2_AVX_2hv_double(double comple
...
@@ -95,7 +95,8 @@ static __forceinline void hh_trafo_complex_kernel_2_AVX_2hv_double(double comple
!f> bind(C, name="double_hh_trafo_complex_avx_avx2_2hv_double")
!f> bind(C, name="double_hh_trafo_complex_avx_avx2_2hv_double")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> complex(kind=c_double_complex) :: q(*)
!f> ! complex(kind=c_double_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_avx-avx2_2hv_single_precision.c
View file @
1d9439c6
...
@@ -80,7 +80,8 @@ static __forceinline void hh_trafo_complex_kernel_4_AVX_2hv_single(float complex
...
@@ -80,7 +80,8 @@ static __forceinline void hh_trafo_complex_kernel_4_AVX_2hv_single(float complex
!f> bind(C, name="double_hh_trafo_complex_avx_avx2_2hv_single")
!f> bind(C, name="double_hh_trafo_complex_avx_avx2_2hv_single")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> complex(kind=c_float_complex) :: q(*)
!f> ! complex(kind=c_float_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_avx512_1hv_double_precision.c
View file @
1d9439c6
...
@@ -73,7 +73,8 @@ static __forceinline void hh_trafo_complex_kernel_8_AVX512_1hv_double(double co
...
@@ -73,7 +73,8 @@ static __forceinline void hh_trafo_complex_kernel_8_AVX512_1hv_double(double co
!f> bind(C, name="single_hh_trafo_complex_avx512_1hv_double")
!f> bind(C, name="single_hh_trafo_complex_avx512_1hv_double")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> complex(kind=c_double_complex) :: q(*)
!f> ! complex(kind=c_double_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_avx512_1hv_single_precision.c
View file @
1d9439c6
...
@@ -71,7 +71,8 @@ static __forceinline void hh_trafo_complex_kernel_16_AVX512_1hv_single(float co
...
@@ -71,7 +71,8 @@ static __forceinline void hh_trafo_complex_kernel_16_AVX512_1hv_single(float co
!f> bind(C, name="single_hh_trafo_complex_avx512_1hv_single")
!f> bind(C, name="single_hh_trafo_complex_avx512_1hv_single")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> complex(kind=c_float_complex) :: q(*)
!f> ! complex(kind=c_float_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_avx512_2hv_double_precision.c
View file @
1d9439c6
...
@@ -74,7 +74,8 @@ static __forceinline void hh_trafo_complex_kernel_8_AVX512_2hv_double(double com
...
@@ -74,7 +74,8 @@ static __forceinline void hh_trafo_complex_kernel_8_AVX512_2hv_double(double com
!f> bind(C, name="double_hh_trafo_complex_avx512_2hv_double")
!f> bind(C, name="double_hh_trafo_complex_avx512_2hv_double")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> complex(kind=c_double_complex) :: q(*)
!f> ! complex(kind=c_double_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_avx512_2hv_single_precision.c
View file @
1d9439c6
...
@@ -73,7 +73,8 @@ static __forceinline void hh_trafo_complex_kernel_16_AVX512_2hv_single(float com
...
@@ -73,7 +73,8 @@ static __forceinline void hh_trafo_complex_kernel_16_AVX512_2hv_single(float com
!f> bind(C, name="double_hh_trafo_complex_avx512_2hv_single")
!f> bind(C, name="double_hh_trafo_complex_avx512_2hv_single")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> complex(kind=c_float_complex) :: q(*)
!f> ! complex(kind=c_float_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_simple.F90
View file @
1d9439c6
...
@@ -58,6 +58,7 @@
...
@@ -58,6 +58,7 @@
#include "config-f90.h"
#include "config-f90.h"
#ifndef USE_ASSUMED_SIZE
module
complex_generic_simple_kernel
module
complex_generic_simple_kernel
private
private
...
@@ -67,7 +68,7 @@ module complex_generic_simple_kernel
...
@@ -67,7 +68,7 @@ module complex_generic_simple_kernel
#endif
#endif
contains
contains
#endif
#define COMPLEXCASE 1
#define COMPLEXCASE 1
#define DOUBLE_PRECISION 1
#define DOUBLE_PRECISION 1
...
@@ -85,5 +86,7 @@ module complex_generic_simple_kernel
...
@@ -85,5 +86,7 @@ module complex_generic_simple_kernel
#undef SINGLE_PRECISION
#undef SINGLE_PRECISION
#endif
#endif
#ifndef USE_ASSUMED_SIZE
end
module
complex_generic_simple_kernel
end
module
complex_generic_simple_kernel
#endif
! --------------------------------------------------------------------------------------------------
! --------------------------------------------------------------------------------------------------
src/elpa2_kernels/elpa2_kernels_complex_sse_1hv_double_precision.c
View file @
1d9439c6
...
@@ -84,7 +84,8 @@ static __forceinline void hh_trafo_complex_kernel_2_SSE_1hv_double(double comple
...
@@ -84,7 +84,8 @@ static __forceinline void hh_trafo_complex_kernel_2_SSE_1hv_double(double comple
!f> bind(C, name="single_hh_trafo_complex_sse_1hv_double")
!f> bind(C, name="single_hh_trafo_complex_sse_1hv_double")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> complex(kind=c_double_complex) :: q(*)
!f> ! complex(kind=c_double_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_sse_1hv_single_precision.c
View file @
1d9439c6
...
@@ -68,7 +68,8 @@ static __forceinline void hh_trafo_complex_kernel_2_SSE_1hv_single(float complex
...
@@ -68,7 +68,8 @@ static __forceinline void hh_trafo_complex_kernel_2_SSE_1hv_single(float complex
!f> bind(C, name="single_hh_trafo_complex_sse_1hv_single")
!f> bind(C, name="single_hh_trafo_complex_sse_1hv_single")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> integer(kind=c_int) :: pnb, pnq, pldq
!f> complex(kind=c_float_complex) :: q(*)
!f> ! complex(kind=c_float_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_sse_2hv_double_precision.c
View file @
1d9439c6
...
@@ -84,7 +84,8 @@ static __forceinline void hh_trafo_complex_kernel_1_SSE_2hv_double(double comple
...
@@ -84,7 +84,8 @@ static __forceinline void hh_trafo_complex_kernel_1_SSE_2hv_double(double comple
!f> bind(C, name="double_hh_trafo_complex_sse_2hv_double")
!f> bind(C, name="double_hh_trafo_complex_sse_2hv_double")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> complex(kind=c_double_complex) :: q(*)
!f> ! complex(kind=c_double_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> complex(kind=c_double_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
src/elpa2_kernels/elpa2_kernels_complex_sse_2hv_single_precision.c
View file @
1d9439c6
...
@@ -65,7 +65,8 @@ static __forceinline void hh_trafo_complex_kernel_4_SSE_2hv_single(float complex
...
@@ -65,7 +65,8 @@ static __forceinline void hh_trafo_complex_kernel_4_SSE_2hv_single(float complex
!f> bind(C, name="double_hh_trafo_complex_sse_2hv_single")
!f> bind(C, name="double_hh_trafo_complex_sse_2hv_single")
!f> use, intrinsic :: iso_c_binding
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> complex(kind=c_float_complex) :: q(*)
!f> ! complex(kind=c_float_complex) :: q(*)
!f> type(c_ptr), value :: q
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> complex(kind=c_float_complex) :: hh(pnb,2)
!f> end subroutine
!f> end subroutine
!f> end interface
!f> end interface
...
...
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