HepLib
Init.cpp
Go to the documentation of this file.
1 
6 #include "BASIC.h"
7 #include "HEP.h"
8 #include "QGRAF.h"
9 #include "QCD.h"
10 #include "IBP.h"
11 #include "SD.h"
12 #include "DE.h"
13 #include "AMF.h"
14 #include <cstdlib>
15 
16 #include "cln/cln.h"
17 #include <dlfcn.h>
18 #include <string.h>
19 #include <string>
20 
21 namespace HepLib {
22 
23 
24  namespace {
25  string install_prefix() {
26  static string wdir = "";
27  if(wdir == "") {
28  string path;
29  Dl_info dl_info;
30  dladdr((void*)install_prefix, &dl_info);
31  path = dl_info.dli_fname;
32  wdir = path.substr(0, path.find_last_of('/'));
33  path = wdir;
34  wdir = path.substr(0, path.find_last_of('/'));
35  }
36  return wdir;
37  }
38  }
39 
40  // Initialization Unit
41  // to make sure the initialization order is correct,
42  // i.e., ordered in one compilation unit
43 
44  // FROM class
45 
46  // similar to GINAC_DECLARE_UNARCHIVER/GINAC_IMPLEMENT_REGISTERED_CLASS_OPT
47  GiNaC::registered_class_info Symbol::reg_info =
48  GiNaC::registered_class_info(GiNaC::registered_class_options("Symbol", "symbol", typeid(Symbol)));
49 
50  GiNaC::registered_class_info iSymbol::reg_info =
51  GiNaC::registered_class_info(GiNaC::registered_class_options("iSymbol", "symbol", typeid(iSymbol)));
52 
53  GiNaC::registered_class_info XIntegral::reg_info =
54  GiNaC::registered_class_info(GiNaC::registered_class_options("XIntegral", "basic", typeid(XIntegral)).print_func<print_dflt>(&XIntegral::print));
55 
56  GiNaC::registered_class_info Index::reg_info =
57  GiNaC::registered_class_info(GiNaC::registered_class_options("Index", "basic", typeid(Index)).print_func<print_context>(&Index::print));
58 
59  GiNaC::registered_class_info Vector::reg_info =
60  GiNaC::registered_class_info(GiNaC::registered_class_options("Vector", "basic", typeid(Vector)).print_func<print_context>(&Vector::print));
61 
62  GiNaC::registered_class_info SUNT::reg_info =
63  GiNaC::registered_class_info(GiNaC::registered_class_options("SUNT", "basic", typeid(SUNT)).print_func<print_dflt>(&SUNT::print).print_func<FormFormat>(&SUNT::form_print).print_func<FCFormat>(&SUNT::fc_print));
64 
65  GiNaC::registered_class_info SUNF::reg_info =
66  GiNaC::registered_class_info(GiNaC::registered_class_options("SUNF", "basic", typeid(SUNF)).print_func<print_dflt>(&SUNF::print).print_func<FormFormat>(&SUNF::form_print).print_func<FCFormat>(&SUNF::fc_print));
67 
68  GiNaC::registered_class_info SUNF4::reg_info =
69  GiNaC::registered_class_info(GiNaC::registered_class_options("SUNF4", "basic", typeid(SUNF4)).print_func<print_dflt>(&SUNF4::print).print_func<FormFormat>(&SUNF4::form_print).print_func<FCFormat>(&SUNF4::fc_print));
70 
71  GiNaC::registered_class_info DGamma::reg_info =
72  GiNaC::registered_class_info(GiNaC::registered_class_options("DGamma", "basic", typeid(DGamma)).print_func<print_dflt>(&DGamma::print).print_func<FormFormat>(&DGamma::form_print).print_func<FCFormat>(&DGamma::fc_print));
73 
74  GiNaC::registered_class_info Eps::reg_info =
75  GiNaC::registered_class_info(GiNaC::registered_class_options("Eps", "basic", typeid(Eps)).print_func<print_dflt>(&Eps::print).print_func<FormFormat>(&Eps::form_print).print_func<FCFormat>(&Eps::fc_print));
76 
77  GiNaC::registered_class_info Pair::reg_info =
78  GiNaC::registered_class_info(GiNaC::registered_class_options("Pair", "basic", typeid(Pair)).print_func<print_dflt>(&Pair::print).print_func<FormFormat>(&Pair::form_print).print_func<FCFormat>(&Pair::fc_print));
79 
80  // FROM BASIC
81 
82  string Version = "1.5 @2024-04-28";
83  exmap Symbol::vmap;
84  std::map<std::string, ex> Symbol::Table; // alias as symtab in parser
85  std::map<std::string, ex> iSymbol::Table; // alias as symtab in parser
86  GiNaC::exmap Index::Dimension; // default dimension is d, others specified here.
87 
88  unsigned nopat = GiNaC::subs_options::no_pattern;
89 
90  ex w = wild();
91  ex w0 = wild(0);
92  ex w1 = wild(1);
93  ex w2 = wild(2);
94  ex w3 = wild(3);
95  ex w4 = wild(4);
96  ex w5 = wild(5);
97  ex w6 = wild(6);
98  ex w7 = wild(7);
99  ex w8 = wild(8);
100  ex w9 = wild(9);
101 
102  // normal/factor options
103  int _o_ = 0;
104  const int o_none = (_o_++);
105  const int o_normal = (_o_++);
106  const int o_fermat = (_o_++);
107  const int o_fermatfD = (_o_++);
108  const int o_fermatN = (_o_++);
109  const int o_form = (_o_++);
110  const int o_flint = (_o_++);
111  const int o_flintf = (_o_++);
112  const int o_flintfD = (_o_++);
113  const int o_normal_fermat = (_o_++);
114  const int o_normal_form = (_o_++);
115  const int o_fermat_form = (_o_++);
116 
117  // Symbols
118  const Symbol NA("NA");
119  const Symbol NF("NF");
120  const Symbol TF("TF");
121  const Symbol CA("CA");
122  const Symbol CF("CF");
123  const Symbol gs("gs");
124  const Symbol as("as");
125  const Symbol mu("mu");
126  const Symbol nL("nL");
127  const Symbol nH("nH");
128  const Symbol eps("eps");
129  const Symbol vs("vs");
130  const Symbol vz("vz");
131  const Symbol epz("epz");
132  const Symbol NaN("NaN");
133  const Symbol ep("ep");
134  const Symbol d("d");
135  const Symbol iet("iet");
136  const iSymbol iEpsilon("iEpsilon");
137 
138  const ex iEpsilonN = I*pow(ex(10), -50);
139  int Verbose = 0;
140  string PRE = " ";
141  bool Debug = false;
142  bool In_GiNaC_Parallel = false;
144  map<string, int> GiNaC_Parallel_NP;
145  map<string, int> GiNaC_Parallel_Verb;
147  map<string, int> GiNaC_Parallel_NB;
148  map<string, bool> GiNaC_Parallel_RM;
149  map<string, string> GiNaC_Parallel_PRE;
150  map<string, bool> GiNaC_Parallel_ReWR;
152  map<ex,long long,ex_is_less> fermat_weight;
153  bool using_cache = true;
154  long long cache_limit = -1;
155  int NNDigits = 100;
156 
158 
159  string InstallPrefix = install_prefix();
160  string INC_FLAGS = "-I'"+InstallPrefix+"/include' " + "@INC_FLAGS@";
161  string LIB_FLAGS = "-L'"+InstallPrefix+"/lib' -Wl,-rpath,'"+InstallPrefix+"'/lib " + "@LIB_FLAGS@";
162 
163  int Fermat::buffer_size = 1024*128;
164  int Form::buffer_size = 1024*128;
165 
166  bool SD::SecDec::use_dlclose = true;
167  string SD::SecDec::cpp = "g++ -w";
168 
169  SD::CppFormat::_init::_init() {
170  set_print_func<numeric, CppFormat>(CppFormat::print_numeric);
171  }
172  SD::CppFormat::_init SD::CppFormat::CppFormat_init;
174  set_print_func<numeric, ExFormat>(ExFormat::print_numeric);
175  }
176  SD::ExFormat::_init SD::ExFormat::ExFormat_init;
177  int SD::VEO_Digits = 10;
178 
179  exmap SP_map;
180  map<ex,string,ex_is_less> QGRAF::LineTeX; // key is the filed
181  map<ex,string,ex_is_less> QGRAF::VerTeX; // key is the fileds in vertex
182  map<ex,string,ex_is_less> QGRAF::InOutTeX; // key is the id, id<0
183 
184  FCFormat::_init::_init() {
185  set_print_func<ncmul, FCFormat>(FCFormat::ncmul_print);
186  }
187  FCFormat::_init FCFormat::FCFormat_init;
188 
189  FormFormat::_init::_init() {
190  set_print_func<power, FormFormat>(FormFormat::power_print);
191  }
192  FormFormat::_init FormFormat::FormFormat_init;
194 
195  const int form_trace_auto = 0;
196  const int form_trace_all = 1;
197  const int form_trace_each_all = 2;
198  const int form_trace_each_each = 3;
200 
201  const int form_expand_none = 0;
202  const int form_expand_tr = 1;
203  const int form_expand_ci = 2;
204  const int form_expand_li = 3;
205  const int form_expand_all = 4;
207  bool Apart_using_fermat = true;
208  bool form_using_su3 = false;
209  bool form_using_dim4 = false;
210  bool form_using_gamma5 = false;
211 
212  QGRAF::Process::_init::_init() {
213  auto A = Symbol("A");
214  auto q = Symbol("q");
215  auto qbar = Symbol("qbar");
216  auto l = Symbol("l");
217  auto lbar = Symbol("lbar");
218  auto gh = Symbol("gh");
219  auto ghbar = Symbol("ghbar");
220  auto g = Symbol("g");
221  auto Q = Symbol("Q");
222  auto Qbar = Symbol("Qbar");
223  auto C = Symbol("C");
224  auto Cbar = Symbol("Cbar");
225  auto B = Symbol("B");
226  auto Bbar = Symbol("Bbar");
227  auto n = Symbol("n");
228  auto nbar = Symbol("nbar");
229  auto e = Symbol("e");
230 
231  LineTeX[q] = "fermion, edge label=$q$";
232  LineTeX[qbar] = "anti fermion, edge label=$q$";
233  LineTeX[l] = "fermion, edge label=$l$";
234  LineTeX[lbar] = "anti fermion, edge label=$l$";
235  LineTeX[gh] = "ghost, edge label=$\\chi$";
236  LineTeX[ghbar] = "ghost, edge label=$\\chi$";
237  LineTeX[g] = "gluon, edge label=$g$";
238  LineTeX[A] = "photon, edge label=$\\gamma$";
239  LineTeX[Q] = "fermion, edge label=$Q$";
240  LineTeX[Qbar] = "anti fermion, edge label=$Q$";
241  LineTeX[C] = "fermion, edge label=$c$";
242  LineTeX[Cbar] = "anti fermion, edge label=$c$";
243  LineTeX[B] = "fermion, edge label=$b$";
244  LineTeX[Bbar] = "anti fermion, edge label=$b$";
245  LineTeX[n] = "double distance=1.5pt";
246  LineTeX[nbar] = "double distance=1.5pt";
247  LineTeX[e] = "color=white";
248 
249  VerTeX[lst{Qbar, e, nbar}] = "[crossed dot]";
250  VerTeX[lst{nbar, e, g}] = "[crossed dot]";
251 
252  {
253  Symbol U("U"); // U-quark
254  Symbol Ubar("Ubar"); // anti U-quark
255  Symbol D("D"); // D-quark
256  Symbol Dbar("Dbar"); // anti D-quark
257  Symbol C("C"); // C-quark
258  Symbol Cbar("Cbar"); // anti C-quark
259  Symbol S("S"); // S-quark
260  Symbol Sbar("Sbar"); // anti S-quark
261  Symbol T("T"); // T-quark
262  Symbol Tbar("Tbar"); // anti T-quark
263  Symbol B("B"); // B-quark
264  Symbol Bbar("Bbar"); // anti B-quark
265 
266  Symbol g("g"); // gluon
267  Symbol gh("gh"); // gluon ghost
268  Symbol ghbar("ghbar"); // anti gluon ghost
269 
270  Symbol A("A"); // photon
271  Symbol Wm("Wm"); // W-
272  Symbol Wp("Wp"); // W+
273  Symbol Z("Z"); // Z
274 
275  Symbol ghA("SW"); // photon ghost
276  Symbol ghAbar("ghAbar"); // anti photon ghost
277  Symbol ghWm("ghWm"); // W- ghost
278  Symbol ghWmbar("ghWmbar"); // anti W- ghost
279  Symbol ghWp("ghWp"); // W+ ghost
280  Symbol ghWpbar("ghWpbar"); // anti W+ ghost
281  Symbol ghZ("ghZ"); // Z ghost
282  Symbol ghZbar("ghZbar"); // anti Z ghost
283 
284  Symbol em("em"); // e-
285  Symbol ep("ep"); // e+
286  Symbol ne("ne"); // e-neutrino
287  Symbol nebar("nebar"); // anti e-neutrino
288  Symbol mum("mum"); // mu-
289  Symbol mup("mup"); // mu+
290  Symbol nmu("nmu"); // mu-neutrino
291  Symbol nmubar("nmubar"); // anti mu-neutrino
292  Symbol taum("taum"); // tau-
293  Symbol taup("taup"); // tau+
294  Symbol ntau("ntau"); // tau-neutrino
295  Symbol ntaubar("ntaubar"); // anti tau-neutrino
296 
297  Symbol chi("chi"); // Z goldstone
298  Symbol phim("phim"); // W- goldstone
299  Symbol phip("phip"); // W+ goldstone
300  Symbol H("H"); // higgs
301 
302  lst fs = { U, D, C, S, T, B, em, mum, taum, ne, nmu, ntau};
303  lst fs2 = {Ubar, Dbar, Cbar, Sbar, Tbar, Bbar, ep, mup, taup, nebar, nmubar, ntaubar};
304  string fsi[] = { "$u$", "$d$", "$c$", "$s$", "$t$", "$b$", "$e$", "$\\mu$", "$\\tau$", "$\\nu_e$", "$\\nu_\\mu$", "$\\nu_\\tau$" };
305  for(int i=0; i<fs.nops(); i++) {
306  auto si = fsi[i];
307  LineTeX[fs.op(i)] = "fermion ,edge label="+si;
308  LineTeX[fs2.op(i)] = "anti fermion ,edge label="+si;
309  }
310 
311  LineTeX[Wp] = "photon, edge label=$W$";
312  LineTeX[Wm] = "photon, edge label=$W$";
313  LineTeX[Z] = "photon, edge label=$Z$";
314 
315  LineTeX[H]="scalar, edge label=$H$";
316  LineTeX[chi]="scalar, edge label=$\\chi$";
317  LineTeX[phim]="charged scalar, edge label=$\\phi$";
318  LineTeX[phip]="anti charged scalar, edge label=$\\phi$";
319 
320  lst ghs = {gh, ghA, ghWm, ghWp, ghZ};
321  lst ghs2 = {ghbar, ghAbar, ghWmbar, ghWpbar, ghZbar};
322  string ghsi[] = {"$c$", "$c_\\gamma$", "$c_-$", "$c_+$", "$c_Z$"};
323 
324  for(int i=0; i<ghs.nops(); i++) {
325  auto si = ghsi[i];
326  LineTeX[ghs.op(i)] = "ghost ,edge label="+si;
327  LineTeX[ghs2.op(i)] = "anti ghost ,edge label="+si;
328  }
329  }
330  }
331  QGRAF::Process::_init QGRAF::Process::Process_init;
332 
333  // FROM IBP
334  int FIRE::Version = 6;
335  exmap MapPreSP;
336 
337  string UKIRA::KArgs = "";
338  string KIRA::KArgs = "";
339 
340  // FROM QCD
341  int QCD::FF::cur_mode = 0; // 0 - gluon, 1 - quark, 2 - anti-quark
342 
343  // FROM DE
344  slong error_pass_dp = 100;
345 
346  // FROM AMF
347  int DEX::Threads = 8;
348 
349  // global init
350  std::stack<cln::float_format_t> cln_prec_stack;
351  std::stack<long> digits_stack;
352  _global_init::_init::_init() {
353  ostringstream oss;
354  string path = InstallPrefix + "/bin";
355  if(dir_exists(path)) oss << path;
356 
357  auto opath = getenv("PATH");
358  if(opath != NULL) oss << ":" << opath;
359  setenv("PATH", oss.str().c_str(), true);
360 
361  // similar to GINAC_DECLARE_UNARCHIVER/GINAC_BIND_UNARCHIVER
362  GiNaC::unarchive_table_t table;
363  table.insert(std::string("Symbol"), []()->GiNaC::basic*{ return new Symbol(); });
364  table.insert(std::string("iSymbol"), []()->GiNaC::basic*{ return new iSymbol(); });
365  table.insert(std::string("XIntegral"), []()->GiNaC::basic*{ return new XIntegral(); });
366  table.insert(std::string("Index"), []()->GiNaC::basic*{ return new Index(); });
367  table.insert(std::string("Vector"), []()->GiNaC::basic*{ return new Vector(); });
368  table.insert(std::string("SUNT"), []()->GiNaC::basic*{ return new SUNT(); });
369  table.insert(std::string("SUNF"), []()->GiNaC::basic*{ return new SUNF(); });
370  table.insert(std::string("SUNF4"), []()->GiNaC::basic*{ return new SUNF4(); });
371  table.insert(std::string("DGamma"), []()->GiNaC::basic*{ return new DGamma(); });
372  table.insert(std::string("Eps"), []()->GiNaC::basic*{ return new Eps(); });
373  table.insert(std::string("Pair"), []()->GiNaC::basic*{ return new Pair(); });
374 
375  // CLN configurations
376  cln::cl_inhibit_floating_point_underflow = true;
377  Digits = 100;
378  set_precision(100);
379  }
380  _global_init::_init _global_init::init_object;
381 
382 }
383 
384 std::string HepLib::QGRAF::Process::Style = R"EOF(
385 <prologue>
386 
387 <diagram>
388 ((<sign><symmetry_factor>)*
389 <in_loop>InField(<field>,<field_index>,<momentum>)*
390 <end>
391 <back><out_loop>OutField(<field>,<field_index>,<momentum>)*
392 <end>
393 <back><propagator_loop>Propagator(
394 <back>Field(<field>,<field_index>),
395 <back>Field(<dual-field>,<dual-field_index>),
396 <back><momentum>)*
397 <end>
398 <back><vertex_loop>Vertex(
399 <back><ray_loop>Field(<field>,<field_index>,<momentum>),
400 <back><end><back>)*
401 <end><back><back>)
402 ,
403 <epilogue>
404 
405 <exit>
406 
407 )EOF";
408 
409 std::string HepLib::QGRAF::Models::GluonFF = R"EOF(
410 [ model = 'Gluon FF Model' ]
411 [q, qbar, -]
412 [Q, Qbar, -]
413 [gh, ghbar, -]
414 [g, g, +, notadpole]
415 [e, e, +, external]
416 [n, nbar, +]
417 [qbar, q, g; QCD='+1']
418 [Qbar, Q, g; QCD='+1']
419 [g, g, g, g; QCD='+2']
420 [g, g, g; QCD='+1']
421 [ghbar, gh, g; QCD='+1']
422 [nbar, n, g; QCD='+1']
423 [nbar, e, g; QCD='+0']
424 %[n, e, g; QCD='+0']
425 )EOF";
426 
427 std::string HepLib::QGRAF::Models::QuarkFF = R"EOF(
428 [ model = 'Quark FF Model' ]
429 [q, qbar, -]
430 [Q, Qbar, -]
431 [e, ebar, -, external]
432 [gh, ghbar, -]
433 [g, g, +, notadpole]
434 [n, nbar, +]
435 [qbar, q, g; QCD='+1']
436 [Qbar, Q, g; QCD='+1']
437 [g, g, g, g; QCD='+2']
438 [g, g, g; QCD='+1']
439 [ghbar, gh, g; QCD='+1']
440 [nbar, n, g; QCD='+1']
441 [qbar, e, nbar; QCD='0']
442 [ebar, q, nbar; QCD='0']
443 [Qbar, e, nbar; QCD='0']
444 [ebar, Q, nbar; QCD='0']
445 )EOF";
446 
447 std::string HepLib::QGRAF::Models::SM = R"EOF(
448 % From Boehm, Denner, Joos @ Feynman Gauge
449 [ model = 'Standard Model' ]
450 
451 %------------------------------------
452 % Propagators
453 %------------------------------------
454 
455 % quarks
456 [U, Ubar, -]
457 [D, Dbar, -]
458 [C, Cbar, -]
459 [S, Sbar, -]
460 [T, Tbar, -]
461 [B, Bbar, -]
462 
463 % gluon and its ghost:
464 [g, g, +, notadpole]
465 [gh, ghbar, -]
466 
467 % V: EWSM gauge bosons
468 [A, A, +, notadpole]
469 [Wm, Wp, +]
470 [Z, Z, +]
471 
472 % leptons
473 [em, ep, -]
474 [ne, nebar, -]
475 [mum, mup, -]
476 [nmu, nmubar, -]
477 [taum, taup, -]
478 [ntau, ntaubar, -]
479 
480 % G: Faddeev-Popov Ghosts
481 [ghA, ghAbar, -]
482 [ghZ, ghZbar, -]
483 [ghWm, ghWmbar, -]
484 [ghWp, ghWpbar, -]
485 
486 % S: scalars
487 [H, H, +]
488 [chi, chi, +]
489 [phim, phip, +]
490 
491 %------------------------------------
492 % Vertices
493 %------------------------------------
494 
495 % QCD
496 [Ubar, U, g; QCD='+1', QED='0']
497 [Dbar, D, g; QCD='+1', QED='0']
498 [Sbar, S, g; QCD='+1', QED='0']
499 [Cbar, C, g; QCD='+1', QED='0']
500 [Bbar, B, g; QCD='+1', QED='0']
501 [Tbar, T, g; QCD='+1', QED='0']
502 
503 [g, g, g, g; QCD='+2', QED='0']
504 [g, g, g; QCD='+1', QED='0']
505 [ghbar, gh, g; QCD='+1', QED='0']
506 
507 % VVVV
508 [Wp, Wm, Z, Z; QCD='0', QED='+2']
509 [Wp, Wm, A, Z; QCD='0', QED='+2']
510 [Wp, Wm, A, A; QCD='0', QED='+2']
511 [Wp, Wp, Wm, Wm; QCD='0', QED='+2']
512 
513 % VVV
514 [Wp, Wm, A; QCD='0', QED='+1']
515 [Wp, Wm, Z; QCD='0', QED='+1']
516 
517 % SSSS
518 [H, H, H, H; QCD='0', QED='+2']
519 [chi, chi, chi, chi; QCD='0', QED='+2']
520 [H, H, chi, chi; QCD='0', QED='+2']
521 [H, H, phim, phip; QCD='0', QED='+2']
522 [chi, chi, phim, phip; QCD='0', QED='+2']
523 [phim, phip, phim, phip; QCD='0', QED='+2']
524 
525 % SSS
526 [H, H, H; QCD='0', QED='+1']
527 [H, chi, chi; QCD='0', QED='+1']
528 [H, phim, phip; QCD='0', QED='+1']
529 
530 % VVSS
531 [Z, Z, H, H; QCD='0', QED='+2']
532 [Z, Z, chi, chi; QCD='0', QED='+2']
533 [Wp, Wm, H, H; QCD='0', QED='+2']
534 [Wp, Wm, chi, chi; QCD='0', QED='+2']
535 [Wp, Wm, phip, phim; QCD='0', QED='+2']
536 
537 [A, A, phip, phim; QCD='0', QED='+2']
538 [Z, A, phip, phim; QCD='0', QED='+2']
539 [Z, Z, phip, phim; QCD='0', QED='+2']
540 
541 [Wp, A, phim, H; QCD='0', QED='+2']
542 [Wm, A, phip, H; QCD='0', QED='+2']
543 [Wp, A, phim, chi; QCD='0', QED='+2']
544 [Wm, A, phip, chi; QCD='0', QED='+2']
545 [Wp, Z, phim, H; QCD='0', QED='+2']
546 [Wm, Z, phip, H; QCD='0', QED='+2']
547 [Wp, Z, phim, chi; QCD='0', QED='+2']
548 [Wm, Z, phip, chi; QCD='0', QED='+2']
549 
550 % VSS
551 [Z, chi, H; QCD='0', QED='+1']
552 [A, phip, phim; QCD='0', QED='+1']
553 [Z, phip, phim; QCD='0', QED='+1']
554 [Wp, phim, H; QCD='0', QED='+1']
555 [Wm, phip, H; QCD='0', QED='+1']
556 [Wp, phim, chi; QCD='0', QED='+1']
557 [Wm, phip, chi; QCD='0', QED='+1']
558 
559 % SVV
560 [H, Z, Z; QCD='0', QED='+1']
561 [H, Wp, Wm; QCD='0', QED='+1']
562 [phip, Wm, A; QCD='0', QED='+1']
563 [phim, Wp, A; QCD='0', QED='+1']
564 [phip, Wm, Z; QCD='0', QED='+1']
565 [phim, Wp, Z; QCD='0', QED='+1']
566 
567 % ffV
568 [Ubar, U, A; QCD='0', QED='+1']
569 [Dbar, D, A; QCD='0', QED='+1']
570 [Sbar, S, A; QCD='0', QED='+1']
571 [Cbar, C, A; QCD='0', QED='+1']
572 [Bbar, B, A; QCD='0', QED='+1']
573 [Tbar, T, A; QCD='0', QED='+1']
574 
575 [ep, em, A; QCD='0', QED='+1']
576 [mup, mum, A; QCD='0', QED='+1']
577 [taup, taum, A; QCD='0', QED='+1']
578 
579 [Ubar, U, Z; QCD='0', QED='+1']
580 [Dbar, D, Z; QCD='0', QED='+1']
581 [Sbar, S, Z; QCD='0', QED='+1']
582 [Cbar, C, Z; QCD='0', QED='+1']
583 [Bbar, B, Z; QCD='0', QED='+1']
584 [Tbar, T, Z; QCD='0', QED='+1']
585 
586 [ep, em, Z; QCD='0', QED='+1']
587 [mup, mum, Z; QCD='0', QED='+1']
588 [taup, taum, Z; QCD='0', QED='+1']
589 
590 [nebar, ne, Z; QCD='0', QED='+1']
591 [nmubar, nmu, Z; QCD='0', QED='+1']
592 [ntaubar, ntau, Z; QCD='0', QED='+1']
593 
594 [Dbar, U, Wm; QCD='0', QED='+1']
595 [Dbar, C, Wm; QCD='0', QED='+1']
596 [Dbar, T, Wm; QCD='0', QED='+1']
597 
598 [Sbar, U, Wm; QCD='0', QED='+1']
599 [Sbar, C, Wm; QCD='0', QED='+1']
600 [Sbar, T, Wm; QCD='0', QED='+1']
601 
602 [Bbar, U, Wm; QCD='0', QED='+1']
603 [Bbar, C, Wm; QCD='0', QED='+1']
604 [Bbar, T, Wm; QCD='0', QED='+1']
605 
606 [Ubar, D, Wp; QCD='0', QED='+1']
607 [Ubar, S, Wp; QCD='0', QED='+1']
608 [Ubar, B, Wp; QCD='0', QED='+1']
609 
610 [Cbar, D, Wp; QCD='0', QED='+1']
611 [Cbar, S, Wp; QCD='0', QED='+1']
612 [Cbar, B, Wp; QCD='0', QED='+1']
613 
614 [Tbar, D, Wp; QCD='0', QED='+1']
615 [Tbar, S, Wp; QCD='0', QED='+1']
616 [Tbar, B, Wp; QCD='0', QED='+1']
617 
618 [ep, ne, Wm; QCD='0', QED='+1']
619 [mup, nmu, Wm; QCD='0', QED='+1']
620 [taup, ntau, Wm; QCD='0', QED='+1']
621 
622 [nebar, em, Wp; QCD='0', QED='+1']
623 [nmubar, mum, Wp; QCD='0', QED='+1']
624 [ntaubar, taum, Wp; QCD='0', QED='+1']
625 
626 % Sff
627 [Ubar, U, H; QCD='0', QED='+1']
628 [Dbar, D, H; QCD='0', QED='+1']
629 [Sbar, S, H; QCD='0', QED='+1']
630 [Cbar, C, H; QCD='0', QED='+1']
631 [Bbar, B, H; QCD='0', QED='+1']
632 [Tbar, T, H; QCD='0', QED='+1']
633 
634 [ep, em, H; QCD='0', QED='+1']
635 [mup, mum, H; QCD='0', QED='+1']
636 [taup, taum, H; QCD='0', QED='+1']
637 
638 [Ubar, U, chi; QCD='0', QED='+1']
639 [Dbar, D, chi; QCD='0', QED='+1']
640 [Sbar, S, chi; QCD='0', QED='+1']
641 [Cbar, C, chi; QCD='0', QED='+1']
642 [Bbar, B, chi; QCD='0', QED='+1']
643 [Tbar, T, chi; QCD='0', QED='+1']
644 
645 [ep, em, chi; QCD='0', QED='+1']
646 [mup, mum, chi; QCD='0', QED='+1']
647 [taup, taum, chi; QCD='0', QED='+1']
648 
649 [Dbar, U, phim; QCD='0', QED='+1']
650 [Dbar, C, phim; QCD='0', QED='+1']
651 [Dbar, T, phim; QCD='0', QED='+1']
652 
653 [Sbar, U, phim; QCD='0', QED='+1']
654 [Sbar, C, phim; QCD='0', QED='+1']
655 [Sbar, T, phim; QCD='0', QED='+1']
656 
657 [Bbar, U, phim; QCD='0', QED='+1']
658 [Bbar, C, phim; QCD='0', QED='+1']
659 [Bbar, T, phim; QCD='0', QED='+1']
660 
661 [Ubar, D, phip; QCD='0', QED='+1']
662 [Ubar, S, phip; QCD='0', QED='+1']
663 [Ubar, B, phip; QCD='0', QED='+1']
664 
665 [Cbar, D, phip; QCD='0', QED='+1']
666 [Cbar, S, phip; QCD='0', QED='+1']
667 [Cbar, B, phip; QCD='0', QED='+1']
668 
669 [Tbar, D, phip; QCD='0', QED='+1']
670 [Tbar, S, phip; QCD='0', QED='+1']
671 [Tbar, B, phip; QCD='0', QED='+1']
672 
673 [ep, ne, phim; QCD='0', QED='+1']
674 [mup, nmu, phim; QCD='0', QED='+1']
675 [taup, ntau, phim; QCD='0', QED='+1']
676 
677 [nebar, em, phip; QCD='0', QED='+1']
678 [nmubar, mum, phip; QCD='0', QED='+1']
679 [ntaubar, taum, phip; QCD='0', QED='+1']
680 
681 % VGG
682 [ghWpbar, ghWp, A; QCD='0', QED='+1']
683 [ghWmbar, ghWm, A; QCD='0', QED='+1']
684 [ghAbar, ghWm, Wp; QCD='0', QED='+1']
685 [ghAbar, ghWp, Wm; QCD='0', QED='+1']
686 [ghWmbar, ghA, Wm; QCD='0', QED='+1']
687 [ghWpbar, ghA, Wp; QCD='0', QED='+1']
688 [ghWpbar, ghWp, Z; QCD='0', QED='+1']
689 [ghWmbar, ghWm, Z; QCD='0', QED='+1']
690 [ghZbar, ghWm, Wp; QCD='0', QED='+1']
691 [ghZbar, ghWp, Wm; QCD='0', QED='+1']
692 [ghWmbar, ghZ, Wm; QCD='0', QED='+1']
693 [ghWpbar, ghZ, Wp; QCD='0', QED='+1']
694 
695 % SGG
696 [ghZbar, ghZ, H; QCD='0', QED='+1']
697 [ghWpbar, ghWp, H; QCD='0', QED='+1']
698 [ghWmbar, ghWm, H; QCD='0', QED='+1']
699 [ghWpbar, ghWp, chi; QCD='0', QED='+1']
700 [ghWmbar, ghWm, chi; QCD='0', QED='+1']
701 [ghWpbar, ghA, phip; QCD='0', QED='+1']
702 [ghWmbar, ghA, phim; QCD='0', QED='+1']
703 [ghWpbar, ghZ, phip; QCD='0', QED='+1']
704 [ghWmbar, ghZ, phim; QCD='0', QED='+1']
705 [ghZbar, ghWp, phim; QCD='0', QED='+1']
706 [ghZbar, ghWm, phip; QCD='0', QED='+1']
707 
708 )EOF";
709 
710 std::string HepLib::QGRAF::Models::QCD = R"EOF(
711 [ model = 'qcd Model' ]
712 %------------------------------------
713 % Propagators
714 %------------------------------------
715 % quark
716 [q, qbar, -]
717 [Q, Qbar, -]
718 % gluon and its ghost:
719 [gh, ghbar, -]
720 [g, g, +, notadpole]
721 % external photon
722 [A, A, +, external]
723 %------------------------------------
724 % Vertices
725 %------------------------------------
726 % QCD
727 [qbar, q, g; QCD='+1']
728 [Qbar, Q, g; QCD='+1']
729 [g, g, g, g; QCD='+2']
730 [g, g, g; QCD='+1']
731 [ghbar, gh, g; QCD='+1']
732 % external
733 [qbar, q, A; QCD='+0']
734 [Qbar, Q, A; QCD='+0']
735 )EOF";
Basic header file.
HEP header file.
IBP header file.
QGRAF header file.
SecDec header file.
class for Dirac Gamma object
Definition: HEP.h:437
void form_print(const FormFormat &c, unsigned level=0) const
Definition: DGamma.cpp:130
void print(const print_dflt &c, unsigned level=0) const
Definition: DGamma.cpp:114
void fc_print(const FCFormat &c, unsigned level=0) const
Definition: DGamma.cpp:139
class for Levi-Civita object https://onlinelibrary.wiley.com/doi/pdf/10.1002/9783527630097....
Definition: HEP.h:386
void fc_print(const FCFormat &c, unsigned level=0) const
Definition: Eps.cpp:121
void form_print(const FormFormat &c, unsigned level=0) const
Eps in FORM format https://onlinelibrary.wiley.com/doi/pdf/10.1002/9783527630097.app3 to make Tr(g5,...
Definition: Eps.cpp:112
void print(const print_dflt &c, unsigned level=0) const
Definition: Eps.cpp:96
class for FCFormat Output
Definition: HEP.h:71
static void ncmul_print(const ncmul &p, const FCFormat &c, unsigned level=0)
Definition: Basic.cpp:163
static int Version
Definition: IBP.h:82
static int buffer_size
Definition: BASIC.h:800
static void power_print(const power &p, const FormFormat &c, unsigned level=0)
Definition: Basic.cpp:55
static int buffer_size
Definition: BASIC.h:822
class for index object
Definition: HEP.h:104
void print(const print_context &c, unsigned level=0) const
Definition: Basic.cpp:196
static GiNaC::exmap Dimension
Definition: HEP.h:109
static string KArgs
Definition: IBP.h:93
class for Mathematica Format Output
Definition: BASIC.h:843
class for Pair object
Definition: HEP.h:322
void form_print(const FormFormat &c, unsigned level=0) const
FormFormat print function.
Definition: Pair.cpp:102
void print(const print_dflt &c, unsigned level=0) const
default print function
Definition: Pair.cpp:93
void fc_print(const FCFormat &c, unsigned level=0) const
FCFormat print function.
Definition: Pair.cpp:113
static string QuarkFF
Definition: QGRAF.h:161
static string SM
Definition: QGRAF.h:162
static string QCD
Definition: QGRAF.h:163
static string GluonFF
Definition: QGRAF.h:160
static string Style
Definition: QGRAF.h:77
static bool use_dlclose
Definition: SD.h:416
static string cpp
Definition: SD.h:417
class for SUNF4 object
Definition: HEP.h:278
void form_print(const FormFormat &c, unsigned level=0) const
print the Form Format
Definition: Basic.cpp:543
void fc_print(const FCFormat &c, unsigned level=0) const
Definition: Basic.cpp:534
void print(const print_dflt &c, unsigned level=0) const
normal priint
Definition: Basic.cpp:530
class for SUNF object
Definition: HEP.h:233
void print(const print_dflt &c, unsigned level=0) const
Definition: Basic.cpp:431
void form_print(const FormFormat &c, unsigned level=0) const
Definition: Basic.cpp:435
void fc_print(const FCFormat &c, unsigned level=0) const
Definition: Basic.cpp:439
class for SUNT object
Definition: HEP.h:189
void form_print(const FormFormat &c, unsigned level=0) const
Definition: Basic.cpp:328
void fc_print(const FCFormat &c, unsigned level=0) const
Definition: Basic.cpp:339
void print(const print_dflt &c, unsigned level=0) const
Definition: Basic.cpp:343
class extended to GiNaC symbol class, represent a positive symbol
Definition: BASIC.h:113
static std::map< std::string, ex > Table
Definition: BASIC.h:160
static exmap vmap
Definition: BASIC.h:167
static string KArgs
Definition: IBP.h:117
class for vector object
Definition: HEP.h:149
void print(const print_context &c, unsigned level=0) const
Definition: Basic.cpp:269
XIntegral Class, preface to SecDec.
Definition: BASIC.h:740
void print(const print_dflt &c, unsigned level=0) const
Definition: BASIC.cpp:1674
class extended to GiNaC symbol class, pure imaginary symbol
Definition: BASIC.h:183
static std::map< std::string, ex > Table
Definition: BASIC.h:230
map< ex, string, ex_is_less > LineTeX
Definition: Init.cpp:180
map< ex, string, ex_is_less > VerTeX
Definition: Init.cpp:181
map< ex, string, ex_is_less > InOutTeX
Definition: Init.cpp:182
HepLib namespace.
Definition: BASIC.cpp:17
string INC_FLAGS
Definition: Init.cpp:160
bool form_using_dim4
Definition: Init.cpp:209
const Symbol NA
ex w9
Definition: BASIC.h:499
ex w8
Definition: BASIC.h:499
const int form_expand_tr
Definition: Init.cpp:202
const iSymbol iEpsilon
ex w7
Definition: BASIC.h:499
MMAFormat mout
ex w5
Definition: BASIC.h:499
int GiNaC_Parallel_Process
Definition: Init.cpp:143
int _o_
Definition: Init.cpp:103
const Symbol gs
const int o_form
Definition: Init.cpp:109
int NNDigits
Definition: Init.cpp:155
const int o_fermat
Definition: Init.cpp:106
const int o_none
Definition: Init.cpp:104
const int o_flint
Definition: Init.cpp:110
exmap MapPreSP
Definition: Init.cpp:335
const int form_expand_none
Definition: Init.cpp:201
string Version
Definition: Init.cpp:82
ex w0
Definition: BASIC.h:499
const Symbol NF
map< string, bool > GiNaC_Parallel_RM
Definition: Init.cpp:148
exmap SP_map
Definition: Init.cpp:179
map< ex, long long, ex_is_less > fermat_weight
Definition: Init.cpp:152
const Symbol ep
const int o_fermatfD
Definition: Init.cpp:107
int form_expand_mode
Definition: Init.cpp:206
const Symbol eps
bool Apart_using_fermat
Definition: Init.cpp:207
map< string, int > GiNaC_Parallel_NB
Definition: Init.cpp:147
const int form_trace_all
Definition: Init.cpp:196
const int o_fermat_form
Definition: Init.cpp:115
ex w4
Definition: BASIC.h:499
const int form_expand_ci
Definition: Init.cpp:203
slong error_pass_dp
Definition: Init.cpp:344
int form_trace_mode
Definition: Init.cpp:199
bool form_using_su3
Definition: Init.cpp:208
string LIB_FLAGS
Definition: Init.cpp:161
bool using_cache
Definition: Init.cpp:153
bool Debug
Definition: Init.cpp:141
ex w
Definition: Init.cpp:90
const int form_trace_each_all
Definition: Init.cpp:197
const Symbol vs
const Symbol d
int fermat_using_array
Definition: Init.cpp:151
map< string, int > GiNaC_Parallel_NP
Definition: Init.cpp:144
const int form_expand_all
Definition: Init.cpp:205
map< string, int > GiNaC_Parallel_Verb
Definition: Init.cpp:145
map< string, bool > GiNaC_Parallel_ReWR
Definition: Init.cpp:150
const int o_normal
Definition: Init.cpp:105
const Symbol mu
const Symbol CA
const Symbol TF
const int o_flintf
Definition: Init.cpp:111
const Symbol CF
const int o_flintfD
Definition: Init.cpp:112
const int o_normal_fermat
Definition: Init.cpp:113
string InstallPrefix
Definition: Init.cpp:159
const ex iEpsilonN
Definition: Init.cpp:138
FCFormat fcout
const Symbol epz
bool In_GiNaC_Parallel
Definition: Init.cpp:142
const Symbol as
bool form_using_gamma5
Definition: Init.cpp:210
int Verbose
Definition: Init.cpp:139
const int form_trace_each_each
Definition: Init.cpp:198
const int form_trace_auto
Definition: Init.cpp:195
bool dir_exists(string dir)
Definition: BASIC.h:297
const int o_normal_form
Definition: Init.cpp:114
long long cache_limit
Definition: Init.cpp:154
const Symbol nL
const Symbol nH
ex w1
Definition: BASIC.h:499
unsigned nopat
Definition: Init.cpp:88
ex w3
Definition: BASIC.h:499
void set_precision(long prec, bool push)
Definition: BASIC.cpp:2304
const Symbol iet
ex w6
Definition: BASIC.h:499
map< string, string > GiNaC_Parallel_PRE
Definition: Init.cpp:149
const int form_expand_li
Definition: Init.cpp:204
const int o_fermatN
Definition: Init.cpp:108
std::stack< cln::float_format_t > cln_prec_stack
Definition: Init.cpp:350
ex w2
Definition: BASIC.h:499
std::stack< long > digits_stack
Definition: Init.cpp:351
const Symbol vz
string PRE
Definition: Init.cpp:140
const Symbol NaN
int GiNaC_Parallel_Batch
Definition: Init.cpp:146