~maddevelopers/mg5amcnlo/3.3.0

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/polynomial.f

  • Committer: olivier-mattelaer
  • Date: 2021-11-08 09:11:22 UTC
  • Revision ID: olivier-mattelaer-20211108091122-a88ei0x7xo56j55o
update IOTest (now should be reproducible version to version)

Show diffs side-by-side

added added

removed removed

Lines of Context:
441
441
      ENDDO
442
442
      END
443
443
 
 
444
      SUBROUTINE ML5_0_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
445
     $ ,OUT)
 
446
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
447
      INTEGER I,J,K
 
448
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
449
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
450
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
451
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
452
 
 
453
      DO I=1,LCUT_SIZE
 
454
        DO J=1,OUT_SIZE
 
455
          DO K=0,0
 
456
            OUT(J,K,I)=(0.0D0,0.0D0)
 
457
          ENDDO
 
458
          DO K=1,IN_SIZE
 
459
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
460
          ENDDO
 
461
        ENDDO
 
462
      ENDDO
 
463
      END
 
464
 
 
465
      SUBROUTINE MP_ML5_0_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
466
     $ ,OUT)
 
467
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
468
      INTEGER I,J,K
 
469
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
470
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
471
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
472
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
473
 
 
474
      DO I=1,LCUT_SIZE
 
475
        DO J=1,OUT_SIZE
 
476
          DO K=0,0
 
477
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
 
478
          ENDDO
 
479
          DO K=1,IN_SIZE
 
480
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
481
          ENDDO
 
482
        ENDDO
 
483
      ENDDO
 
484
      END
 
485
 
444
486
      SUBROUTINE ML5_0_UPDATE_WL_0_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
445
487
     $ ,OUT)
446
488
      USE ML5_0_POLYNOMIAL_CONSTANTS
491
533
      ENDDO
492
534
      END
493
535
 
494
 
      SUBROUTINE ML5_0_UPDATE_WL_4_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
495
 
     $ ,OUT)
496
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
497
 
      INTEGER I,J,K
498
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
499
 
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
500
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
501
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
502
 
 
503
 
      DO I=1,LCUT_SIZE
504
 
        DO J=1,OUT_SIZE
505
 
          DO K=0,69
506
 
            OUT(J,K,I)=(0.0D0,0.0D0)
507
 
          ENDDO
508
 
          DO K=1,IN_SIZE
509
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
510
 
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
511
 
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
512
 
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
513
 
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
514
 
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
515
 
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
516
 
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
517
 
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
518
 
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
519
 
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
520
 
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
521
 
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
522
 
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
523
 
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
524
 
            OUT(J,15,I)=OUT(J,15,I)+A(K,15,I)*B(J,0,K)
525
 
            OUT(J,16,I)=OUT(J,16,I)+A(K,16,I)*B(J,0,K)
526
 
            OUT(J,17,I)=OUT(J,17,I)+A(K,17,I)*B(J,0,K)
527
 
            OUT(J,18,I)=OUT(J,18,I)+A(K,18,I)*B(J,0,K)
528
 
            OUT(J,19,I)=OUT(J,19,I)+A(K,19,I)*B(J,0,K)
529
 
            OUT(J,20,I)=OUT(J,20,I)+A(K,20,I)*B(J,0,K)
530
 
            OUT(J,21,I)=OUT(J,21,I)+A(K,21,I)*B(J,0,K)
531
 
            OUT(J,22,I)=OUT(J,22,I)+A(K,22,I)*B(J,0,K)
532
 
            OUT(J,23,I)=OUT(J,23,I)+A(K,23,I)*B(J,0,K)
533
 
            OUT(J,24,I)=OUT(J,24,I)+A(K,24,I)*B(J,0,K)
534
 
            OUT(J,25,I)=OUT(J,25,I)+A(K,25,I)*B(J,0,K)
535
 
            OUT(J,26,I)=OUT(J,26,I)+A(K,26,I)*B(J,0,K)
536
 
            OUT(J,27,I)=OUT(J,27,I)+A(K,27,I)*B(J,0,K)
537
 
            OUT(J,28,I)=OUT(J,28,I)+A(K,28,I)*B(J,0,K)
538
 
            OUT(J,29,I)=OUT(J,29,I)+A(K,29,I)*B(J,0,K)
539
 
            OUT(J,30,I)=OUT(J,30,I)+A(K,30,I)*B(J,0,K)
540
 
            OUT(J,31,I)=OUT(J,31,I)+A(K,31,I)*B(J,0,K)
541
 
            OUT(J,32,I)=OUT(J,32,I)+A(K,32,I)*B(J,0,K)
542
 
            OUT(J,33,I)=OUT(J,33,I)+A(K,33,I)*B(J,0,K)
543
 
            OUT(J,34,I)=OUT(J,34,I)+A(K,34,I)*B(J,0,K)
544
 
            OUT(J,35,I)=OUT(J,35,I)+A(K,35,I)*B(J,0,K)
545
 
            OUT(J,36,I)=OUT(J,36,I)+A(K,36,I)*B(J,0,K)
546
 
            OUT(J,37,I)=OUT(J,37,I)+A(K,37,I)*B(J,0,K)
547
 
            OUT(J,38,I)=OUT(J,38,I)+A(K,38,I)*B(J,0,K)
548
 
            OUT(J,39,I)=OUT(J,39,I)+A(K,39,I)*B(J,0,K)
