328
SUBROUTINE ML5_0_LOOP_3(W1, W2, W3, M1, M2, M3, RANK,
329
$ SQUAREDSOINDEX, LOOPNUM)
331
PARAMETER (NEXTERNAL=5)
333
PARAMETER (NLOOPLINE=3)
335
PARAMETER (NWAVEFUNCS=28)
337
PARAMETER (NLOOPGROUPS=77)
340
C These are constants related to the split orders
342
PARAMETER (NSQUAREDSO=0)
347
COMPLEX*16 M1, M2, M3
349
INTEGER RANK, LSYMFACT
350
INTEGER LOOPNUM, SQUAREDSOINDEX
354
REAL*8 PL(0:3,NLOOPLINE)
355
REAL*16 MP_PL(0:3,NLOOPLINE)
356
COMPLEX*16 M2L(NLOOPLINE)
357
INTEGER PAIRING(NLOOPLINE),WE(3)
358
INTEGER I, J, K, TEMP,I_LIB
359
LOGICAL COMPLEX_MASS,DOING_QP
363
INCLUDE 'MadLoopParams.inc'
364
INTEGER ID,SQSOINDEX,R
365
COMMON/ML5_0_LOOP/ID,SQSOINDEX,R
367
LOGICAL CHECKPHASE, HELDOUBLECHECKED
368
COMMON/ML5_0_INIT/CHECKPHASE, HELDOUBLECHECKED
371
INTEGER GOODHEL(NCOMB)
372
LOGICAL GOODAMP(NSQUAREDSO,NLOOPGROUPS)
373
COMMON/ML5_0_FILTERS/GOODAMP,GOODHEL,HELOFFSET
375
COMPLEX*16 LOOPRES(3,NSQUAREDSO,NLOOPGROUPS)
376
LOGICAL S(NSQUAREDSO,NLOOPGROUPS)
377
COMMON/ML5_0_LOOPRES/LOOPRES,S
380
COMPLEX*16 W(20,NWAVEFUNCS)
382
COMPLEX*32 MP_W(20,NWAVEFUNCS)
383
COMMON/ML5_0_MP_W/MP_W
387
COMMON/ML5_0_CT/LSCALE,CTMODE
389
COMMON/ML5_0_I_LIB/LIBINDEX
395
C Determine it uses qp or not
396
DOING_QP = (CTMODE.GE.4)
398
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED)
399
$ .OR.GOODAMP(SQUAREDSOINDEX,LOOPNUM)) THEN
412
SQSOINDEX=SQUAREDSOINDEX
420
DO K=TEMP,(TEMP+PAIRING(J)-1)
421
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
423
MP_PL(I,J)=MP_PL(I,J)-REAL(MP_W(1+I,WE(K)),KIND=16)
429
C Determine whether the integral is with complex masses or not
430
C since some reduction libraries, e.g.PJFry++ and IREGI, are
432
C not able to deal with complex masses
435
IF(DIMAG(M2L(I)).EQ.0D0)CYCLE
436
IF(ABS(DIMAG(M2L(I)))/MAX(ABS(M2L(I)),1D-2).GT.1D-15)THEN
441
C Choose the correct loop library
442
CALL ML5_0_CHOOSE_LOOPLIB(LIBINDEX,NLOOPLINE,RANK,COMPLEX_MASS
443
$ ,ID,DOING_QP,I_LIB)
444
IF(MLREDUCTIONLIB(I_LIB).EQ.1)THEN
446
CALL ML5_0_CTLOOP(NLOOPLINE,PL,M2L,RANK,LOOPRES(1
447
$ ,SQUAREDSOINDEX,LOOPNUM),S(SQUAREDSOINDEX,LOOPNUM))
449
C Tensor Integral Reduction is used
450
CALL ML5_0_TIRLOOP(SQUAREDSOINDEX,LOOPNUM,I_LIB,NLOOPLINE,PL
451
$ ,M2L,RANK,LOOPRES(1,SQUAREDSOINDEX,LOOPNUM)
452
$ ,S(SQUAREDSOINDEX,LOOPNUM))
455
LOOPRES(1,SQUAREDSOINDEX,LOOPNUM)=(0.0D0,0.0D0)
456
LOOPRES(2,SQUAREDSOINDEX,LOOPNUM)=(0.0D0,0.0D0)
457
LOOPRES(3,SQUAREDSOINDEX,LOOPNUM)=(0.0D0,0.0D0)
458
S(SQUAREDSOINDEX,LOOPNUM)=.TRUE.
328
462
SUBROUTINE ML5_0_LOOP_5(W1, W2, W3, W4, W5, M1, M2, M3, M4, M5,
329
463
$ RANK, SQUAREDSOINDEX, LOOPNUM)
330
464
INTEGER NEXTERNAL
1136
SUBROUTINE ML5_0_LOOP_3(W1, W2, W3, M1, M2, M3, RANK,
1137
$ SQUAREDSOINDEX, LOOPNUM)
1139
PARAMETER (NEXTERNAL=5)
1141
PARAMETER (NLOOPLINE=3)
1143
PARAMETER (NWAVEFUNCS=28)
1145
PARAMETER (NLOOPGROUPS=77)
1147
PARAMETER (NCOMB=48)
1148
C These are constants related to the split orders
1150
PARAMETER (NSQUAREDSO=0)
1155
COMPLEX*16 M1, M2, M3
1157
INTEGER RANK, LSYMFACT
1158
INTEGER LOOPNUM, SQUAREDSOINDEX
1162
REAL*8 PL(0:3,NLOOPLINE)
1163
REAL*16 MP_PL(0:3,NLOOPLINE)
1164
COMPLEX*16 M2L(NLOOPLINE)
1165
INTEGER PAIRING(NLOOPLINE),WE(3)
1166
INTEGER I, J, K, TEMP,I_LIB
1167
LOGICAL COMPLEX_MASS,DOING_QP
1171
INCLUDE 'MadLoopParams.inc'
1172
INTEGER ID,SQSOINDEX,R
1173
COMMON/ML5_0_LOOP/ID,SQSOINDEX,R
1175
LOGICAL CHECKPHASE, HELDOUBLECHECKED
1176
COMMON/ML5_0_INIT/CHECKPHASE, HELDOUBLECHECKED
1179
INTEGER GOODHEL(NCOMB)
1180
LOGICAL GOODAMP(NSQUAREDSO,NLOOPGROUPS)
1181
COMMON/ML5_0_FILTERS/GOODAMP,GOODHEL,HELOFFSET
1183
COMPLEX*16 LOOPRES(3,NSQUAREDSO,NLOOPGROUPS)
1184
LOGICAL S(NSQUAREDSO,NLOOPGROUPS)
1185
COMMON/ML5_0_LOOPRES/LOOPRES,S
1188
COMPLEX*16 W(20,NWAVEFUNCS)
1190
COMPLEX*32 MP_W(20,NWAVEFUNCS)
1191
COMMON/ML5_0_MP_W/MP_W
1195
COMMON/ML5_0_CT/LSCALE,CTMODE
1197
COMMON/ML5_0_I_LIB/LIBINDEX
1203
C Determine it uses qp or not
1204
DOING_QP = (CTMODE.GE.4)
1206
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(SQUAREDSOIND
1220
SQSOINDEX=SQUAREDSOINDEX
1226
MP_PL(I,J)=0.0E+0_16
1228
DO K=TEMP,(TEMP+PAIRING(J)-1)
1229
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
1231
MP_PL(I,J)=MP_PL(I,J)-REAL(MP_W(1+I,WE(K)),KIND=16)
1234
TEMP=TEMP+PAIRING(J)
1237
C Determine whether the integral is with complex masses or not
1238
C since some reduction libraries, e.g.PJFry++ and IREGI, are
1240
C not able to deal with complex masses
1241
COMPLEX_MASS=.FALSE.
1243
IF(DIMAG(M2L(I)).EQ.0D0)CYCLE
1244
IF(ABS(DIMAG(M2L(I)))/MAX(ABS(M2L(I)),1D-2).GT.1D-15)THEN
1249
C Choose the correct loop library
1250
CALL ML5_0_CHOOSE_LOOPLIB(LIBINDEX,NLOOPLINE,RANK,COMPLEX_MASS
1251
$ ,ID,DOING_QP,I_LIB)
1252
IF(MLREDUCTIONLIB(I_LIB).EQ.1)THEN
1254
CALL ML5_0_CTLOOP(NLOOPLINE,PL,M2L,RANK,LOOPRES(1
1255
$ ,SQUAREDSOINDEX,LOOPNUM),S(SQUAREDSOINDEX,LOOPNUM))
1257
C Tensor Integral Reduction is used
1258
CALL ML5_0_TIRLOOP(SQUAREDSOINDEX,LOOPNUM,I_LIB,NLOOPLINE,PL
1259
$ ,M2L,RANK,LOOPRES(1,SQUAREDSOINDEX,LOOPNUM)
1260
$ ,S(SQUAREDSOINDEX,LOOPNUM))
1263
LOOPRES(1,SQUAREDSOINDEX,LOOPNUM)=(0.0D0,0.0D0)
1264
LOOPRES(2,SQUAREDSOINDEX,LOOPNUM)=(0.0D0,0.0D0)
1265
LOOPRES(3,SQUAREDSOINDEX,LOOPNUM)=(0.0D0,0.0D0)
1266
S(SQUAREDSOINDEX,LOOPNUM)=.TRUE.