~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/polynomial.f

  • Committer: olivier Mattelaer
  • Date: 2016-05-12 11:00:18 UTC
  • mfrom: (262.1.150 2.3.4)
  • Revision ID: olivier.mattelaer@uclouvain.be-20160512110018-sevb79f0wm4g8mpp
pass to 2.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      MODULE ML5_0_POLYNOMIAL_CONSTANTS
 
2
      IMPLICIT NONE
 
3
      INCLUDE 'coef_specs.inc'
 
4
      INCLUDE 'loop_max_coefs.inc'
 
5
 
 
6
C     Map associating a rank to each coefficient position
 
7
      INTEGER COEFTORANK_MAP(0:LOOPMAXCOEFS-1)
 
8
      DATA COEFTORANK_MAP(0:0)/1*0/
 
9
      DATA COEFTORANK_MAP(1:4)/4*1/
 
10
      DATA COEFTORANK_MAP(5:14)/10*2/
 
11
 
 
12
C     Map defining the number of coefficients for a symmetric tensor
 
13
C      of a given rank
 
14
      INTEGER NCOEF_R(0:2)
 
15
      DATA NCOEF_R/1,5,15/
 
16
 
 
17
C     Map defining the coef position resulting from the multiplication
 
18
C      of two lower rank coefs.
 
19
      INTEGER COMB_COEF_POS(0:LOOPMAXCOEFS-1,0:4)
 
20
      DATA COMB_COEF_POS(  0,  0:  4) /  0,  1,  2,  3,  4/
 
21
      DATA COMB_COEF_POS(  1,  0:  4) /  1,  5,  6,  8, 11/
 
22
      DATA COMB_COEF_POS(  2,  0:  4) /  2,  6,  7,  9, 12/
 
23
      DATA COMB_COEF_POS(  3,  0:  4) /  3,  8,  9, 10, 13/
 
24
      DATA COMB_COEF_POS(  4,  0:  4) /  4, 11, 12, 13, 14/
 
25
      DATA COMB_COEF_POS(  5,  0:  4) /  5, 15, 16, 19, 25/
 
26
      DATA COMB_COEF_POS(  6,  0:  4) /  6, 16, 17, 20, 26/
 
27
      DATA COMB_COEF_POS(  7,  0:  4) /  7, 17, 18, 21, 27/
 
28
      DATA COMB_COEF_POS(  8,  0:  4) /  8, 19, 20, 22, 28/
 
29
      DATA COMB_COEF_POS(  9,  0:  4) /  9, 20, 21, 23, 29/
 
30
      DATA COMB_COEF_POS( 10,  0:  4) / 10, 22, 23, 24, 30/
 
31
      DATA COMB_COEF_POS( 11,  0:  4) / 11, 25, 26, 28, 31/
 
32
      DATA COMB_COEF_POS( 12,  0:  4) / 12, 26, 27, 29, 32/
 
33
      DATA COMB_COEF_POS( 13,  0:  4) / 13, 28, 29, 30, 33/
 
34
      DATA COMB_COEF_POS( 14,  0:  4) / 14, 31, 32, 33, 34/
 
35
 
 
36
      END MODULE ML5_0_POLYNOMIAL_CONSTANTS
 
37
 
 
38
 
1
39
C     THE SUBROUTINE TO CREATE THE COEFFICIENTS FROM LAST LOOP WF AND 
2
40
C     MULTIPLY BY THE BORN
3
41
 
4
42
      SUBROUTINE ML5_0_CREATE_LOOP_COEFS(LOOP_WF,RANK,LCUT_SIZE
5
43
     $ ,LOOP_GROUP_NUMBER,SYMFACT,MULTIPLIER,COLOR_ID,HELCONFIG)
 
44
      USE ML5_0_POLYNOMIAL_CONSTANTS
6
45
      IMPLICIT NONE
7
46
C     
8
47
C     CONSTANTS 
15
54
      PARAMETER (IMAG1=(ZERO,ONE))
16
55
      COMPLEX*16 CMPLX_ZERO
17
56
      PARAMETER (CMPLX_ZERO=(ZERO,ZERO))
18
 
      INTEGER MAXLWFSIZE
19
 
      PARAMETER (MAXLWFSIZE=4)