549
 
            OUT(J,40,I)=OUT(J,40,I)+A(K,40,I)*B(J,0,K)
550
 
            OUT(J,41,I)=OUT(J,41,I)+A(K,41,I)*B(J,0,K)
551
 
            OUT(J,42,I)=OUT(J,42,I)+A(K,42,I)*B(J,0,K)
552
 
            OUT(J,43,I)=OUT(J,43,I)+A(K,43,I)*B(J,0,K)
553
 
            OUT(J,44,I)=OUT(J,44,I)+A(K,44,I)*B(J,0,K)
554
 
            OUT(J,45,I)=OUT(J,45,I)+A(K,45,I)*B(J,0,K)
555
 
            OUT(J,46,I)=OUT(J,46,I)+A(K,46,I)*B(J,0,K)
556
 
            OUT(J,47,I)=OUT(J,47,I)+A(K,47,I)*B(J,0,K)
557
 
            OUT(J,48,I)=OUT(J,48,I)+A(K,48,I)*B(J,0,K)
558
 
            OUT(J,49,I)=OUT(J,49,I)+A(K,49,I)*B(J,0,K)
559
 
            OUT(J,50,I)=OUT(J,50,I)+A(K,50,I)*B(J,0,K)
560
 
            OUT(J,51,I)=OUT(J,51,I)+A(K,51,I)*B(J,0,K)
561
 
            OUT(J,52,I)=OUT(J,52,I)+A(K,52,I)*B(J,0,K)
562
 
            OUT(J,53,I)=OUT(J,53,I)+A(K,53,I)*B(J,0,K)
563
 
            OUT(J,54,I)=OUT(J,54,I)+A(K,54,I)*B(J,0,K)
564
 
            OUT(J,55,I)=OUT(J,55,I)+A(K,55,I)*B(J,0,K)
565
 
            OUT(J,56,I)=OUT(J,56,I)+A(K,56,I)*B(J,0,K)
566
 
            OUT(J,57,I)=OUT(J,57,I)+A(K,57,I)*B(J,0,K)
567
 
            OUT(J,58,I)=OUT(J,58,I)+A(K,58,I)*B(J,0,K)
568
 
            OUT(J,59,I)=OUT(J,59,I)+A(K,59,I)*B(J,0,K)
569
 
            OUT(J,60,I)=OUT(J,60,I)+A(K,60,I)*B(J,0,K)
570
 
            OUT(J,61,I)=OUT(J,61,I)+A(K,61,I)*B(J,0,K)
571
 
            OUT(J,62,I)=OUT(J,62,I)+A(K,62,I)*B(J,0,K)
572
 
            OUT(J,63,I)=OUT(J,63,I)+A(K,63,I)*B(J,0,K)
573
 
            OUT(J,64,I)=OUT(J,64,I)+A(K,64,I)*B(J,0,K)
574
 
            OUT(J,65,I)=OUT(J,65,I)+A(K,65,I)*B(J,0,K)
575
 
            OUT(J,66,I)=OUT(J,66,I)+A(K,66,I)*B(J,0,K)
576
 
            OUT(J,67,I)=OUT(J,67,I)+A(K,67,I)*B(J,0,K)
577
 
            OUT(J,68,I)=OUT(J,68,I)+A(K,68,I)*B(J,0,K)
578
 
            OUT(J,69,I)=OUT(J,69,I)+A(K,69,I)*B(J,0,K)
579
 
          ENDDO
580
 
        ENDDO
581
 
      ENDDO
582
 
      END
583
 
 
584
 
      SUBROUTINE MP_ML5_0_UPDATE_WL_4_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
585
 
     $ ,OUT)
586
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
587
 
      INTEGER I,J,K
588
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
589
 
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
590
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
591
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
592
 
 
593
 
      DO I=1,LCUT_SIZE
594
 
        DO J=1,OUT_SIZE
595
 
          DO K=0,69
596
 
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
597
 
          ENDDO
598
 
          DO K=1,IN_SIZE
599
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
600
 
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
601
 
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
602
 
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
603
 
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
604
 
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
605
 
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
606
 
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
607
 
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
608
 
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
609
 
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
610
 
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
611
 
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
612
 
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
613
 
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
614
 
            OUT(J,15,I)=OUT(J,15,I)+A(K,15,I)*B(J,0,K)
615
 
            OUT(J,16,I)=OUT(J,16,I)+A(K,16,I)*B(J,0,K)
616
 
            OUT(J,17,I)=OUT(J,17,I)+A(K,17,I)*B(J,0,K)
617
 
            OUT(J,18,I)=OUT(J,18,I)+A(K,18,I)*B(J,0,K)
618
 
            OUT(J,19,I)=OUT(J,19,I)+A(K,19,I)*B(J,0,K)
619
 
            OUT(J,20,I)=OUT(J,20,I)+A(K,20,I)*B(J,0,K)
620
 
            OUT(J,21,I)=OUT(J,21,I)+A(K,21,I)*B(J,0,K)
621
 
            OUT(J,22,I)=OUT(J,22,I)+A(K,22,I)*B(J,0,K)
622
 
            OUT(J,23,I)=OUT(J,23,I)+A(K,23,I)*B(J,0,K)
623
 
            OUT(J,24,I)=OUT(J,24,I)+A(K,24,I)*B(J,0,K)
624
 
            OUT(J,25,I)=OUT(J,25,I)+A(K,25,I)*B(J,0,K)
