34 use utils,
only: neko_error
35 use num_types,
only: rp, c_rp
36 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
52 bind(c, name =
'cuda_convex_down_RAMP_mapping_apply')
53 import c_rp, c_ptr, c_int
57 type(c_ptr),
value :: X_out_d
58 type(c_ptr),
value :: X_in_d
65 dF_dX_in_d, dF_dX_out_d, X_in_d, n) &
66 bind(c, name =
'cuda_convex_down_RAMP_mapping_apply_backward')
67 import c_rp, c_ptr, c_int
71 type(c_ptr),
value :: dF_dX_in_d
72 type(c_ptr),
value :: dF_dX_out_d
73 type(c_ptr),
value :: X_in_d
81 bind(c, name =
'cuda_convex_up_RAMP_mapping_apply')
82 import c_rp, c_ptr, c_int
86 type(c_ptr),
value :: X_out_d
87 type(c_ptr),
value :: X_in_d
94 dF_dX_in_d, dF_dX_out_d, X_in_d, n) &
95 bind(c, name =
'cuda_convex_up_RAMP_mapping_apply_backward')
96 import c_rp, c_ptr, c_int
100 type(c_ptr),
value :: dF_dX_in_d
101 type(c_ptr),
value :: dF_dX_out_d
102 type(c_ptr),
value :: X_in_d
114 real(kind=rp),
intent(in) :: f_min
115 real(kind=rp),
intent(in) :: f_max
116 real(kind=rp),
intent(in) :: q
117 type(c_ptr) :: x_out_d
118 type(c_ptr) :: x_in_d
124 call neko_error(
'No device backend configured')
129 dF_dX_in_d, dF_dX_out_d, X_in_d, n)
130 real(kind=rp),
intent(in) :: f_min
131 real(kind=rp),
intent(in) :: f_max
132 real(kind=rp),
intent(in) :: q
133 type(c_ptr) :: df_dx_in_d
134 type(c_ptr) :: df_dx_out_d
135 type(c_ptr) :: x_in_d
139 df_dx_in_d, df_dx_out_d, x_in_d, n)
141 call neko_error(
'No device backend configured')
147 real(kind=rp),
intent(in) :: f_min
148 real(kind=rp),
intent(in) :: f_max
149 real(kind=rp),
intent(in) :: q
150 type(c_ptr) :: x_out_d
151 type(c_ptr) :: x_in_d
157 call neko_error(
'No device backend configured')
162 dF_dX_in_d, dF_dX_out_d, X_in_d, n)
163 real(kind=rp),
intent(in) :: f_min
164 real(kind=rp),
intent(in) :: f_max
165 real(kind=rp),
intent(in) :: q
166 type(c_ptr) :: df_dx_in_d
167 type(c_ptr) :: df_dx_out_d
168 type(c_ptr) :: x_in_d
172 df_dx_in_d, df_dx_out_d, x_in_d, n)
174 call neko_error(
'No device backend configured')
subroutine, public device_convex_up_ramp_mapping_apply(f_min, f_max, q, x_out_d, x_in_d, n)
subroutine, public device_convex_down_ramp_mapping_apply(f_min, f_max, q, x_out_d, x_in_d, n)
subroutine, public device_convex_up_ramp_mapping_apply_backward(f_min, f_max, q, df_dx_in_d, df_dx_out_d, x_in_d, n)
subroutine, public device_convex_down_ramp_mapping_apply_backward(f_min, f_max, q, df_dx_in_d, df_dx_out_d, x_in_d, n)