20
 
      INTEGER LOOPMAXCOEFS
21
 
      PARAMETER (LOOPMAXCOEFS=15)
22
57
      INTEGER    NCOLORROWS
23
58
      PARAMETER (NCOLORROWS=40)
24
59
      INTEGER    NLOOPGROUPS
44
79
C     FUNCTIONS
45
80
C     
46
81
      INTEGER ML5_0_ML5SOINDEX_FOR_BORN_AMP, ML5_0_ML5SOINDEX_FOR_LOOP_
47
 
     $ AMP, ML5_0_ML5SQSOINDEX
 
82
     $AMP, ML5_0_ML5SQSOINDEX
48
83
C     
49
84
C     GLOBAL VARIABLES
50
85
C     
79
114
     $   ,KIND=8)
80
115
        IF(CF_D(COLOR_ID,I).LT.0) CFTOT=CFTOT*IMAG1
81
116
        CONST(ML5_0_ML5SOINDEX_FOR_BORN_AMP(I))=CONST(ML5_0_ML5SOINDEX_
82
 
     $   FOR_BORN_AMP(I))+CFTOT*CONJG(AMP(I))
 
117
     $FOR_BORN_AMP(I))+CFTOT*CONJG(AMP(I))
83
118
      ENDDO
84
119
 
85
120
      DO I=1,NAMPSO
86
121
        IF (CONST(I).NE.CMPLX_ZERO) THEN
87
122
          CONST(I)=(CONST(I)*MULTIPLIER)/SYMFACT
88
 
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
89
 
     $     -1) THEN
 
123
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.-1)
 
124
     $      THEN
90
125
            CONST(I)=CONST(I)*GOODHEL(HELCONFIG)
91
126
          ENDIF
92
127
          CALL ML5_0_MERGE_WL(LOOP_WF,RANK,LCUT_SIZE,CONST(I)
93
128
     $     ,LOOPCOEFS(0,ML5_0_ML5SQSOINDEX(I,ML5_0_ML5SOINDEX_FOR_LOOP_
94
 
     $     AMP(COLOR_ID)),LOOP_GROUP_NUMBER))
 
129
     $AMP(COLOR_ID)),LOOP_GROUP_NUMBER))
95
130
        ENDIF
96
131
      ENDDO
97
132
 
98
133
      END
99
134
 
100
135
 
 
136
C     Now the routines to update the wavefunctions
 
137
 
 
138
 
 
139
 
101
140
C     THE SUBROUTINE TO CREATE THE COEFFICIENTS FROM LAST LOOP WF AND 
102
141
C     MULTIPLY BY THE BORN
103
142
 
104
143
      SUBROUTINE MP_ML5_0_CREATE_LOOP_COEFS(LOOP_WF,RANK,LCUT_SIZE
105
144
     $ ,LOOP_GROUP_NUMBER,SYMFACT,MULTIPLIER,COLOR_ID,HELCONFIG)
 
145
      USE ML5_0_POLYNOMIAL_CONSTANTS
106
146
      IMPLICIT NONE
107
147
C     
108
148
C     CONSTANTS 
115
155
      PARAMETER (IMAG1=(ZERO,ONE))
116
156
      COMPLEX*32 CMPLX_ZERO
117
157
      PARAMETER (CMPLX_ZERO=(ZERO,ZERO))
118
 
      INTEGER MAXLWFSIZE
119
 
      PARAMETER (MAXLWFSIZE=4)
120
 
      INTEGER LOOPMAXCOEFS
121
 
      PARAMETER (LOOPMAXCOEFS=15)
122
158
      INTEGER    NCOLORROWS
123
159
      PARAMETER (NCOLORROWS=40)
124
160
      INTEGER    NLOOPGROUPS
144
180
C     FUNCTIONS
145
181
C     
146
182
      INTEGER ML5_0_ML5SOINDEX_FOR_BORN_AMP, ML5_0_ML5SOINDEX_FOR_LOOP_
147
 
     $ AMP, ML5_0_ML5SQSOINDEX
 
183
     $AMP, ML5_0_ML5SQSOINDEX
148
184
C     
149
185
C     GLOBAL VARIABLES
150
186
C     
179
215
     $   ,KIND=16)
