|
Go to the documentation of this file. 1# 1 "src/loop_libraries/libcollier_wrapper.cpp"
4# 1 "/usr/include/stdc-predef.h" 1 3 4
6# 1 "src/loop_libraries/libcollier_wrapper.cpp"
24# 71 "src/loop_libraries/libcollier_wrapper.cpp"
27 use, intrinsic :: iso_c_binding
28 use, intrinsic :: iso_fortran_env
34 call setdeltair_cll(0d0, 0d0)
38 real(C_DOUBLE), intent(in) :: scl2
40 call setmuuv2_cll(scl2)
41 call setmuir2_cll(scl2)
44 subroutine a0_dummy(res, m02) bind(C, name='A0_impl')
45 complex(C_DOUBLE_COMPLEX), intent(in) :: m02
46 complex(C_DOUBLE_COMPLEX), intent(out) :: res
51 subroutine b0_dummy(res, p10, m02, m12) bind(C, name='B0_impl')
52 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
53 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
54 complex(C_DOUBLE_COMPLEX), intent(out) :: res
56 call b0_cll(res, p10, m02, m12)
60subroutine b1_dummy(res, p10, m02, m12) bind(C, name="B1_impl")
61 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
62 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
63 complex(C_DOUBLE_COMPLEX), intent(out) :: res
64 complex(REAL64), allocatable :: Bcoeff(:,:), Bcoeffuv(:,:)
66 allocate(bcoeff(0:1, 0:2))
67 allocate(bcoeffuv(0:1, 0:2))
68 call b_cll(bcoeff, bcoeffuv, p10, m02, m12, 2)
72 deallocate(bcoeff, bcoeffuv)
75subroutine b00_dummy(res, p10, m02, m12) bind(C, name="B00_impl")
76 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
77 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
78 complex(C_DOUBLE_COMPLEX), intent(out) :: res
79 complex(REAL64), allocatable :: Bcoeff(:,:), Bcoeffuv(:,:)
81 allocate(bcoeff(0:1, 0:2))
82 allocate(bcoeffuv(0:1, 0:2))
83 call b_cll(bcoeff, bcoeffuv, p10, m02, m12, 2)
87 deallocate(bcoeff, bcoeffuv)
91subroutine c0_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C0_impl")
92 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
93 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
94 complex(C_DOUBLE_COMPLEX), intent(out) :: res
95 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
97 allocate(ccoeff(0:1, 0:2, 0:2))
98 allocate(ccoeffuv(0:1, 0:2, 0:2))
99 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
103 deallocate(ccoeff, ccoeffuv)
106subroutine c00_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C00_impl")
107 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
108 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
109 complex(C_DOUBLE_COMPLEX), intent(out) :: res
110 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
112 allocate(ccoeff(0:1, 0:2, 0:2))
113 allocate(ccoeffuv(0:1, 0:2, 0:2))
114 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
118 deallocate(ccoeff, ccoeffuv)
121subroutine c1_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C1_impl")
122 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
123 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
124 complex(C_DOUBLE_COMPLEX), intent(out) :: res
125 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
127 allocate(ccoeff(0:1, 0:2, 0:2))
128 allocate(ccoeffuv(0:1, 0:2, 0:2))
129 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
133 deallocate(ccoeff, ccoeffuv)
136subroutine c11_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C11_impl")
137 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
138 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
139 complex(C_DOUBLE_COMPLEX), intent(out) :: res
140 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
142 allocate(ccoeff(0:1, 0:2, 0:2))
143 allocate(ccoeffuv(0:1, 0:2, 0:2))
144 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
148 deallocate(ccoeff, ccoeffuv)
151subroutine c12_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C12_impl")
152 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
153 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
154 complex(C_DOUBLE_COMPLEX), intent(out) :: res
155 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
157 allocate(ccoeff(0:1, 0:2, 0:2))
158 allocate(ccoeffuv(0:1, 0:2, 0:2))
159 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
163 deallocate(ccoeff, ccoeffuv)
166subroutine c2_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C2_impl")
167 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
168 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
169 complex(C_DOUBLE_COMPLEX), intent(out) :: res
170 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
172 allocate(ccoeff(0:1, 0:2, 0:2))
173 allocate(ccoeffuv(0:1, 0:2, 0:2))
174 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
178 deallocate(ccoeff, ccoeffuv)
181subroutine c22_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C22_impl")
182 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
183 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
184 complex(C_DOUBLE_COMPLEX), intent(out) :: res
185 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
187 allocate(ccoeff(0:1, 0:2, 0:2))
188 allocate(ccoeffuv(0:1, 0:2, 0:2))
189 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
193 deallocate(ccoeff, ccoeffuv)
197subroutine d0_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D0_impl")
198 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
199 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
200 complex(C_DOUBLE_COMPLEX), intent(out) :: res
201 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
203 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
204 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
205 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
207 res = dcoeff(0,0,0,0)
209 deallocate(dcoeff, dcoeffuv)
212subroutine d00_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D00_impl")
213 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
214 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
215 complex(C_DOUBLE_COMPLEX), intent(out) :: res
216 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
218 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
219 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
220 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
222 res = dcoeff(1,0,0,0)
224 deallocate(dcoeff, dcoeffuv)
227subroutine d1_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D1_impl")
228 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
229 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
230 complex(C_DOUBLE_COMPLEX), intent(out) :: res
231 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
233 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
234 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
235 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
237 res = dcoeff(0,1,0,0)
239 deallocate(dcoeff, dcoeffuv)
242subroutine d11_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D11_impl")
243 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
244 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
245 complex(C_DOUBLE_COMPLEX), intent(out) :: res
246 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
248 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
249 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
250 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
252 res = dcoeff(0,2,0,0)
254 deallocate(dcoeff, dcoeffuv)
257subroutine d12_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D12_impl")
258 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
259 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
260 complex(C_DOUBLE_COMPLEX), intent(out) :: res
261 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
263 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
264 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
265 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
267 res = dcoeff(0,1,1,0)
269 deallocate(dcoeff, dcoeffuv)
272subroutine d13_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D13_impl")
273 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
274 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
275 complex(C_DOUBLE_COMPLEX), intent(out) :: res
276 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
278 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
279 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
280 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
282 res = dcoeff(0,1,0,1)
284 deallocate(dcoeff, dcoeffuv)
287subroutine d2_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D2_impl")
288 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
289 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
290 complex(C_DOUBLE_COMPLEX), intent(out) :: res
291 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
293 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
294 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
295 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
297 res = dcoeff(0,0,1,0)
299 deallocate(dcoeff, dcoeffuv)
302subroutine d22_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D22_impl")
303 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
304 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
305 complex(C_DOUBLE_COMPLEX), intent(out) :: res
306 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
308 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
309 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
310 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
312 res = dcoeff(0,0,2,0)
314 deallocate(dcoeff, dcoeffuv)
317subroutine d23_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D23_impl")
318 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
319 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
320 complex(C_DOUBLE_COMPLEX), intent(out) :: res
321 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
323 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
324 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
325 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
327 res = dcoeff(0,0,1,1)
329 deallocate(dcoeff, dcoeffuv)
332subroutine d3_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D3_impl")
333 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
334 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
335 complex(C_DOUBLE_COMPLEX), intent(out) :: res
336 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
338 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
339 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
340 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
342 res = dcoeff(0,0,0,1)
344 deallocate(dcoeff, dcoeffuv)
347subroutine d33_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D33_impl")
348 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
349 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
350 complex(C_DOUBLE_COMPLEX), intent(out) :: res
351 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
353 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
354 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
355 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
357 res = dcoeff(0,0,0,2)
359 deallocate(dcoeff, dcoeffuv)
363 complex(C_DOUBLE_COMPLEX), intent(in) :: m02
364 complex(C_DOUBLE_COMPLEX), intent(out), dimension(1) :: a
365 complex(REAL64), allocatable :: Acoeff(:), Acoeffuv(:)
367 allocate(acoeff(0:0))
368 allocate(acoeffuv(0:0))
370 call a_cll(acoeff,acoeffuv,m02,0)
373 deallocate(acoeff,acoeffuv)
377 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
378 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
379 complex(C_DOUBLE_COMPLEX), intent(out), dimension(3) :: b
380 complex(REAL64), allocatable :: Bcoeff(:,:), Bcoeffuv(:,:)
382 allocate(bcoeff(0:1,0:2))
383 allocate(bcoeffuv(0:1,0:2))
384 call b_cll(bcoeff, bcoeffuv, p10, m02, m12, 2)
389 deallocate(bcoeff,bcoeffuv)
392 subroutine get_t3_dummy(c,p10,p21,p20,m02,m12,m22) bind(C, name='get_C_impl')
393 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
394 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
395 complex(C_DOUBLE_COMPLEX), intent(out), dimension(7) :: c
396 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
398 allocate(ccoeff(0:1,0:2,0:2))
399 allocate(ccoeffuv(0:1,0:2,0:2))
400 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
409 deallocate(ccoeff,ccoeffuv)
412 subroutine get_t4_dummy(d,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name='get_D_impl')
413 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
414 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
415 complex(C_DOUBLE_COMPLEX), intent(out), dimension(11) :: d
416 complex(REAL64), allocatable :: TNcoeff(:),TNcoeffuv(:)
418 allocate(tncoeff(11))
419 allocate(tncoeffuv(11))
421 call tn_cll(tncoeff,tncoeffuv,[ p10,p21,p32,p30,p20,p31 ],[ m02,m12,m22,m32 ],4,2)
426 deallocate(tncoeff,tncoeffuv)
subroutine b00_dummy(res, p10, m02, m12)
subroutine d23_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine set_mu2_uv_dummy(scl2)
subroutine c12_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine get_t1_dummy(a, m02)
subroutine d0_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine d33_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine b1_dummy(res, p10, m02, m12)
subroutine d12_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine d22_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c2_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine get_t3_dummy(c, p10, p21, p20, m02, m12, m22)
subroutine d13_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine get_t4_dummy(d, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c00_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine c22_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine initialize_collier_dummy()
subroutine b0_dummy(res, p10, m02, m12)
subroutine d11_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine d1_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c11_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine d3_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c0_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine d2_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine get_t2_dummy(b, p10, m02, m12)
subroutine a0_dummy(res, m02)
subroutine c1_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine d00_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
|