Belle II Software  release-06-00-14
qcdloop1.h
1 /*
2  * qcdloop1.h - header file for QCDLoop1 library
3  *
4  */
5 
6 #ifndef QCDLOOP1_H
7 #define QCDLOOP1_H
8 
9 /* NB endline spaces are significant */
10 #ifdef QL_BUILDSYMS
11 # define QL_EXPORT(type) QL_EXPORT_MARK
12 #else
13 # define QL_EXPORT(type) type
14 #endif
15 
16 /* if language is C++ use standard complex template type */
17 #ifdef __cplusplus
18 # include <complex>
19 # define QL_DEFINE_COMPLEX(R, C) typedef std::complex<R> C
20 #else
21 /* if <complex.h> is included, use the C99 complex type.
22  * else define a type bit-compatible with C99 complex */
23 # if defined(_Complex_I) && defined(complex) && defined(I)
24 # define QL_DEFINE_COMPLEX(R, C) typedef R _Complex C
25 # else
26 # define QL_DEFINE_COMPLEX(R, C) typedef struct { R re,im; } C
27 # endif
28 #endif
29 
30 QL_DEFINE_COMPLEX(double, ql_cmplx_dbl);
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif /* __cplusplus */
35 
36 typedef struct ffprec_struct {
37  double xloss;
38  double precx;
39  double precc;
40  double xalogm;
41  double xclogm;
42  double xalog2;
43  double xclog2;
44  double reqprc;
45 } ffprec_type;
46 
47 typedef struct ffflag_struct {
48  int lwrite;
49  int ltest;
50  int l4also;
51  int ldc3c4;
52  int lmem;
53  int lwarn;
54  int ldot;
55  int nevent;
56  int ner;
57  int id;
58  int idsub;
59  int nwidth;
60  int nschem;
61  int onshel;
62  int idot;
63 } ffflag_type;
64 
65 QL_EXPORT(void) qlinit_();
66 QL_EXPORT(void) ffexi_();
67 
68 #ifdef USE_F2C
69 QL_EXPORT(void) qli1_(ql_cmplx_dbl* rslt, double* m1, double* mu2, int* ep);
70 QL_EXPORT(void) qli2_(ql_cmplx_dbl* rslt, double* p1, double* m1, double* m2, double* mu2, int* ep);
71 QL_EXPORT(void) qli3_(ql_cmplx_dbl* rslt, double* p1, double* p2, double* p3, double* m1, double* m2, double* m3, double* mu2,
72  int* ep);
73 QL_EXPORT(void) qli4_(ql_cmplx_dbl* rslt, double* p1, double* p2, double* p3, double* p4, double* s12, double* s23, double* m1,
74  double* m2, double* m3, double* m4, double* mu2, int* ep);
75 #else
76 QL_EXPORT(ql_cmplx_dbl) qli1_(double* m1, double* mu2, int* ep);
77 QL_EXPORT(ql_cmplx_dbl) qli2_(double* p1, double* m1, double* m2, double* mu2, int* ep);
78 QL_EXPORT(ql_cmplx_dbl) qli3_(double* p1, double* p2, double* p3, double* m1, double* m2, double* m3, double* mu2, int* ep);
79 QL_EXPORT(ql_cmplx_dbl) qli4_(double* p1, double* p2, double* p3, double* p4, double* s12, double* s23, double* m1, double* m2,
80  double* m3, double* m4, double* mu2, int* ep);
81 #endif
82 
83 extern QL_EXPORT(struct ffprec_struct) ffprec_;
84 extern QL_EXPORT(struct ffflag_struct) ffflag_;
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif /* QCDLOOP1_H */