herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Looptools
include
clooptools.h
1
/* -*- C++ -*-
2
clooptools.h
3
the C/C++ header file with all definitions for LoopTools
4
this file is part of LoopTools
5
last modified 2 Sep 14 th
6
dgrell 2011-01-21 for Herwig: moved definitions and extern declarations to our clooptools.cc
7
dgrell 2016-09-08 for Herwig: update to Looptols-2.13
8
*/
9
10
11
#ifndef HERWIG_clooptools_h_
12
#define HERWIG_clooptools_h_
13
14
#include <complex>
15
16
/****************************************************************/
17
18
// Adapted version of ftypes.h
19
20
21
typedef
double
RealType;
22
typedef
double
REAL;
23
24
typedef
int
INTEGER;
25
typedef
const
REAL CREAL;
26
27
struct
COMPLEX
{ REAL re, im; };
28
typedef
const
COMPLEX
CCOMPLEX
;
29
30
typedef
std::complex<RealType> ComplexType;
31
32
typedef
const
RealType cRealType;
33
typedef
const
ComplexType cComplexType;
34
35
//#define cachelookup_ ljcachelookup_
36
37
// typedef const COMPLEX CCOMPLEX;
38
39
typedef
long
long
int
memindex;
40
41
/****************************************************************/
42
43
#define AARGS(t) t(m)
44
45
#define BARGS(t) t(p), t(m1), t(m2)
46
47
#define CARGS(t) t(p1), t(p2), t(p1p2), t(m1), t(m2), t(m3)
48
49
#define DARGS(t) t(p1), t(p2), t(p3), t(p4), t(p1p2), t(p2p3), \
50
t(m1), t(m2), t(m3), t(m4)
51
52
#define EARGS(t) t(p1), t(p2), t(p3), t(p4), t(p5), \
53
t(p1p2), t(p2p3), t(p3p4), t(p4p5), t(p5p1), \
54
t(m1), t(m2), t(m3), t(m4), t(m5)
55
56
/****************************************************************/
57
58
#define _lt_Cr_(v) cRealType v
59
#define _lt_Cc_(v) cComplexType v
60
#define _lt_Fr_(v) CREAL *v
61
#define _lt_Fc_(v) CCOMPLEX *v
62
#define _lt_Id_(v) v
63
#define _lt_Frp_(v) &v
64
#define _lt_Fcp_(v) (CCOMPLEX *)&v
65
#define _lt_Fap_(v) (COMPLEX *)v
66
67
// #define _lt_Frd_(f)
68
// #define _lt_Fcd_(f)
69
// #define _lt_Fad_(v,n)
70
// #define _lt_Fax_(v,n)
71
72
/****************************************************************/
73
74
namespace
Herwig
{
75
namespace
Looptools {
76
77
enum
{
78
aa0 = 0,
79
aa00 = 3,
80
Naa = 6
81
};
82
83
enum
{
84
bb0 = 0,
85
bb1 = 3,
86
bb00 = 6,
87
bb11 = 9,
88
bb001 = 12,
89
bb111 = 15,
90
dbb0 = 18,
91
dbb1 = 21,
92
dbb00 = 24,
93
dbb11 = 27,
94
dbb001 = 30,
95
Nbb = 33
96
};
97
98
enum
{
99
cc0 = 0,
100
cc1 = 3,
101
cc2 = 6,
102
cc00 = 9,
103
cc11 = 12,
104
cc12 = 15,
105
cc22 = 18,
106
cc001 = 21,
107
cc002 = 24,
108
cc111 = 27,
109
cc112 = 30,
110
cc122 = 33,
111
cc222 = 36,
112
cc0000 = 39,
113
cc0011 = 42,
114
cc0012 = 45,
115
cc0022 = 48,
116
cc1111 = 51,
117
cc1112 = 54,
118
cc1122 = 57,
119
cc1222 = 60,
120
cc2222 = 63,
121
Ncc = 66
122
};
123
124
enum
{
125
dd0 = 0,
126
dd1 = 3,
127
dd2 = 6,
128
dd3 = 9,
129
dd00 = 12,
130
dd11 = 15,
131
dd12 = 18,
132
dd13 = 21,
133
dd22 = 24,
134
dd23 = 27,
135
dd33 = 30,
136
dd001 = 33,
137
dd002 = 36,
138
dd003 = 39,
139
dd111 = 42,
140
dd112 = 45,
141
dd113 = 48,
142
dd122 = 51,
143
dd123 = 54,
144
dd133 = 57,
145
dd222 = 60,
146
dd223 = 63,
147
dd233 = 66,
148
dd333 = 69,
149
dd0000 = 72,
150
dd0011 = 75,
151
dd0012 = 78,
152
dd0013 = 81,
153
dd0022 = 84,
154
dd0023 = 87,
155
dd0033 = 90,
156
dd1111 = 93,
157
dd1112 = 96,
158
dd1113 = 99,
159
dd1122 = 102,
160
dd1123 = 105,
161
dd1133 = 108,
162
dd1222 = 111,
163
dd1223 = 114,
164
dd1233 = 117,
165
dd1333 = 120,
166
dd2222 = 123,
167
dd2223 = 126,
168
dd2233 = 129,
169
dd2333 = 132,
170
dd3333 = 135,
171
dd00001 = 138,
172
dd00002 = 141,
173
dd00003 = 144,
174
dd00111 = 147,
175
dd00112 = 150,
176
dd00113 = 153,
177
dd00122 = 156,
178
dd00123 = 159,
179
dd00133 = 162,
180
dd00222 = 165,
181
dd00223 = 168,
182
dd00233 = 171,
183
dd00333 = 174,
184
dd11111 = 177,
185
dd11112 = 180,
186
dd11113 = 183,
187
dd11122 = 186,
188
dd11123 = 189,
189
dd11133 = 192,
190
dd11222 = 195,
191
dd11223 = 198,
192
dd11233 = 201,
193
dd11333 = 204,
194
dd12222 = 207,
195
dd12223 = 210,
196
dd12233 = 213,
197
dd12333 = 216,
198
dd13333 = 219,
199
dd22222 = 222,
200
dd22223 = 225,
201
dd22233 = 228,
202
dd22333 = 231,
203
dd23333 = 234,
204
dd33333 = 237,
205
Ndd = 240
206
};
207
208
enum
{
209
ee0 = 0,
210
ee1 = 3,
211
ee2 = 6,
212
ee3 = 9,
213
ee4 = 12,
214
ee00 = 15,
215
ee11 = 18,
216
ee12 = 21,
217
ee13 = 24,
218
ee14 = 27,
219
ee22 = 30,
220
ee23 = 33,
221
ee24 = 36,
222
ee33 = 39,
223
ee34 = 42,
224
ee44 = 45,
225
ee001 = 48,
226
ee002 = 51,
227
ee003 = 54,
228
ee004 = 57,
229
ee111 = 60,
230
ee112 = 63,
231
ee113 = 66,
232
ee114 = 69,
233
ee122 = 72,
234
ee123 = 75,
235
ee124 = 78,
236
ee133 = 81,
237
ee134 = 84,
238
ee144 = 87,
239
ee222 = 90,
240
ee223 = 93,
241
ee224 = 96,
242
ee233 = 99,
243
ee234 = 102,
244
ee244 = 105,
245
ee333 = 108,
246
ee334 = 111,
247
ee344 = 114,
248
ee444 = 117,
249
ee0000 = 120,
250
ee0011 = 123,
251
ee0012 = 126,
252
ee0013 = 129,
253
ee0014 = 132,
254
ee0022 = 135,
255
ee0023 = 138,
256
ee0024 = 141,
257
ee0033 = 144,
258
ee0034 = 147,
259
ee0044 = 150,
260
ee1111 = 153,
261
ee1112 = 156,
262
ee1113 = 159,
263
ee1114 = 162,
264
ee1122 = 165,
265
ee1123 = 168,
266
ee1124 = 171,
267
ee1133 = 174,
268
ee1134 = 177,
269
ee1144 = 180,
270
ee1222 = 183,
271
ee1223 = 186,
272
ee1224 = 189,
273
ee1233 = 192,
274
ee1234 = 195,
275
ee1244 = 198,
276
ee1333 = 201,
277
ee1334 = 204,
278
ee1344 = 207,
279
ee1444 = 210,
280
ee2222 = 213,
281
ee2223 = 216,
282
ee2224 = 219,
283
ee2233 = 222,
284
ee2234 = 225,
285
ee2244 = 228,
286
ee2333 = 231,
287
ee2334 = 234,
288
ee2344 = 237,
289
ee2444 = 240,
290
ee3333 = 243,
291
ee3334 = 246,
292
ee3344 = 249,
293
ee3444 = 252,
294
ee4444 = 255,
295
Nee = 258
296
};
297
298
enum
{
299
KeyA0 = 1,
300
KeyBget = 1<<2,
301
KeyC0 = 1<<4,
302
KeyD0 = 1<<6,
303
KeyE0 = 1<<8,
304
KeyEget = 1<<10,
305
KeyEgetC = 1<<12,
306
KeyAll = KeyA0 + KeyBget + KeyC0 + KeyD0 + KeyE0 + KeyEget + KeyEgetC
307
};
308
309
enum
{
310
DebugA = 1,
311
DebugB = 1<<1,
312
DebugC = 1<<2,
313
DebugD = 1<<3,
314
DebugE = 1<<4,
315
DebugAll = DebugA + DebugB + DebugC + DebugD + DebugE
316
};
317
318
ComplexType ToComplex(
COMPLEX
c);
319
323
void
ltini(std::string logfilename = std::string(
"Looptools.log"
));
324
328
void
ltexi(std::string logfilename = std::string(
"Looptools.log"
));
329
330
/****************************************************************/
331
332
memindex Aget(AARGS(_lt_Cr_));
333
memindex AgetC(AARGS(_lt_Cc_));
334
335
void
Aput(ComplexType *res, AARGS(_lt_Cr_));
336
void
AputC(ComplexType *res, AARGS(_lt_Cc_));
337
338
void
Aputnocache(ComplexType *res, AARGS(_lt_Cr_));
339
void
AputnocacheC(ComplexType *res, AARGS(_lt_Cc_));
340
341
COMPLEX
*Acache(
const
memindex integral);
342
COMPLEX
*AcacheC(
const
memindex integral);
343
344
ComplexType Aval(
const
int
i,
const
memindex integral);
345
ComplexType AvalC(
const
int
i,
const
memindex integral);
346
347
ComplexType A0i(
const
int
i, AARGS(_lt_Cr_));
348
ComplexType A0iC(
const
int
i, AARGS(_lt_Cc_));
349
350
ComplexType
A0
(AARGS(_lt_Cr_));
351
ComplexType A00(AARGS(_lt_Cr_));
352
353
ComplexType A0C(AARGS(_lt_Cc_));
354
ComplexType A00C(AARGS(_lt_Cc_));
355
356
/****************************************************************/
357
358
memindex Bget(BARGS(_lt_Cr_));
359
memindex BgetC(BARGS(_lt_Cc_));
360
361
void
Bput(ComplexType *res, BARGS(_lt_Cr_));
362
void
BputC(ComplexType *res, BARGS(_lt_Cc_));
363
364
void
Bputnocache(ComplexType *res, BARGS(_lt_Cr_));
365
void
BputnocacheC(ComplexType *res, BARGS(_lt_Cc_));
366
367
COMPLEX
*Bcache(
const
memindex integral);
368
COMPLEX
*BcacheC(
const
memindex integral);
369
370
ComplexType Bval(
const
int
i,
const
memindex integral);
371
ComplexType BvalC(
const
int
i,
const
memindex integral);
372
373
ComplexType B0i(
const
int
i, BARGS(_lt_Cr_));
374
ComplexType B0iC(
const
int
i, BARGS(_lt_Cc_));
375
376
ComplexType
B0
(BARGS(_lt_Cr_));
377
ComplexType B1(BARGS(_lt_Cr_));
378
ComplexType B00(BARGS(_lt_Cr_));
379
ComplexType B11(BARGS(_lt_Cr_));
380
ComplexType B001(BARGS(_lt_Cr_));
381
ComplexType B111(BARGS(_lt_Cr_));
382
ComplexType DB0(BARGS(_lt_Cr_));
383
ComplexType DB1(BARGS(_lt_Cr_));
384
ComplexType DB00(BARGS(_lt_Cr_));
385
ComplexType DB11(BARGS(_lt_Cr_));
386
387
ComplexType B0C(BARGS(_lt_Cc_));
388
ComplexType B1C(BARGS(_lt_Cc_));
389
ComplexType B00C(BARGS(_lt_Cc_));
390
ComplexType B11C(BARGS(_lt_Cc_));
391
ComplexType B001C(BARGS(_lt_Cc_));
392
ComplexType B111C(BARGS(_lt_Cc_));
393
ComplexType DB0C(BARGS(_lt_Cc_));
394
ComplexType DB1C(BARGS(_lt_Cc_));
395
ComplexType DB00C(BARGS(_lt_Cc_));
396
ComplexType DB11C(BARGS(_lt_Cc_));
397
398
/****************************************************************/
399
400
memindex Cget(CARGS(_lt_Cr_));
401
memindex CgetC(CARGS(_lt_Cc_));
402
403
void
Cput(ComplexType *res, CARGS(_lt_Cr_));
404
void
CputC(ComplexType *res, CARGS(_lt_Cc_));
405
406
void
C0nocache(ComplexType *res, CARGS(_lt_Cr_));
407
void
C0nocacheC(ComplexType *res, CARGS(_lt_Cc_));
408
409
COMPLEX
*Ccache(
const
memindex integral);
410
COMPLEX
*CcacheC(
const
memindex integral);
411
412
ComplexType Cval(
const
int
i,
const
memindex integral);
413
ComplexType CvalC(
const
int
i,
const
memindex integral);
414
415
ComplexType C0i(
const
int
i, CARGS(_lt_Cr_));
416
ComplexType C0iC(
const
int
i, CARGS(_lt_Cc_));
417
418
ComplexType C0(CARGS(_lt_Cr_));
419
ComplexType C0C(CARGS(_lt_Cc_));
420
421
/****************************************************************/
422
423
memindex Dget(DARGS(_lt_Cr_));
424
memindex DgetC(DARGS(_lt_Cc_));
425
426
void
Dput(ComplexType *res, DARGS(_lt_Cr_));
427
void
DputC(ComplexType *res, DARGS(_lt_Cc_));
428
429
void
D0nocache(ComplexType *res, DARGS(_lt_Cr_));
430
void
D0nocacheC(ComplexType *res, DARGS(_lt_Cc_));
431
432
COMPLEX
*Dcache(
const
memindex integral);
433
COMPLEX
*DcacheC(
const
memindex integral);
434
435
ComplexType Dval(
const
int
i,
const
memindex integral);
436
ComplexType DvalC(
const
int
i,
const
memindex integral);
437
438
ComplexType D0i(
const
int
i, DARGS(_lt_Cr_));
439
ComplexType D0iC(
const
int
i, DARGS(_lt_Cc_));
440
441
ComplexType
D0
(DARGS(_lt_Cr_));
442
ComplexType D0C(DARGS(_lt_Cc_));
443
444
/****************************************************************/
445
446
memindex Eget(EARGS(_lt_Cr_));
447
memindex EgetC(EARGS(_lt_Cc_));
448
449
void
Eput(ComplexType *res, EARGS(_lt_Cr_));
450
void
EputC(ComplexType *res, EARGS(_lt_Cc_));
451
452
void
E0nocache(ComplexType *res, EARGS(_lt_Cr_));
453
void
E0nocacheC(ComplexType *res, EARGS(_lt_Cc_));
454
455
COMPLEX
*Ecache(
const
memindex integral);
456
COMPLEX
*EcacheC(
const
memindex integral);
457
458
ComplexType Eval(
const
int
i,
const
memindex integral);
459
ComplexType EvalC(
const
int
i,
const
memindex integral);
460
461
ComplexType E0i(
const
int
i, EARGS(_lt_Cr_));
462
ComplexType E0iC(
const
int
i, EARGS(_lt_Cc_));
463
464
ComplexType E0(EARGS(_lt_Cr_));
465
ComplexType E0C(EARGS(_lt_Cc_));
466
467
/****************************************************************/
468
469
ComplexType Li2(_lt_Cr_(x));
470
ComplexType Li2C(_lt_Cc_(x));
471
ComplexType Li2omx(_lt_Cr_(x));
472
ComplexType Li2omxC(_lt_Cc_(x));
473
474
/****************************************************************/
475
476
void
clearcache();
477
void
markcache();
478
void
restorecache();
479
480
void
setmudim(cRealType mudim);
481
RealType getmudim();
482
483
void
setdelta(cRealType delta);
484
RealType getdelta();
485
486
void
setuvdiv(cRealType uvdiv);
487
RealType getuvdiv();
488
489
void
setlambda(cRealType lambda);
490
RealType getlambda();
491
492
void
setminmass(cRealType minmass);
493
RealType getminmass();
494
495
void
setmaxdev(cRealType maxdev);
496
RealType getmaxdev();
497
498
void
setwarndigits(
const
int
warndigits);
499
int
getwarndigits();
500
501
void
seterrdigits(
const
int
errdigits);
502
int
geterrdigits();
503
504
void
setversionkey(
const
int
versionkey);
505
int
getversionkey();
506
507
void
setdebugkey(
const
int
debugkey);
508
int
getdebugkey();
509
510
void
setdebugrange(
const
int
debugfrom,
const
int
debugto);
511
512
void
setcmpbits(
const
int
cmpbits);
513
int
getcmpbits();
514
515
void
setdiffeps(cRealType diffeps);
516
RealType getdiffeps();
517
518
void
setzeroeps(cRealType zeroeps);
519
RealType getzeroeps();
520
521
}
// namespace Looptools
522
}
// namespace Herwig
523
524
#endif
525
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::ParticleID::A0
A0
ThePEG::ParticleID::D0
D0
ThePEG::ParticleID::B0
B0
COMPLEX
Definition:
clooptools.h:27
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6