625
 
            OUT(J,26,I)=OUT(J,26,I)+A(K,26,I)*B(J,0,K)
626
 
            OUT(J,27,I)=OUT(J,27,I)+A(K,27,I)*B(J,0,K)
627
 
            OUT(J,28,I)=OUT(J,28,I)+A(K,28,I)*B(J,0,K)
628
 
            OUT(J,29,I)=OUT(J,29,I)+A(K,29,I)*B(J,0,K)
629
 
            OUT(J,30,I)=OUT(J,30,I)+A(K,30,I)*B(J,0,K)
630
 
            OUT(J,31,I)=OUT(J,31,I)+A(K,31,I)*B(J,0,K)
631
 
            OUT(J,32,I)=OUT(J,32,I)+A(K,32,I)*B(J,0,K)
632
 
            OUT(J,33,I)=OUT(J,33,I)+A(K,33,I)*B(J,0,K)
633
 
            OUT(J,34,I)=OUT(J,34,I)+A(K,34,I)*B(J,0,K)
634
 
            OUT(J,35,I)=OUT(J,35,I)+A(K,35,I)*B(J,0,K)
635
 
            OUT(J,36,I)=OUT(J,36,I)+A(K,36,I)*B(J,0,K)
636
 
            OUT(J,37,I)=OUT(J,37,I)+A(K,37,I)*B(J,0,K)
637
 
            OUT(J,38,I)=OUT(J,38,I)+A(K,38,I)*B(J,0,K)
638
 
            OUT(J,39,I)=OUT(J,39,I)+A(K,39,I)*B(J,0,K)
639
 
            OUT(J,40,I)=OUT(J,40,I)+A(K,40,I)*B(J,0,K)
640
 
            OUT(J,41,I)=OUT(J,41,I)+A(K,41,I)*B(J,0,K)
641
 
            OUT(J,42,I)=OUT(J,42,I)+A(K,42,I)*B(J,0,K)
642
 
            OUT(J,43,I)=OUT(J,43,I)+A(K,43,I)*B(J,0,K)
643
 
            OUT(J,44,I)=OUT(J,44,I)+A(K,44,I)*B(J,0,K)
644
 
            OUT(J,45,I)=OUT(J,45,I)+A(K,45,I)*B(J,0,K)
645
 
            OUT(J,46,I)=OUT(J,46,I)+A(K,46,I)*B(J,0,K)
646
 
            OUT(J,47,I)=OUT(J,47,I)+A(K,47,I)*B(J,0,K)
647
 
            OUT(J,48,I)=OUT(J,48,I)+A(K,48,I)*B(J,0,K)
648
 
            OUT(J,49,I)=OUT(J,49,I)+A(K,49,I)*B(J,0,K)
649
 
            OUT(J,50,I)=OUT(J,50,I)+A(K,50,I)*B(J,0,K)
650
 
            OUT(J,51,I)=OUT(J,51,I)+A(K,51,I)*B(J,0,K)
651
 
            OUT(J,52,I)=OUT(J,52,I)+A(K,52,I)*B(J,0,K)
652
 
            OUT(J,53,I)=OUT(J,53,I)+A(K,53,I)*B(J,0,K)
653
 
            OUT(J,54,I)=OUT(J,54,I)+A(K,54,I)*B(J,0,K)
654
 
            OUT(J,55,I)=OUT(J,55,I)+A(K,55,I)*B(J,0,K)
655
 
            OUT(J,56,I)=OUT(J,56,I)+A(K,56,I)*B(J,0,K)
656
 
            OUT(J,57,I)=OUT(J,57,I)+A(K,57,I)*B(J,0,K)
657
 
            OUT(J,58,I)=OUT(J,58,I)+A(K,58,I)*B(J,0,K)
658
 
            OUT(J,59,I)=OUT(J,59,I)+A(K,59,I)*B(J,0,K)
659
 
            OUT(J,60,I)=OUT(J,60,I)+A(K,60,I)*B(J,0,K)
660
 
            OUT(J,61,I)=OUT(J,61,I)+A(K,61,I)*B(J,0,K)
661
 
            OUT(J,62,I)=OUT(J,62,I)+A(K,62,I)*B(J,0,K)
662
 
            OUT(J,63,I)=OUT(J,63,I)+A(K,63,I)*B(J,0,K)
663
 
            OUT(J,64,I)=OUT(J,64,I)+A(K,64,I)*B(J,0,K)
664
 
            OUT(J,65,I)=OUT(J,65,I)+A(K,65,I)*B(J,0,K)
665
 
            OUT(J,66,I)=OUT(J,66,I)+A(K,66,I)*B(J,0,K)
666
 
            OUT(J,67,I)=OUT(J,67,I)+A(K,67,I)*B(J,0,K)
667
 
            OUT(J,68,I)=OUT(J,68,I)+A(K,68,I)*B(J,0,K)
668
 
            OUT(J,69,I)=OUT(J,69,I)+A(K,69,I)*B(J,0,K)
669
 
          ENDDO
670
 
        ENDDO
671
 
      ENDDO
672
 
      END
673
 
 
674
 
      SUBROUTINE ML5_0_UPDATE_WL_2_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
675
 
     $ ,OUT)
676
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
677
 
      IMPLICIT NONE
678
 
      INTEGER I,J,K,L,M
679
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
680
 
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
681
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
682
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
683
 
      INTEGER NEW_POSITION
684
 
      COMPLEX*16 UPDATER_COEF
685
 
 
686
 