180
216
        IF(CF_D(COLOR_ID,I).LT.0) CFTOT=CFTOT*IMAG1
181
217
        CONST(ML5_0_ML5SOINDEX_FOR_BORN_AMP(I))=CONST(ML5_0_ML5SOINDEX_
182
 
     $   FOR_BORN_AMP(I))+CFTOT*CONJG(AMP(I))
 
218
     $FOR_BORN_AMP(I))+CFTOT*CONJG(AMP(I))
183
219
      ENDDO
184
220
 
185
221
      DO I=1,NAMPSO
186
222
        IF (CONST(I).NE.CMPLX_ZERO) THEN
187
223
          CONST(I)=(CONST(I)*MULTIPLIER)/SYMFACT
188
 
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
189
 
     $     -1) THEN
 
224
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.-1)
 
225
     $      THEN
190
226
            CONST(I)=CONST(I)*GOODHEL(HELCONFIG)
191
227
          ENDIF
192
228
          CALL MP_ML5_0_MERGE_WL(LOOP_WF,RANK,LCUT_SIZE,CONST(I)
193
229
     $     ,LOOPCOEFS(0,ML5_0_ML5SQSOINDEX(I,ML5_0_ML5SOINDEX_FOR_LOOP_
194
 
     $     AMP(COLOR_ID)),LOOP_GROUP_NUMBER))
 
230
     $AMP(COLOR_ID)),LOOP_GROUP_NUMBER))
195
231
        ENDIF
196
232
      ENDDO
197
233
 
198
234
      END
199
235
 
200
236
 
 
237
C     Now the routines to update the wavefunctions
 
238
 
 
239
 
 
240
 
201
241
      SUBROUTINE ML5_0_EVAL_POLY(C,R,Q,OUT)
202
 
      INCLUDE 'coef_specs.inc'
203
 
      COMPLEX*16 C(0:LOOP_MAXCOEFS-1)
 
242
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
243
      COMPLEX*16 C(0:LOOPMAXCOEFS-1)
204
244
      INTEGER R
205
245
      COMPLEX*16 Q(0:3)
206
246
      COMPLEX*16 OUT
211
251
      ENDIF
212
252
      IF (R.GE.2) THEN
213
253
        OUT=OUT+C(5)*Q(0)*Q(0)+C(6)*Q(0)*Q(1)+C(7)*Q(1)*Q(1)+C(8)*Q(0)
214
 
     $   *Q(2)+C(9)*Q(1)*Q(2)+C(10)*Q(2)*Q(2)+C(11)*Q(0)*Q(3)
215
 
     $   +C(12)*Q(1)*Q(3)+C(13)*Q(2)*Q(3)+C(14)*Q(3)*Q(3)
 
254
     $   *Q(2)+C(9)*Q(1)*Q(2)+C(10)*Q(2)*Q(2)+C(11)*Q(0)*Q(3)+C(12)
 
255
     $   *Q(1)*Q(3)+C(13)*Q(2)*Q(3)+C(14)*Q(3)*Q(3)
216
256
      ENDIF
217
257
      END
218
258
 
219
259
      SUBROUTINE MP_ML5_0_EVAL_POLY(C,R,Q,OUT)
220
 
      INCLUDE 'coef_specs.inc'
221
 
      COMPLEX*32 C(0:LOOP_MAXCOEFS-1)
 
260
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
261
      COMPLEX*32 C(0:LOOPMAXCOEFS-1)
222
262
      INTEGER R
223
263
      COMPLEX*32 Q(0:3)
224
264
      COMPLEX*32 OUT
229
269
      ENDIF
230
270
      IF (R.GE.2) THEN
231
271
        OUT=OUT+C(5)*Q(0)*Q(0)+C(6)*Q(0)*Q(1)+C(7)*Q(1)*Q(1)+C(8)*Q(0)
232
 
     $   *Q(2)+C(9)*Q(1)*Q(2)+C(10)*Q(2)*Q(2)+C(11)*Q(0)*Q(3)
233
 
     $   +C(12)*Q(1)*Q(3)+C(13)*Q(2)*Q(3)+C(14)*Q(3)*Q(3)
 
