-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtea_leaf_ppcg.f90
More file actions
76 lines (48 loc) · 1.51 KB
/
tea_leaf_ppcg.f90
File metadata and controls
76 lines (48 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
MODULE tea_leaf_ppcg_module
USE tea_leaf_cheby_module
USE definitions_module
IMPLICIT NONE
CONTAINS
SUBROUTINE tea_leaf_ppcg_init_sd(theta)
IMPLICIT NONE
INTEGER :: t
REAL(KIND=8) :: theta
IF (use_opencl_kernels) THEN
DO t=1,tiles_per_task
CALL tea_leaf_ppcg_init_sd_kernel_ocl()
ENDDO
ENDIF
END SUBROUTINE tea_leaf_ppcg_init_sd
SUBROUTINE tea_leaf_ppcg_inner(ch_alphas, ch_betas, inner_step, bounds_extra)
IMPLICIT NONE
INTEGER :: t, inner_step, bounds_extra
REAL(KIND=8), DIMENSION(:) :: ch_alphas, ch_betas
IF (use_opencl_kernels) THEN
DO t=1,tiles_per_task
CALL tea_leaf_ppcg_inner_kernel_ocl(inner_step, bounds_extra, chunk%chunk_neighbours)
ENDDO
ENDIF
END SUBROUTINE tea_leaf_ppcg_inner
SUBROUTINE tea_leaf_ppcg_calc_zrnorm(rrn)
IMPLICIT NONE
INTEGER :: t
REAL(KIND=8) :: rrn, tile_rrn
rrn = 0.0_8
IF (use_opencl_kernels) THEN
DO t=1,tiles_per_task
tile_rrn = 0.0_8
CALL tea_leaf_calc_2norm_kernel_ocl(2, tile_rrn)
rrn = rrn + tile_rrn
ENDDO
ENDIF
END SUBROUTINE tea_leaf_ppcg_calc_zrnorm
SUBROUTINE tea_calc_ls_coefs(ch_alphas, ch_betas, eigmin, eigmax, &
theta, ppcg_inner_steps)
INTEGER :: ppcg_inner_steps
REAL(KIND=8), DIMENSION(ppcg_inner_steps) :: ch_alphas, ch_betas
REAL(KIND=8) :: eigmin, eigmax, theta
! TODO
CALL tea_calc_ch_coefs(ch_alphas, ch_betas, eigmin, eigmax, &
theta, ppcg_inner_steps)
END SUBROUTINE
END MODULE tea_leaf_ppcg_module