C     Welcome to the computational heart of MadLoop...
687
 
      OUT(:,:,:)=(0.0D0,0.0D0)
688
 
      DO J=1,OUT_SIZE
689
 
        DO M=0,4
690
 
          DO K=1,IN_SIZE
691
 
            UPDATER_COEF = B(J,M,K)
692
 
            IF (UPDATER_COEF.EQ.(0.0D0,0.0D0)) CYCLE
693
 
            DO L=0,14
694
 
              NEW_POSITION = COMB_COEF_POS(L,M)
695
 
              DO I=1,LCUT_SIZE
696
 
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
697
 
     $           *UPDATER_COEF
698
 
              ENDDO
699
 
            ENDDO
700
 
          ENDDO
701
 
        ENDDO
702
 
      ENDDO
703
 
 
704
 
      END
705
 
 
706
 
      SUBROUTINE MP_ML5_0_UPDATE_WL_2_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
707
 
     $ ,OUT)
708
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
709
 
      IMPLICIT NONE
710
 
      INTEGER I,J,K,L,M
711
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
712
 
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
713
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
714
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
715
 
      INTEGER NEW_POSITION
716
 
      COMPLEX*32 UPDATER_COEF
717
 
 
718
 
C     Welcome to the computational heart of MadLoop...
719
 
      OUT(:,:,:)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
720
 
      DO J=1,OUT_SIZE
721
 
        DO M=0,4
722
 
          DO K=1,IN_SIZE
723
 
            UPDATER_COEF = B(J,M,K)
724
 
            IF (UPDATER_COEF.EQ.CMPLX(0.0E0_16,0.0E0_16,KIND=16)) CYCLE
725
 
            DO L=0,14
726
 
              NEW_POSITION = COMB_COEF_POS(L,M)
727
 
              DO I=1,LCUT_SIZE
728
 
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
729
 
     $           *UPDATER_COEF
730
 
              ENDDO
731
 
            ENDDO
732
 
          ENDDO
733
 
        ENDDO
734
 
      ENDDO
735
 
 
736
 
      END
737
 
 
738
 
      SUBROUTINE ML5_0_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
739
 
     $ ,OUT)
740
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
741
 
      INTEGER I,J,K
742
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
743
 
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
744
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
745
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
746
 
 
747
 
      DO I=1,LCUT_SIZE
748
 
        DO J=1,OUT_SIZE
749
 
          DO K=0,0
750
 
            OUT(J,K,I)=(0.0D0,0.0D0)
751
 
          ENDDO
752
 
          DO K=1,IN_SIZE
753
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
754
 
          ENDDO
755
 
        ENDDO
756
 
      ENDDO
757
 
      END
758
 
 
759
 
      SUBROUTINE MP_ML5_0_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
760
 
     $ ,OUT)
761
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
762
 
      INTEGER I,J,K
763
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
764
 
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
765
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
766
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
767
 
 
768
 
      DO I=1,LCUT_SIZE
769
 
        DO J=1,OUT_SIZE
770
 
          DO K=0,0
771
 
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
772
 
          ENDDO
773
 
          DO K=1,IN_SIZE
774
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
775
 
          ENDDO
776
 
        ENDDO
777
 
      ENDDO
778
 
      END
779
 
 
780
 
      SUBROUTINE ML5_0_UPDATE_WL_3_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
781
 
     $ ,OUT)
782
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
783
 
      IMPLICIT NONE
784
 
      INTEGER I,J,K,L,M
785
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
786
 
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
787
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
788
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
789
 
      INTEGER NEW_POSITION
790
 
      COMPLEX*16 UPDATER_COEF
791
 
 
792
 
C     Welcome to the computational heart of MadLoop...
793
 
      OUT(:,:,:)=(0.0D0,0.0D0)
794
 
      DO J=1,OUT_SIZE
795
 
        DO M=0,4
796
 
          DO K=1,IN_SIZE
797
 
            UPDATER_COEF = B(J,M,K)
798
 
            IF (UPDATER_COEF.EQ.(0.0D0,0.0D0)) CYCLE
799
 
            DO L=0,34
800
 
              NEW_POSITION = COMB_COEF_POS(L,M)
801
 
              DO I=1,LCUT_SIZE
802
 
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
803
 
     $           *UPDATER_COEF
804
 
              ENDDO
805
 
            ENDDO
806
 
          ENDDO
807
 
        ENDDO
808
 
      ENDDO
809
 
 
810
 
      END
811
 
 
812
 
      SUBROUTINE MP_ML5_0_UPDATE_WL_3_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
813
 
     $ ,OUT)
814
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
815
 
      IMPLICIT NONE
816
 
      INTEGER I,J,K,L,M
817
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
818
 
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
819
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
820
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
821
 
      INTEGER NEW_POSITION
822
 
      COMPLEX*32 UPDATER_COEF
823
 
 
824
 
C     Welcome to the computational heart of MadLoop...
825
 
      OUT(:,:,:)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
826
 
      DO J=1,OUT_SIZE
827
 
        DO M=0,4
828
 
          DO K=1,IN_SIZE
829
 
            UPDATER_COEF = B(J,M,K)
830
 
            IF (UPDATER_COEF.EQ.CMPLX(0.0E0_16,0.0E0_16,KIND=16)) CYCLE
831
 
            DO L=0,34
832
 
              NEW_POSITION = COMB_COEF_POS(L,M)
833
 
              DO I=1,LCUT_SIZE
