18 template <
typename TK,
typename TV>
22 MEntry(
const TK& k, TV& v) : key(k), val(v) {}
39 static const int size6 = 2;
41 static const int size5 = size6 * 6;
42 static const int size4 = size6 * 15;
43 static const int size3 = size6 * 20;
44 static const int size2 = size6 * 15;
45 static const int size1 = size6 * 6;
54 typedef struct { ncomplex val[3]; }
Ival;
56 enum Ecoefs {ee0 = 1, ee1, ee2, ee3, ee4,
57 ee00, ee11, ee12, ee13, ee14, ee22, ee23, ee24, ee33, ee34, ee44,
58 ee001, ee002, ee003, ee004,
59 ee111, ee112, ee113, ee114, ee122, ee123, ee124, ee133, ee134, ee144,
60 ee222, ee223, ee224, ee233, ee234, ee244, ee333, ee334, ee344, ee444,
61 ee0000, ee0011, ee0012, ee0013, ee0014, ee0022, ee0023, ee0024, ee0033, ee0034, ee0044,
62 ee1111, ee1112, ee1113, ee1114, ee1122, ee1123, ee1124, ee1133, ee1134, ee1144,
63 ee1222, ee1223, ee1224, ee1233, ee1234, ee1244, ee1333, ee1334, ee1344, ee1444,
64 ee2222, ee2223, ee2224, ee2233, ee2234, ee2244, ee2333, ee2334, ee2344, ee2444,
65 ee3333, ee3334, ee3344, ee3444, ee4444,
66 ee00001, ee00002, ee00003, ee00004, ee00111, ee00112, ee00113, ee00114,
67 ee00122, ee00123, ee00124, ee00133, ee00134, ee00144, ee00222, ee00223, ee00224,
68 ee00233, ee00234, ee00244, ee00333, ee00334, ee00344, ee00444,
69 ee11111, ee11112, ee11113, ee11114, ee11122, ee11123, ee11124, ee11133, ee11134, ee11144,
70 ee11222, ee11223, ee11224, ee11233, ee11234, ee11244, ee11333, ee11334, ee11344, ee11444,
71 ee12222, ee12223, ee12224, ee12233, ee12234, ee12244, ee12333, ee12334, ee12344, ee12444,
72 ee13333, ee13334, ee13344, ee13444, ee14444,
73 ee22222, ee22223, ee22224, ee22233, ee22234, ee22244, ee22333, ee22334, ee22344, ee22444,
74 ee23333, ee23334, ee23344, ee23444, ee24444, ee33333, ee33334, ee33344, ee33444, ee34444,
78 enum Dcoefs {dd0 = 1, dd1, dd2, dd3,
79 dd00, dd11, dd12, dd13, dd22, dd23, dd33,
81 dd111, dd112, dd113, dd122, dd123, dd133, dd222, dd223, dd233, dd333,
82 dd0000, dd0011, dd0012, dd0013, dd0022, dd0023, dd0033,
83 dd1111, dd1112, dd1113, dd1122, dd1123, dd1133,
84 dd1222, dd1223, dd1233, dd1333,
85 dd2222, dd2223, dd2233, dd2333,
89 enum Ccoefs {cc0 = 1, cc1, cc2,
90 cc00, cc11, cc12, cc22,
92 cc111, cc112, cc122, cc222, ccLAST
95 enum Bcoefs {bb0 = 1, bb1,
102 static ncomplex getI4(
int ep,
const Kinem4& k);
103 static ncomplex getI3(
int ep,
const Kinem3& k);
104 static ncomplex getI2(
int ep,
const Kinem2& k);
105 static ncomplex getI1(
int ep,
const Kinem1& k);
108 static ncomplex getE(
int ep,
const Kinem5& kin);
109 static ncomplex getE(
int ep,
int i,
const Kinem5& kin);
110 static ncomplex getE(
int ep,
int i,
int j,
const Kinem5& kin);
111 static ncomplex getE(
int ep,
int i,
int j,
int k,
const Kinem5& kin);
112 static ncomplex getE(
int ep,
int i,
int j,
int k,
int l,
const Kinem5& kin);
113 static ncomplex getE(
int ep,
int i,
int j,
int k,
int l,
int m,
const Kinem5& kin);
116 static ncomplex getD(
int ep,
const Kinem4& kin) {
return getI4(ep, kin); }
117 static ncomplex getD(
int ep,
int i,
const Kinem4& kin);
118 static ncomplex getD(
int ep,
int i,
int j,
const Kinem4& kin);
119 static ncomplex getD(
int ep,
int i,
int j,
int k,
const Kinem4& kin);
120 static ncomplex getD(
int ep,
int i,
int j,
int k,
int l,
const Kinem4& kin);
123 static ncomplex getC(
int ep,
const Kinem3& kin) {
return getI3(ep, kin); }
124 static ncomplex getC(
int ep,
int i,
const Kinem3& kin);
125 static ncomplex getC(
int ep,
int i,
int j,
const Kinem3& kin);
126 static ncomplex getC(
int ep,
int i,
int j,
int k,
const Kinem3& kin);
129 static ncomplex getB(
int ep,
const Kinem2& kin) {
return getI2(ep, kin); }
130 static ncomplex getB(
int ep,
int i,
const Kinem2& kin);
131 static ncomplex getB(
int ep,
int i,
int j,
const Kinem2& kin);
134 static ncomplex getA(
int ep,
const Kinem1& kin) {
return getI1(ep, kin); }
137 static void ClearCC();
138 static void ClearIC();
140 static double getMu2();
141 static double setMu2(
const double newmu2);
145 typedef union { int64_t i64;
double d64; }
ID64;
146 typedef union {
double d64; int64_t i64; }
DI64;
147 static const ID64 sNAN;
148 friend bool operator==(
const double& x,
const ICache::ID64& y);
158 static Save5* getS5(
int ep,
const Kinem5& kin,
int coefn);
164 static Save4* getS4(
int ep,
const Kinem4& kin,
int coefn);
170 static Save3* getS3(
int ep,
const Kinem3& kin,
int coefn);
176 static Save2* getS2(
int ep,
const Kinem2& kin,
int coefn);
202 return ix.i64 == y.i64;
207 #ifdef USE_GOLEM_MODE
222 #ifdef USE_SMART_INSERT
223 # define INSERTMINOR3 smartinsertMinor3
224 # define INSERTMINOR2 smartinsertMinor2
228 # define INSERTMINOR3 insertMinor3
229 # define INSERTMINOR2 insertMinor2
261 #define insertMinorN(n) \
263 void MCache::insertMinor##n(const Kinem##n &k, Minor##n::Ptr &m) \
265 cm##n.insert(Entry##n(k,m)); \
bool operator==(const DecayNode &node1, const DecayNode &node2)
Compare two Decay Nodes: They are equal if All daughter decay nodes are equal or one of the daughter ...