Belle II Software  release-06-01-15
integral.h
1 /*
2  * integral.h - scalar integrals
3  *
4  * this file is part of PJFry library
5  * Copyright 2011 Valery Yundin
6  */
7 
8 #ifndef QUL_INTEGRAL_H
9 #define QUL_INTEGRAL_H
10 
11 #include "common.h"
12 #include "kinem.h"
13 #include "cache.h"
14 
15 // #define USE_ONELOOP 1
16 // #define USE_QCDLOOP 1
17 
18 class Initialize {
19 public:
20  Initialize();
21  ~Initialize();
22 };
23 
24 ICache::Ival qlI1(const Kinem1& k);
25 ICache::Ival qlI2(const Kinem2& k);
26 ICache::Ival qlI3(const Kinem3& k);
27 ICache::Ival qlI4(const Kinem4& k);
28 
29 #ifdef USE_QCDLOOP
30 #define qlprec F77_FUNC(ffprec,FFPREC)
31 #define qlflag F77_FUNC(ffflag,FFFLAG)
32 # ifdef HAVE_QCDLOOP1_H
33 # include <qcdloop1.h>
34 # else
35 extern "C" {
36  void F77_FUNC(qlinit, QLINIT)();
37  void F77_FUNC(ffexi, FFEXI)();
38 
39 #ifdef USE_F2C
40  void F77_FUNC(qli1, QLI1)(std::complex<double>* rslt, double* m1, double* mu2, int* ep);
41  void F77_FUNC(qli2, QLI2)(std::complex<double>* rslt, double* p1, double* m1, double* m2, double* mu2, int* ep);
42  void F77_FUNC(qli3, QLI3)(std::complex<double>* rslt, double* p1, double* p2, double* p3, double* m1, double* m2, double* m3,
43  double* mu2, int* ep);
44  void F77_FUNC(qli4, QLI4)(std::complex<double>* rslt, double* p1, double* p2, double* p3, double* p4, double* s12, double* s23,
45  double* m1, double* m2, double* m3, double* m4, double* mu2, int* ep);
46 #else
47  std::complex<double> F77_FUNC(qli1, QLI1)(double* m1, double* mu2, int* ep);
48  std::complex<double> F77_FUNC(qli2, QLI2)(double* p1, double* m1, double* m2, double* mu2, int* ep);
49  std::complex<double> F77_FUNC(qli3, QLI3)(double* p1, double* p2, double* p3, double* m1, double* m2, double* m3, double* mu2,
50  int* ep);
51  std::complex<double> F77_FUNC(qli4, QLI4)(double* p1, double* p2, double* p3, double* p4, double* s12, double* s23, double* m1,
52  double* m2, double* m3, double* m4, double* mu2, int* ep);
53 #endif
54 
55  extern struct {
56  double xloss, precx, precc, xalogm, xclogm, xalog2, xclog2, reqprc;
57  } qlprec;
58  extern struct {
59  int lwrite, ltest, l4also, ldc3c4, lmem, lwarn, ldot,
60  nevent, ner, id, idsub, nwidth, nschem, onshel, idot;
61  } qlflag;
62 }
63 #endif /* HAVE_QCDLOOP1_H */
64 #endif /* USE_QCDLOOP */
65 
66 #ifdef USE_ONELOOP
67 extern "C" {
68  void F77_FUNC_(avh_olo_mu_set, AVH_OLO_MU_SET)(double* mu);
69  void F77_FUNC_(avh_olo_onshell, AVH_OLO_ONSHELL)(double* thrs);
70  void F77_FUNC_(avh_olo_a0m, AVH_OLO_A0M)(std::complex<double>* rslt, double* m1);
71  void F77_FUNC_(avh_olo_b0m, AVH_OLO_B0M)(std::complex<double>* rslt, double* p1, double* m1, double* m2);
72  void F77_FUNC_(avh_olo_c0m, AVH_OLO_C0M)(std::complex<double>* rslt, double* p1, double* p2, double* p3, double* m1, double* m2,
73  double* m3);
74  void F77_FUNC_(avh_olo_d0m, AVH_OLO_D0M)(std::complex<double>* rslt, double* p1, double* p2, double* p3, double* p4, double* p12,
75  double* p23, double* m1, double* m2, double* m3, double* m4);
76 }
77 #endif /* USE_ONELOOP */
78 
79 #endif /* QUL_INTEGRAL_H */
Definition: kinem.h:92
Definition: kinem.h:104
Definition: kinem.h:121
Definition: kinem.h:144