834
 
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
835
 
     $           *UPDATER_COEF
836
 
              ENDDO
837
 
            ENDDO
838
 
          ENDDO
839
 
        ENDDO
840
 
      ENDDO
841
 
 
842
 
      END
843
 
 
844
536
      SUBROUTINE ML5_0_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
845
537
     $ ,OUT)
846
538
      USE ML5_0_POLYNOMIAL_CONSTANTS
981
673
      ENDDO
982
674
      END
983
675
 
 
676
      SUBROUTINE ML5_0_UPDATE_WL_1_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
677
     $ ,OUT)
 
678
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
679
      INTEGER I,J,K
 
680
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
681
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
682
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
683
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
684
 
 
685
      DO I=1,LCUT_SIZE
 
686
        DO J=1,OUT_SIZE
 
687
          DO K=0,4
 
688
            OUT(J,K,I)=(0.0D0,0.0D0)
 
689
          ENDDO
 
690
          DO K=1,IN_SIZE
 
691
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
692
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
 
693
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
 
694
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
 
695
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
 
696
          ENDDO
 
697
        ENDDO
 
698
      ENDDO
 
699
      END
 
700
 
 
701
      SUBROUTINE MP_ML5_0_UPDATE_WL_1_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
702
     $ ,OUT)
 
703
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
704
      INTEGER I,J,K
 
705
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
706
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
707
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
708
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
709
 
 
710
      DO I=1,LCUT_SIZE
 
711
        DO J=1,OUT_SIZE
 
712
          DO K=0,4
 
713
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
 
714
          ENDDO
 
715
          DO K=1,IN_SIZE
 
716
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
717
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
 
718
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
 
719
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
 
720
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
 
721
          ENDDO
 
722
        ENDDO
 
723
      ENDDO
 
724
      END
 
725
 
 
726
      SUBROUTINE ML5_0_UPDATE_WL_2_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
727
     $ ,OUT)
 
728
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
729
      IMPLICIT NONE
 
730
      INTEGER I,J,K,L,M
 
731
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
732
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
733
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
734
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
735
      INTEGER NEW_POSITION
 
736
      COMPLEX*16 UPDATER_COEF
 
737
 
 
738
C     Welcome to the computational heart of MadLoop...
 
739
      OUT(:,:,:)=(0.0D0,0.0D0)
 
740
      DO J=1,OUT_SIZE
 
741
        DO M=0,4
 
742
          DO K=1,IN_SIZE
 
743
            UPDATER_COEF = B(J,M,K)
 
744
            IF (UPDATER_COEF.EQ.(0.0D0,0.0D0)) CYCLE
 
745
            DO L=0,14
 
746
              NEW_POSITION = COMB_COEF_POS(L,M)
 
747
              DO I=1,LCUT_SIZE
 
748
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
 
749
     $           *UPDATER_COEF
 
750
              ENDDO
 
751
            ENDDO
 
752
          ENDDO
 
753
        ENDDO
 
754
      ENDDO
 
755
 
 
756
      END
 
757
 
 
758
      SUBROUTINE MP_ML5_0_UPDATE_WL_2_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
759
     $ ,OUT)
 
760
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
761
      IMPLICIT NONE
 
762
      INTEGER I,J,K,L,M
 
763
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
764
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
765
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
766
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
767
      INTEGER NEW_POSITION
 
768
      COMPLEX*32 UPDATER_COEF
 
769
 
 
770
C     Welcome to the computational heart of MadLoop...
 
771
      OUT(:,:,:)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
 
772
      DO J=1,OUT_SIZE
 
773
        DO M=0,4
 
774
          DO K=1,IN_SIZE
 
775
            UPDATER_COEF = B(J,M,K)
 
776
            IF (UPDATER_COEF.EQ.CMPLX(0.0E0_16,0.0E0_16,KIND=16)) CYCLE
 
777
            DO L=0,14
 
778
              NEW_POSITION = COMB_COEF_POS(L,M)
 
779
              DO I=1,LCUT_SIZE
 
780
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
 
781
     $           *UPDATER_COEF
 
782
              ENDDO
 
783
            ENDDO
 
784
          ENDDO
 
785
        ENDDO
 
786
      ENDDO
 
787
 
 
788
      END
 
789
 
984
790
      SUBROUTINE ML5_0_UPDATE_WL_3_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
985
791
     $ ,OUT)
986
792
      USE ML5_0_POLYNOMIAL_CONSTANTS
1091
897
      ENDDO
1092
898
      END
1093
899
 
1094
 
      SUBROUTINE ML5_0_UPDATE_WL_1_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
900
      SUBROUTINE ML5_0_UPDATE_WL_3_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
901
     $ ,OUT)
 
902
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
903
      IMPLICIT NONE
 
904
      INTEGER I,J,K,L,M
 
905
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
906
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
907
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
908
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
909
      INTEGER NEW_POSITION
 
910
      COMPLEX*16 UPDATER_COEF
 
911
 
 
912
C     Welcome to the computational heart of MadLoop...
 
913
      OUT(:,:,:)=(0.0D0,0.0D0)
 
914
      DO J=1,OUT_SIZE
 
915
        DO M=0,4
 
916
          DO K=1,IN_SIZE
 
917
            UPDATER_COEF = B(J,M,K)
 
918
            IF (UPDATER_COEF.EQ.(0.0D0,0.0D0)) CYCLE
 
919
            DO L=0,34
 