272
     $   *Q(2)+C(9)*Q(1)*Q(2)+C(10)*Q(2)*Q(2)+C(11)*Q(0)*Q(3)+C(12)
 
273
     $   *Q(1)*Q(3)+C(13)*Q(2)*Q(3)+C(14)*Q(3)*Q(3)
234
274
      ENDIF
235
275
      END
236
276
 
237
277
      SUBROUTINE ML5_0_ADD_COEFS(A,RA,B,RB)
238
 
      INCLUDE 'coef_specs.inc'
 
278
      USE ML5_0_POLYNOMIAL_CONSTANTS
239
279
      INTEGER I
240
 
      COMPLEX*16 A(0:LOOP_MAXCOEFS-1),B(0:LOOP_MAXCOEFS-1)
 
280
      COMPLEX*16 A(0:LOOPMAXCOEFS-1),B(0:LOOPMAXCOEFS-1)
241
281
      INTEGER RA,RB
242
282
 
243
 
      INTEGER NCOEF_R(0:2)
244
 
      DATA NCOEF_R/1,5,15/
245
 
 
246
283
      DO I=0,NCOEF_R(RB)-1
247
284
        A(I)=A(I)+B(I)
248
285
      ENDDO
249
286
      END
250
287
 
251
288
      SUBROUTINE MP_ML5_0_ADD_COEFS(A,RA,B,RB)
252
 
      INCLUDE 'coef_specs.inc'
 
289
      USE ML5_0_POLYNOMIAL_CONSTANTS
253
290
      INTEGER I
254
 
      COMPLEX*32 A(0:LOOP_MAXCOEFS-1),B(0:LOOP_MAXCOEFS-1)
 
291
      COMPLEX*32 A(0:LOOPMAXCOEFS-1),B(0:LOOPMAXCOEFS-1)
255
292
      INTEGER RA,RB
256
293
 
257
 
      INTEGER NCOEF_R(0:2)
258
 
      DATA NCOEF_R/1,5,15/
259
 
 
260
294
      DO I=0,NCOEF_R(RB)-1
261
295
        A(I)=A(I)+B(I)
262
296
      ENDDO
263
297
      END
264
298
 
265
299
      SUBROUTINE ML5_0_MERGE_WL(WL,R,LCUT_SIZE,CONST,OUT)
266
 
      INCLUDE 'coef_specs.inc'
 
300
      USE ML5_0_POLYNOMIAL_CONSTANTS
267
301
      INTEGER I,J
268
 
      COMPLEX*16 WL(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
302
      COMPLEX*16 WL(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
269
303
      INTEGER R,LCUT_SIZE
270
304
      COMPLEX*16 CONST
271
 
      COMPLEX*16 OUT(0:LOOP_MAXCOEFS-1)
272
 
 
273
 
      INTEGER NCOEF_R(0:2)
274
 
      DATA NCOEF_R/1,5,15/
 
305
      COMPLEX*16 OUT(0:LOOPMAXCOEFS-1)
275
306
 
276
307
      DO I=1,LCUT_SIZE
277
308
        DO J=0,NCOEF_R(R)-1
281
312
      END
282
313
 
283
314
      SUBROUTINE MP_ML5_0_MERGE_WL(WL,R,LCUT_SIZE,CONST,OUT)
284
 
      INCLUDE 'coef_specs.inc'
 
315
      USE ML5_0_POLYNOMIAL_CONSTANTS
285
316
      INTEGER I,J
286
 
      COMPLEX*32 WL(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
317
      COMPLEX*32 WL(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
287
318
      INTEGER R,LCUT_SIZE
288
319
      COMPLEX*32 CONST
289
 
      COMPLEX*32 OUT(0:LOOP_MAXCOEFS-1)
290
 
 
291
 
      INTEGER NCOEF_R(0:2)
292
 
      DATA NCOEF_R/1,5,15/
 
320
      COMPLEX*32 OUT(0:LOOPMAXCOEFS-1)
293
321
 
294
322
      DO I=1,LCUT_SIZE
295
323
        DO J=0,NCOEF_R(R)-1
300
328
 
301
329
      SUBROUTINE ML5_0_UPDATE_WL_0_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
302
330
     $ ,OUT)
303
 
      INCLUDE 'coef_specs.inc'
 
331
      USE ML5_0_POLYNOMIAL_CONSTANTS
304
332
      INTEGER I,J,K
305
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
333
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
306
334
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
307
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
335
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
308
336
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
309
337
 
310
338
      DO I=1,LCUT_SIZE
325
353
 
326
354
      SUBROUTINE MP_ML5_0_UPDATE_WL_0_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
327
355
     $ ,OUT)
328
 
      INCLUDE 'coef_specs.inc'
 
356
      USE ML5_0_POLYNOMIAL_CONSTANTS
329
357
      INTEGER I,J,K
330
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
358
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
331
359
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
332
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
360
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
333
361
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
334
362
 
335
363
      DO I=1,LCUT_SIZE
350
378
 
351
379
      SUBROUTINE ML5_0_UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
352
380
     $ ,OUT)
353
 
      INCLUDE 'coef_specs.inc'
 
381
      USE ML5_0_POLYNOMIAL_CONSTANTS
354
382
      INTEGER I,J,K
355
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
383
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
356
384
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
357
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
385
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
358
386
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
359
387
 
360
388
      DO I=1,LCUT_SIZE
385
413
 
386
414
      SUBROUTINE MP_ML5_0_UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
387
415
     $ ,OUT)
