~maddevelopers/mg5amcnlo/2.5.3

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.f

  • Committer: olivier-mattelaer
  • Date: 2017-03-08 12:31:17 UTC
  • Revision ID: olivier-mattelaer-20170308123117-h0zkqjyh9sihsc61
empty version to have an effective freeze of the code

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
2
 
c      written by the UFO converter
3
 
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
4
 
 
5
 
      DOUBLE COMPLEX FUNCTION COND(CONDITION,TRUECASE,FALSECASE)
6
 
      IMPLICIT NONE
7
 
      DOUBLE COMPLEX CONDITION,TRUECASE,FALSECASE
8
 
      IF(CONDITION.EQ.(0.0D0,0.0D0)) THEN
9
 
        COND=TRUECASE
10
 
      ELSE
11
 
        COND=FALSECASE
12
 
      ENDIF
13
 
      END
14
 
 
15
 
      DOUBLE COMPLEX FUNCTION CONDIF(CONDITION,TRUECASE,FALSECASE)
16
 
      IMPLICIT NONE
17
 
      LOGICAL CONDITION
18
 
      DOUBLE COMPLEX TRUECASE,FALSECASE
19
 
      IF(CONDITION) THEN
20
 
        CONDIF=TRUECASE
21
 
      ELSE
22
 
        CONDIF=FALSECASE
23
 
      ENDIF
24
 
      END
25
 
 
26
 
      DOUBLE COMPLEX FUNCTION RECMS(CONDITION,EXPR)
27
 
      IMPLICIT NONE
28
 
      LOGICAL CONDITION
29
 
      DOUBLE COMPLEX EXPR
30
 
      IF(CONDITION)THEN
31
 
        RECMS=EXPR
32
 
      ELSE
33
 
        RECMS=DCMPLX(DBLE(EXPR))
34
 
      ENDIF
35
 
      END
36
 
 
37
 
      DOUBLE COMPLEX FUNCTION REGLOG(ARG)
38
 
      IMPLICIT NONE
39
 
      DOUBLE COMPLEX TWOPII
40
 
      PARAMETER (TWOPII=2.0D0*3.1415926535897932D0*(0.0D0,1.0D0))
41
 
      DOUBLE COMPLEX ARG
42
 
      IF(ARG.EQ.(0.0D0,0.0D0)) THEN
43
 
        REGLOG=(0.0D0,0.0D0)
44
 
      ELSE
45
 
        REGLOG=LOG(ARG)
46
 
      ENDIF
47
 
      END
48
 
 
49
 
      DOUBLE COMPLEX FUNCTION REGLOGP(ARG)
50
 
      IMPLICIT NONE
51
 
      DOUBLE COMPLEX TWOPII
52
 
      PARAMETER (TWOPII=2.0D0*3.1415926535897932D0*(0.0D0,1.0D0))
53
 
      DOUBLE COMPLEX ARG
54
 
      IF(ARG.EQ.(0.0D0,0.0D0))THEN
55
 
        REGLOGP=(0.0D0,0.0D0)
56
 
      ELSE
57
 
        IF(DBLE(ARG).LT.0.0D0.AND.DIMAG(ARG).LT.0.0D0)THEN
58
 
          REGLOGP=LOG(ARG) + TWOPII
59
 
        ELSE
60
 
          REGLOGP=LOG(ARG)
61
 
        ENDIF
62
 
      ENDIF
63
 
      END
64
 
 
65
 
      DOUBLE COMPLEX FUNCTION REGLOGM(ARG)
66
 
      IMPLICIT NONE
67
 
      DOUBLE COMPLEX TWOPII
68
 
      PARAMETER (TWOPII=2.0D0*3.1415926535897932D0*(0.0D0,1.0D0))
69
 
      DOUBLE COMPLEX ARG
70
 
      IF(ARG.EQ.(0.0D0,0.0D0))THEN
71
 
        REGLOGM=(0.0D0,0.0D0)
72
 
      ELSE
73
 
        IF(DBLE(ARG).LT.0.0D0.AND.DIMAG(ARG).GT.0.0D0)THEN
74
 
          REGLOGM=LOG(ARG) - TWOPII
75
 
        ELSE
76
 
          REGLOGM=LOG(ARG)
77
 
        ENDIF
78
 
      ENDIF
79
 
      END
80
 
 
81
 
      DOUBLE COMPLEX FUNCTION ARG(COMNUM)
82
 
      IMPLICIT NONE
83
 
      DOUBLE COMPLEX COMNUM
84
 
      DOUBLE COMPLEX IIM
85
 
      IIM = (0.0D0,1.0D0)
86
 
      IF(COMNUM.EQ.(0.0D0,0.0D0)) THEN
87
 
        ARG=(0.0D0,0.0D0)
88
 
      ELSE
89
 
        ARG=LOG(COMNUM/ABS(COMNUM))/IIM
90
 
      ENDIF
91
 
      END