920
              NEW_POSITION = COMB_COEF_POS(L,M)
 
921
              DO I=1,LCUT_SIZE
 
922
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
 
923
     $           *UPDATER_COEF
 
924
              ENDDO
 
925
            ENDDO
 
926
          ENDDO
 
927
        ENDDO
 
928
      ENDDO
 
929
 
 
930
      END
 
931
 
 
932
      SUBROUTINE MP_ML5_0_UPDATE_WL_3_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
933
     $ ,OUT)
 
934
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
935
      IMPLICIT NONE
 
936
      INTEGER I,J,K,L,M
 
937
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
938
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
939
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
940
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
941
      INTEGER NEW_POSITION
 
942
      COMPLEX*32 UPDATER_COEF
 
943
 
 
944
C     Welcome to the computational heart of MadLoop...
 
945
      OUT(:,:,:)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
 
946
      DO J=1,OUT_SIZE
 
947
        DO M=0,4
 
948
          DO K=1,IN_SIZE
 
949
            UPDATER_COEF = B(J,M,K)
 
950
            IF (UPDATER_COEF.EQ.CMPLX(0.0E0_16,0.0E0_16,KIND=16)) CYCLE
 
951
            DO L=0,34
 
952
              NEW_POSITION = COMB_COEF_POS(L,M)
 
953
              DO I=1,LCUT_SIZE
 
954
                OUT(J,NEW_POSITION,I)=OUT(J,NEW_POSITION,I) + A(K,L,I)
 
955
     $           *UPDATER_COEF
 
956
              ENDDO
 
957
            ENDDO
 
958
          ENDDO
 
959
        ENDDO
 
960
      ENDDO
 
961
 
 
962
      END
 
963
 
 
964
      SUBROUTINE ML5_0_UPDATE_WL_4_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
1095
965
     $ ,OUT)
1096
966
      USE ML5_0_POLYNOMIAL_CONSTANTS
1097
967
      INTEGER I,J,K
1102
972
 
1103
973
      DO I=1,LCUT_SIZE
1104
974
        DO J=1,OUT_SIZE
1105
 
          DO K=0,4
 
975
          DO K=0,69
1106
976
            OUT(J,K,I)=(0.0D0,0.0D0)
1107
977
          ENDDO
1108
978
          DO K=1,IN_SIZE
1111
981
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
1112
982
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
1113
983
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
 
984
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
 
985
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
 
986
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
 
987
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
 
988
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
 
989
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
 
990
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
 
991
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
 
992
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
 
993
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
 
994
            OUT(J,15,I)=OUT(J,15,I)+A(K,15,I)*B(J,0,K)
 
995
            OUT(J,16,I)=OUT(J,16,I)+A(K,16,I)*B(J,0,K)
 
996
            OUT(J,17,I)=OUT(J,17,I)+A(K,17,I)*B(J,0,K)
 
997
            OUT(J,18,I)=OUT(J,18,I)+A(K,18,I)*B(J,0,K)
 
998
            OUT(J,19,I)=OUT(J,19,I)+A(K,19,I)*B(J,0,K)
 
999
            OUT(J,20,I)=OUT(J,20,I)+A(K,20,I)*B(J,0,K)
 
1000
            OUT(J,21,I)=OUT(J,21,I)+A(K,21,I)*B(J,0,K)
 
1001
            OUT(J,22,I)=OUT(J,22,I)+A(K,22,I)*B(J,0,K)
 
1002
            OUT(J,23,I)=OUT(J,23,I)+A(K,23,I)*B(J,0,K)
 
1003
            OUT(J,24,I)=OUT(J,24,I)+A(K,24,I)*B(J,0,K)
 
1004
            OUT(J,25,I)=OUT(J,25,I)+A(K,25,I)*B(J,0,K)
 
1005
            OUT(J,26,I)=OUT(J,26,I)+A(K,26,I)*B(J,0,K)
 
1006
            OUT(J,27,I)=OUT(J,27,I)+A(K,27,I)*B(J,0,K)
 
1007
            OUT(J,28,I)=OUT(J,28,I)+A(K,28,I)*B(J,0,K)
 
1008
            OUT(J,29,I)=OUT(J,29,I)+A(K,29,I)*B(J,0,K)
 
1009
            OUT(J,30,I)=OUT(J,30,I)+A(K,30,I)*B(J,0,K)
 
1010
            OUT(J,31,I)=OUT(J,31,I)+A(K,31,I)*B(J,0,K)
 
1011
            OUT(J,32,I)=OUT(J,32,I)+A(K,32,I)*B(J,0,K)
 
1012
            OUT(J,33,I)=OUT(J,33,I)+A(K,33,I)*B(J,0,K)
 
1013
            OUT(J,34,I)=OUT(J,34,I)+A(K,34,I)*B(J,0,K)
 
1014
            OUT(J,35,I)=OUT(J,35,I)+A(K,35,I)*B(J,0,K)
 
1015
            OUT(J,36,I)=OUT(J,36,I)+A(K,36,I)*B(J,0,K)
 
1016
            OUT(J,37,I)=OUT(J,37,I)+A(K,37,I)*B(J,0,K)
 
1017
            OUT(J,38,I)=OUT(J,38,I)+A(K,38,I)*B(J,0,K)
 
1018
            OUT(J,39,I)=OUT(J,39,I)+A(K,39,I)*B(J,0,K)
 
1019
            OUT(J,40,I)=OUT(J,40,I)+A(K,40,I)*B(J,0,K)
 
