40 bind(c, name =
'opencl_copy')
41 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
42 type(c_ptr),
value :: a_d, b_d
47 bind(c, name =
'opencl_masked_copy')
48 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
49 type(c_ptr),
value :: a_d, b_d, mask_d
50 integer(c_int) :: n, m
54 bind(c, name =
'opencl_cfill_mask')
55 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
57 type(c_ptr),
value :: a_d
59 integer(c_int) :: size
60 type(c_ptr),
value :: mask_d
61 integer(c_int) :: mask_size
65 bind(c, name =
'opencl_cmult')
66 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
68 type(c_ptr),
value :: a_d
74 bind(c, name =
'opencl_cmult2')
75 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
77 type(c_ptr),
value :: a_d, b_d
83 bind(c, name =
'opencl_cadd')
84 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
86 type(c_ptr),
value :: a_d
92 bind(c, name =
'opencl_cadd2')
93 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
95 type(c_ptr),
value :: a_d
96 type(c_ptr),
value :: b_d
102 bind(c, name =
'opencl_cfill')
103 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
105 type(c_ptr),
value :: a_d
111 bind(c, name =
'opencl_rzero')
112 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
113 type(c_ptr),
value :: a_d
118 bind(c, name =
'opencl_rone')
119 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
120 type(c_ptr),
value :: a_d
125 bind(c, name =
'opencl_add2')
126 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
128 type(c_ptr),
value :: a_d, b_d
133 bind(c, name =
'opencl_add4')
134 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
136 type(c_ptr),
value :: a_d, b_d, c_d, d_d
141 bind(c, name =
'opencl_add2s1')
142 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
145 type(c_ptr),
value :: a_d, b_d
151 bind(c, name =
'opencl_add2s2')
152 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
155 type(c_ptr),
value :: a_d, b_d
161 bind(c, name =
'opencl_add2s2_many')
162 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
165 type(c_ptr),
value :: y_d, x_d_d, a_d
166 integer(c_int) :: j, n
170 bind(c, name =
'opencl_addsqr2s2')
171 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
174 type(c_ptr),
value :: a_d, b_d
180 bind(c, name =
'opencl_add3s2')
181 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
184 type(c_ptr),
value :: a_d, b_d, c_d
190 bind(c, name =
'opencl_invcol1')
191 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
193 type(c_ptr),
value :: a_d
198 bind(c, name =
'opencl_invcol2')
199 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
201 type(c_ptr),
value :: a_d, b_d
206 bind(c, name =
'opencl_col2')
207 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
209 type(c_ptr),
value :: a_d, b_d
214 bind(c, name =
'opencl_col3')
215 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
217 type(c_ptr),
value :: a_d, b_d, c_d
222 bind(c, name =
'opencl_subcol3')
223 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
225 type(c_ptr),
value :: a_d, b_d, c_d
230 bind(c, name =
'opencl_sub2')
231 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
233 type(c_ptr),
value :: a_d, b_d
238 bind(c, name =
'opencl_sub3')
239 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
241 type(c_ptr),
value :: a_d, b_d, c_d
246 bind(c, name =
'opencl_add3')
247 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
249 type(c_ptr),
value :: a_d, b_d, c_d
254 bind(c, name =
'opencl_addcol3')
255 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
257 type(c_ptr),
value :: a_d, b_d, c_d
262 bind(c, name =
'opencl_addcol4')
263 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
265 type(c_ptr),
value :: a_d, b_d, c_d, d_d
269 subroutine opencl_vdot3(dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, n) &
270 bind(c, name =
'opencl_vdot3')
271 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
273 type(c_ptr),
value :: dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d
278 bind(c, name =
'opencl_glsc3')
279 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
282 type(c_ptr),
value :: a_d, b_d, c_d
287 bind(c, name =
'opencl_glsc3_many')
288 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
291 integer(c_int) :: j, n
292 type(c_ptr),
value :: w_d, v_d_d, mult_d
297 bind(c, name =
'opencl_glsc2')
298 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
301 type(c_ptr),
value :: a_d, b_d
306 bind(c, name =
'opencl_glsum')
307 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
310 type(c_ptr),
value :: a_d
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.