92
 
 
93
 
 
94
 
      COMPLEX*32 FUNCTION MP_COND(CONDITION,TRUECASE,FALSECASE)
95
 
      IMPLICIT NONE
96
 
      COMPLEX*32 CONDITION,TRUECASE,FALSECASE
97
 
      IF(CONDITION.EQ.(0.0E0_16,0.0E0_16)) THEN
98
 
        MP_COND=TRUECASE
99
 
      ELSE
100
 
        MP_COND=FALSECASE
101
 
      ENDIF
102
 
      END
103
 
 
104
 
      COMPLEX*32 FUNCTION MP_CONDIF(CONDITION,TRUECASE,FALSECASE)
105
 
      IMPLICIT NONE
106
 
      LOGICAL CONDITION
107
 
      COMPLEX*32 TRUECASE,FALSECASE
108
 
      IF(CONDITION) THEN
109
 
        MP_CONDIF=TRUECASE
110
 
      ELSE
111
 
        MP_CONDIF=FALSECASE
112
 
      ENDIF
113
 
      END
114
 
 
115
 
      COMPLEX*32 FUNCTION MP_RECMS(CONDITION,EXPR)
116
 
      IMPLICIT NONE
117
 
      LOGICAL CONDITION
118
 
      COMPLEX*32 EXPR
119
 
      IF(CONDITION)THEN
120
 
        MP_RECMS=EXPR
121
 
      ELSE
122
 
        MP_RECMS=CMPLX(REAL(EXPR),KIND=16)
123
 
      ENDIF
124
 
      END
125
 
 
126
 
      COMPLEX*32 FUNCTION MP_REGLOG(ARG)
127
 
      IMPLICIT NONE
128
 
      COMPLEX*32 TWOPII
129
 
      PARAMETER (TWOPII=2.0E0_16*3.14169258478796109557151794433593750E
130
 
     $0_16*(0.0E0_16,1.0E0_16))
131
 
      COMPLEX*32 ARG
132
 
      IF(ARG.EQ.(0.0E0_16,0.0E0_16)) THEN
133
 
        MP_REGLOG=(0.0E0_16,0.0E0_16)
134
 
      ELSE
135
 
        MP_REGLOG=LOG(ARG)
136
 
      ENDIF
137
 
      END
138
 
 
139
 
      COMPLEX*32 FUNCTION MP_REGLOGP(ARG)
140
 
      IMPLICIT NONE
141
 
      COMPLEX*32 TWOPII
142
 
      PARAMETER (TWOPII=2.0E0_16*3.14169258478796109557151794433593750E
143
 
     $0_16*(0.0E0_16,1.0E0_16))
144
 
      COMPLEX*32 ARG
145
 
      IF(ARG.EQ.(0.0E0_16,0.0E0_16))THEN
146
 
        MP_REGLOGP=(0.0E0_16,0.0E0_16)
147
 
      ELSE
148
 
        IF(REAL(ARG,KIND=16).LT.0.0E0_16.AND.IMAGPART(ARG).LT.0.0E0_16)
149
 
     $   THEN
150
 
          MP_REGLOGP=LOG(ARG) + TWOPII
151
 
        ELSE
152
 
          MP_REGLOGP=LOG(ARG)
153
 
        ENDIF
154
 
      ENDIF
155
 
      END
156
 
 
157
 
      COMPLEX*32 FUNCTION MP_REGLOGM(ARG)
158
 
      IMPLICIT NONE
159
 
      COMPLEX*32 TWOPII
160
 
      PARAMETER (TWOPII=2.0E0_16*3.14169258478796109557151794433593750E
161
 
     $0_16*(0.0E0_16,1.0E0_16))
162
 
      COMPLEX*32 ARG
163
 
      IF(ARG.EQ.(0.0E0_16,0.0E0_16))THEN
164
 
        MP_REGLOGM=(0.0E0_16,0.0E0_16)
165
 
      ELSE
166
 
        IF(REAL(ARG,KIND=16).LT.0.0E0_16.AND.IMAGPART(ARG).GT.0.0E0_16)
167
 
     $   THEN
168
 
          MP_REGLOGM=LOG(ARG) - TWOPII
169
 
        ELSE
170
 
          MP_REGLOGM=LOG(ARG)
171
 
        ENDIF
172
 
      ENDIF
173
 
      END
174
 
 
175
 
      COMPLEX*32 FUNCTION MP_ARG(COMNUM)
176
 
      IMPLICIT NONE
177
 
      COMPLEX*32 COMNUM
178
 
      COMPLEX*32 IMM
179
 
      IMM = (0.0E0_16,1.0E0_16)
180
 
      IF(COMNUM.EQ.(0.0E0_16,0.0E0_16)) THEN
181
 
        MP_ARG=(0.0E0_16,0.0E0_16)
182
 
      ELSE
183
 
        MP_ARG=LOG(COMNUM/ABS(COMNUM))/IMM
184
 
      ENDIF
185
 
      END