1020
            OUT(J,41,I)=OUT(J,41,I)+A(K,41,I)*B(J,0,K)
 
1021
            OUT(J,42,I)=OUT(J,42,I)+A(K,42,I)*B(J,0,K)
 
1022
            OUT(J,43,I)=OUT(J,43,I)+A(K,43,I)*B(J,0,K)
 
1023
            OUT(J,44,I)=OUT(J,44,I)+A(K,44,I)*B(J,0,K)
 
1024
            OUT(J,45,I)=OUT(J,45,I)+A(K,45,I)*B(J,0,K)
 
1025
            OUT(J,46,I)=OUT(J,46,I)+A(K,46,I)*B(J,0,K)
 
1026
            OUT(J,47,I)=OUT(J,47,I)+A(K,47,I)*B(J,0,K)
 
1027
            OUT(J,48,I)=OUT(J,48,I)+A(K,48,I)*B(J,0,K)
 
1028
            OUT(J,49,I)=OUT(J,49,I)+A(K,49,I)*B(J,0,K)
 
1029
            OUT(J,50,I)=OUT(J,50,I)+A(K,50,I)*B(J,0,K)
 
1030
            OUT(J,51,I)=OUT(J,51,I)+A(K,51,I)*B(J,0,K)
 
1031
            OUT(J,52,I)=OUT(J,52,I)+A(K,52,I)*B(J,0,K)
 
1032
            OUT(J,53,I)=OUT(J,53,I)+A(K,53,I)*B(J,0,K)
 
1033
            OUT(J,54,I)=OUT(J,54,I)+A(K,54,I)*B(J,0,K)
 
1034
            OUT(J,55,I)=OUT(J,55,I)+A(K,55,I)*B(J,0,K)
 
1035
            OUT(J,56,I)=OUT(J,56,I)+A(K,56,I)*B(J,0,K)
 
1036
            OUT(J,57,I)=OUT(J,57,I)+A(K,57,I)*B(J,0,K)
 
1037
            OUT(J,58,I)=OUT(J,58,I)+A(K,58,I)*B(J,0,K)
 
1038
            OUT(J,59,I)=OUT(J,59,I)+A(K,59,I)*B(J,0,K)
 
1039
            OUT(J,60,I)=OUT(J,60,I)+A(K,60,I)*B(J,0,K)
 
1040
            OUT(J,61,I)=OUT(J,61,I)+A(K,61,I)*B(J,0,K)
 
1041
            OUT(J,62,I)=OUT(J,62,I)+A(K,62,I)*B(J,0,K)
 
1042
            OUT(J,63,I)=OUT(J,63,I)+A(K,63,I)*B(J,0,K)
 
1043
            OUT(J,64,I)=OUT(J,64,I)+A(K,64,I)*B(J,0,K)
 
1044
            OUT(J,65,I)=OUT(J,65,I)+A(K,65,I)*B(J,0,K)
 
1045
            OUT(J,66,I)=OUT(J,66,I)+A(K,66,I)*B(J,0,K)
 
1046
            OUT(J,67,I)=OUT(J,67,I)+A(K,67,I)*B(J,0,K)
 
1047
            OUT(J,68,I)=OUT(J,68,I)+A(K,68,I)*B(J,0,K)
 
1048
            OUT(J,69,I)=OUT(J,69,I)+A(K,69,I)*B(J,0,K)
1114
1049
          ENDDO
1115
1050
        ENDDO
1116
1051
      ENDDO
1117
1052
      END
1118
1053
 
1119
 
      SUBROUTINE MP_ML5_0_UPDATE_WL_1_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
1054
      SUBROUTINE MP_ML5_0_UPDATE_WL_4_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
1120
1055
     $ ,OUT)
1121
1056
      USE ML5_0_POLYNOMIAL_CONSTANTS
1122
1057
      INTEGER I,J,K
1127
1062
 
1128
1063
      DO I=1,LCUT_SIZE
1129
1064
        DO J=1,OUT_SIZE
1130
 
          DO K=0,4
 
1065
          DO K=0,69
1131
1066
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
1132
1067
          ENDDO
1133
1068
          DO K=1,IN_SIZE
1136
1071
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
1137
1072
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
1138
1073
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
 
1074
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
 
1075
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
 
1076
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
 
1077
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
 
1078
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
 
1079
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
 
1080
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
 
1081
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
 
1082
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
 
1083
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
 
1084
            OUT(J,15,I)=OUT(J,15,I)+A(K,15,I)*B(J,0,K)
 
1085
            OUT(J,16,I)=OUT(J,16,I)+A(K,16,I)*B(J,0,K)
 
1086
            OUT(J,17,I)=OUT(J,17,I)+A(K,17,I)*B(J,0,K)
 
1087
            OUT(J,18,I)=OUT(J,18,I)+A(K,18,I)*B(J,0,K)
 
1088
            OUT(J,19,I)=OUT(J,19,I)+A(K,19,I)*B(J,0,K)
 
1089
            OUT(J,20,I)=OUT(J,20,I)+A(K,20,I)*B(J,0,K)
 
1090
            OUT(J,21,I)=OUT(J,21,I)+A(K,21,I)*B(J,0,K)
 
1091
            OUT(J,22,I)=OUT(J,22,I)+A(K,22,I)*B(J,0,K)
 
1092
            OUT(J,23,I)=OUT(J,23,I)+A(K,23,I)*B(J,0,K)
 