388
 
      INCLUDE 'coef_specs.inc'
 
416
      USE ML5_0_POLYNOMIAL_CONSTANTS
389
417
      INTEGER I,J,K
390
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
418
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
391
419
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
392
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
420
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
393
421
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
394
422
 
395
423
      DO I=1,LCUT_SIZE
420
448
 
421
449
      SUBROUTINE ML5_0_UPDATE_WL_1_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
422
450
     $ ,OUT)
423
 
      INCLUDE 'coef_specs.inc'
 
451
      USE ML5_0_POLYNOMIAL_CONSTANTS
424
452
      INTEGER I,J,K
425
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
453
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
426
454
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
427
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
455
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
428
456
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
429
457
 
430
458
      DO I=1,LCUT_SIZE
445
473
 
446
474
      SUBROUTINE MP_ML5_0_UPDATE_WL_1_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
447
475
     $ ,OUT)
448
 
      INCLUDE 'coef_specs.inc'
 
476
      USE ML5_0_POLYNOMIAL_CONSTANTS
449
477
      INTEGER I,J,K
450
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
478
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
451
479
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
452
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
480
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
453
481
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
454
482
 
455
483
      DO I=1,LCUT_SIZE
470
498
 
471
499
      SUBROUTINE ML5_0_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
472
500
     $ ,OUT)
473
 
      INCLUDE 'coef_specs.inc'
 
501
      USE ML5_0_POLYNOMIAL_CONSTANTS
474
502
      INTEGER I,J,K
475
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
503
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
476
504
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
477
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
505
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
478
506
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
479
507
 
480
508
      DO I=1,LCUT_SIZE
491
519
 
492
520
      SUBROUTINE MP_ML5_0_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
493
521
     $ ,OUT)
494
 
      INCLUDE 'coef_specs.inc'
 
522
      USE ML5_0_POLYNOMIAL_CONSTANTS
495
523
      INTEGER I,J,K
496
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
524
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
497
525
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
498
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
526
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
499
527
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
500
528
 
501
529
      DO I=1,LCUT_SIZE
512
540
 
513
541
      SUBROUTINE ML5_0_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
514
542
     $ ,OUT)
515
 
      INCLUDE 'coef_specs.inc'
 
543
      USE ML5_0_POLYNOMIAL_CONSTANTS
516
544
      INTEGER I,J,K
517
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
545
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
518
546
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
519
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
547
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
520
548
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
521
549
 
522
550
      DO I=1,LCUT_SIZE
547
575
 
548
576
      SUBROUTINE MP_ML5_0_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
549
577
     $ ,OUT)
550
 
      INCLUDE 'coef_specs.inc'
 
578
      USE ML5_0_POLYNOMIAL_CONSTANTS
551
579
      INTEGER I,J,K
552
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
580
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
553
581
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
554
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
 
582
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
555
583
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
556
584
 
557
585
      DO I=1,LCUT_SIZE