1093
            OUT(J,24,I)=OUT(J,24,I)+A(K,24,I)*B(J,0,K)
 
1094
            OUT(J,25,I)=OUT(J,25,I)+A(K,25,I)*B(J,0,K)
 
1095
            OUT(J,26,I)=OUT(J,26,I)+A(K,26,I)*B(J,0,K)
 
1096
            OUT(J,27,I)=OUT(J,27,I)+A(K,27,I)*B(J,0,K)
 
1097
            OUT(J,28,I)=OUT(J,28,I)+A(K,28,I)*B(J,0,K)
 
1098
            OUT(J,29,I)=OUT(J,29,I)+A(K,29,I)*B(J,0,K)
 
1099
            OUT(J,30,I)=OUT(J,30,I)+A(K,30,I)*B(J,0,K)
 
1100
            OUT(J,31,I)=OUT(J,31,I)+A(K,31,I)*B(J,0,K)
 
1101
            OUT(J,32,I)=OUT(J,32,I)+A(K,32,I)*B(J,0,K)
 
1102
            OUT(J,33,I)=OUT(J,33,I)+A(K,33,I)*B(J,0,K)
 
1103
            OUT(J,34,I)=OUT(J,34,I)+A(K,34,I)*B(J,0,K)
 
1104
            OUT(J,35,I)=OUT(J,35,I)+A(K,35,I)*B(J,0,K)
 
1105
            OUT(J,36,I)=OUT(J,36,I)+A(K,36,I)*B(J,0,K)
 
1106
            OUT(J,37,I)=OUT(J,37,I)+A(K,37,I)*B(J,0,K)
 
1107
            OUT(J,38,I)=OUT(J,38,I)+A(K,38,I)*B(J,0,K)
 
1108
            OUT(J,39,I)=OUT(J,39,I)+A(K,39,I)*B(J,0,K)
 
1109
            OUT(J,40,I)=OUT(J,40,I)+A(K,40,I)*B(J,0,K)
 
1110
            OUT(J,41,I)=OUT(J,41,I)+A(K,41,I)*B(J,0,K)
 
1111
            OUT(J,42,I)=OUT(J,42,I)+A(K,42,I)*B(J,0,K)
 
1112
            OUT(J,43,I)=OUT(J,43,I)+A(K,43,I)*B(J,0,K)
 
1113
            OUT(J,44,I)=OUT(J,44,I)+A(K,44,I)*B(J,0,K)
 
1114
            OUT(J,45,I)=OUT(J,45,I)+A(K,45,I)*B(J,0,K)
 
1115
            OUT(J,46,I)=OUT(J,46,I)+A(K,46,I)*B(J,0,K)
 
1116
            OUT(J,47,I)=OUT(J,47,I)+A(K,47,I)*B(J,0,K)
 
1117
            OUT(J,48,I)=OUT(J,48,I)+A(K,48,I)*B(J,0,K)
 
1118
            OUT(J,49,I)=OUT(J,49,I)+A(K,49,I)*B(J,0,K)
 
1119
            OUT(J,50,I)=OUT(J,50,I)+A(K,50,I)*B(J,0,K)
 
1120
            OUT(J,51,I)=OUT(J,51,I)+A(K,51,I)*B(J,0,K)
 
1121
            OUT(J,52,I)=OUT(J,52,I)+A(K,52,I)*B(J,0,K)
 
1122
            OUT(J,53,I)=OUT(J,53,I)+A(K,53,I)*B(J,0,K)
 
1123
            OUT(J,54,I)=OUT(J,54,I)+A(K,54,I)*B(J,0,K)
 
1124
            OUT(J,55,I)=OUT(J,55,I)+A(K,55,I)*B(J,0,K)
 
1125
            OUT(J,56,I)=OUT(J,56,I)+A(K,56,I)*B(J,0,K)
 
1126
            OUT(J,57,I)=OUT(J,57,I)+A(K,57,I)*B(J,0,K)
 
1127
            OUT(J,58,I)=OUT(J,58,I)+A(K,58,I)*B(J,0,K)
 
1128
            OUT(J,59,I)=OUT(J,59,I)+A(K,59,I)*B(J,0,K)
 
1129
            OUT(J,60,I)=OUT(J,60,I)+A(K,60,I)*B(J,0,K)
 
1130
            OUT(J,61,I)=OUT(J,61,I)+A(K,61,I)*B(J,0,K)
 
1131
            OUT(J,62,I)=OUT(J,62,I)+A(K,62,I)*B(J,0,K)
 
1132
            OUT(J,63,I)=OUT(J,63,I)+A(K,63,I)*B(J,0,K)
 
1133
            OUT(J,64,I)=OUT(J,64,I)+A(K,64,I)*B(J,0,K)
 
1134
            OUT(J,65,I)=OUT(J,65,I)+A(K,65,I)*B(J,0,K)
 
1135
            OUT(J,66,I)=OUT(J,66,I)+A(K,66,I)*B(J,0,K)
 
1136
            OUT(J,67,I)=OUT(J,67,I)+A(K,67,I)*B(J,0,K)
 
1137
            OUT(J,68,I)=OUT(J,68,I)+A(K,68,I)*B(J,0,K)
 
1138
            OUT(J,69,I)=OUT(J,69,I)+A(K,69,I)*B(J,0,K)
1139
1139
          ENDDO
1140
1140
        ENDDO
1141
1141
      ENDDO