25 string install_prefix() {
26 static string wdir =
"";
30 dladdr((
void*)install_prefix, &dl_info);
31 path = dl_info.dli_fname;
32 wdir = path.substr(0, path.find_last_of(
'/'));
34 wdir = path.substr(0, path.find_last_of(
'/'));
47 GiNaC::registered_class_info Symbol::reg_info =
48 GiNaC::registered_class_info(GiNaC::registered_class_options(
"Symbol",
"symbol",
typeid(Symbol)));
50 GiNaC::registered_class_info iSymbol::reg_info =
51 GiNaC::registered_class_info(GiNaC::registered_class_options(
"iSymbol",
"symbol",
typeid(iSymbol)));
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));
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));
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));
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));
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));
68 GiNaC::registered_class_info SUNF4::reg_info =
71 GiNaC::registered_class_info DGamma::reg_info =
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));
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));
88 unsigned nopat = GiNaC::subs_options::no_pattern;
169 SD::CppFormat::_init::_init() {
170 set_print_func<numeric, CppFormat>(CppFormat::print_numeric);
172 SD::CppFormat::_init SD::CppFormat::CppFormat_init;
174 set_print_func<numeric, ExFormat>(ExFormat::print_numeric);
177 int SD::VEO_Digits = 10;
184 FCFormat::_init::_init() {
187 FCFormat::_init FCFormat::FCFormat_init;
189 FormFormat::_init::_init() {
192 FormFormat::_init FormFormat::FormFormat_init;
212 QGRAF::Process::_init::_init() {
215 auto qbar =
Symbol(
"qbar");
217 auto lbar =
Symbol(
"lbar");
219 auto ghbar =
Symbol(
"ghbar");
222 auto Qbar =
Symbol(
"Qbar");
224 auto Cbar =
Symbol(
"Cbar");
226 auto Bbar =
Symbol(
"Bbar");
228 auto nbar =
Symbol(
"nbar");
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";
249 VerTeX[lst{Qbar, e, nbar}] =
"[crossed dot]";
250 VerTeX[lst{nbar, e, g}] =
"[crossed dot]";
278 Symbol ghWmbar(
"ghWmbar");
280 Symbol ghWpbar(
"ghWpbar");
295 Symbol ntaubar(
"ntaubar");
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++) {
307 LineTeX[fs.op(i)] =
"fermion ,edge label="+si;
308 LineTeX[fs2.op(i)] =
"anti fermion ,edge label="+si;
311 LineTeX[Wp] =
"photon, edge label=$W$";
312 LineTeX[Wm] =
"photon, edge label=$W$";
313 LineTeX[Z] =
"photon, edge label=$Z$";
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$";
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$"};
324 for(
int i=0; i<ghs.nops(); i++) {
326 LineTeX[ghs.op(i)] =
"ghost ,edge label="+si;
327 LineTeX[ghs2.op(i)] =
"anti ghost ,edge label="+si;
331 QGRAF::Process::_init QGRAF::Process::Process_init;
341 int QCD::FF::cur_mode = 0;
347 int DEX::Threads = 8;
352 _global_init::_init::_init() {
357 auto opath = getenv(
"PATH");
358 if(opath != NULL) oss <<
":" << opath;
359 setenv(
"PATH", oss.str().c_str(),
true);
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(); });
376 cln::cl_inhibit_floating_point_underflow =
true;
380 _global_init::_init _global_init::init_object;
388 ((<sign><symmetry_factor>)*
389 <in_loop>InField(<field>,<field_index>,<momentum>)*
391 <back><out_loop>OutField(<field>,<field_index>,<momentum>)*
393 <back><propagator_loop>Propagator(
394 <back>Field(<field>,<field_index>),
395 <back>Field(<dual-field>,<dual-field_index>),
398 <back><vertex_loop>Vertex(
399 <back><ray_loop>Field(<field>,<field_index>,<momentum>),
410 [ model = 'Gluon FF Model' ]
417 [qbar, q, g; QCD='+1']
418 [Qbar, Q, g; QCD='+1']
419 [g, g, g, g; QCD='+2']
421 [ghbar, gh, g; QCD='+1']
422 [nbar, n, g; QCD='+1']
423 [nbar, e, g; QCD='+0']
428 [ model = 'Quark FF Model' ]
431 [e, ebar, -, external]
435 [qbar, q, g; QCD='+1']
436 [Qbar, Q, g; QCD='+1']
437 [g, g, g, g; QCD='+2']
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']
448 % From Boehm, Denner, Joos @ Feynman Gauge
449 [ model = 'Standard Model' ]
451 %------------------------------------
453 %------------------------------------
463 % gluon and its ghost:
467 % V: EWSM gauge bosons
480 % G: Faddeev-Popov Ghosts
491 %------------------------------------
493 %------------------------------------
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']
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']
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']
514 [Wp, Wm, A; QCD='0', QED='+1']
515 [Wp, Wm, Z; QCD='0', QED='+1']
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']
526 [H, H, H; QCD='0', QED='+1']
527 [H, chi, chi; QCD='0', QED='+1']
528 [H, phim, phip; QCD='0', QED='+1']
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']
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']
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']
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']
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']
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']
575 [ep, em, A; QCD='0', QED='+1']
576 [mup, mum, A; QCD='0', QED='+1']
577 [taup, taum, A; QCD='0', QED='+1']
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']
586 [ep, em, Z; QCD='0', QED='+1']
587 [mup, mum, Z; QCD='0', QED='+1']
588 [taup, taum, Z; QCD='0', QED='+1']
590 [nebar, ne, Z; QCD='0', QED='+1']
591 [nmubar, nmu, Z; QCD='0', QED='+1']
592 [ntaubar, ntau, Z; QCD='0', QED='+1']
594 [Dbar, U, Wm; QCD='0', QED='+1']
595 [Dbar, C, Wm; QCD='0', QED='+1']
596 [Dbar, T, Wm; QCD='0', QED='+1']
598 [Sbar, U, Wm; QCD='0', QED='+1']
599 [Sbar, C, Wm; QCD='0', QED='+1']
600 [Sbar, T, Wm; QCD='0', QED='+1']
602 [Bbar, U, Wm; QCD='0', QED='+1']
603 [Bbar, C, Wm; QCD='0', QED='+1']
604 [Bbar, T, Wm; QCD='0', QED='+1']
606 [Ubar, D, Wp; QCD='0', QED='+1']
607 [Ubar, S, Wp; QCD='0', QED='+1']
608 [Ubar, B, Wp; QCD='0', QED='+1']
610 [Cbar, D, Wp; QCD='0', QED='+1']
611 [Cbar, S, Wp; QCD='0', QED='+1']
612 [Cbar, B, Wp; QCD='0', QED='+1']
614 [Tbar, D, Wp; QCD='0', QED='+1']
615 [Tbar, S, Wp; QCD='0', QED='+1']
616 [Tbar, B, Wp; QCD='0', QED='+1']
618 [ep, ne, Wm; QCD='0', QED='+1']
619 [mup, nmu, Wm; QCD='0', QED='+1']
620 [taup, ntau, Wm; QCD='0', QED='+1']
622 [nebar, em, Wp; QCD='0', QED='+1']
623 [nmubar, mum, Wp; QCD='0', QED='+1']
624 [ntaubar, taum, Wp; QCD='0', QED='+1']
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']
634 [ep, em, H; QCD='0', QED='+1']
635 [mup, mum, H; QCD='0', QED='+1']
636 [taup, taum, H; QCD='0', QED='+1']
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']
645 [ep, em, chi; QCD='0', QED='+1']
646 [mup, mum, chi; QCD='0', QED='+1']
647 [taup, taum, chi; QCD='0', QED='+1']
649 [Dbar, U, phim; QCD='0', QED='+1']
650 [Dbar, C, phim; QCD='0', QED='+1']
651 [Dbar, T, phim; QCD='0', QED='+1']
653 [Sbar, U, phim; QCD='0', QED='+1']
654 [Sbar, C, phim; QCD='0', QED='+1']
655 [Sbar, T, phim; QCD='0', QED='+1']
657 [Bbar, U, phim; QCD='0', QED='+1']
658 [Bbar, C, phim; QCD='0', QED='+1']
659 [Bbar, T, phim; QCD='0', QED='+1']
661 [Ubar, D, phip; QCD='0', QED='+1']
662 [Ubar, S, phip; QCD='0', QED='+1']
663 [Ubar, B, phip; QCD='0', QED='+1']
665 [Cbar, D, phip; QCD='0', QED='+1']
666 [Cbar, S, phip; QCD='0', QED='+1']
667 [Cbar, B, phip; QCD='0', QED='+1']
669 [Tbar, D, phip; QCD='0', QED='+1']
670 [Tbar, S, phip; QCD='0', QED='+1']
671 [Tbar, B, phip; QCD='0', QED='+1']
673 [ep, ne, phim; QCD='0', QED='+1']
674 [mup, nmu, phim; QCD='0', QED='+1']
675 [taup, ntau, phim; QCD='0', QED='+1']
677 [nebar, em, phip; QCD='0', QED='+1']
678 [nmubar, mum, phip; QCD='0', QED='+1']
679 [ntaubar, taum, phip; QCD='0', QED='+1']
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']
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']
711 [ model = 'qcd Model' ]
712 %------------------------------------
714 %------------------------------------
718 % gluon and its ghost:
723 %------------------------------------
725 %------------------------------------
727 [qbar, q, g; QCD='+1']
728 [Qbar, Q, g; QCD='+1']
729 [g, g, g, g; QCD='+2']
731 [ghbar, gh, g; QCD='+1']
733 [qbar, q, A; QCD='+0']
734 [Qbar, Q, A; QCD='+0']
class for Dirac Gamma object
void form_print(const FormFormat &c, unsigned level=0) const
void print(const print_dflt &c, unsigned level=0) const
void fc_print(const FCFormat &c, unsigned level=0) const
class for Levi-Civita object https://onlinelibrary.wiley.com/doi/pdf/10.1002/9783527630097....
void fc_print(const FCFormat &c, unsigned level=0) const
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,...
void print(const print_dflt &c, unsigned level=0) const
void print(const print_context &c, unsigned level=0) const
static GiNaC::exmap Dimension
void form_print(const FormFormat &c, unsigned level=0) const
FormFormat print function.
void print(const print_dflt &c, unsigned level=0) const
default print function
void fc_print(const FCFormat &c, unsigned level=0) const
FCFormat print function.
void form_print(const FormFormat &c, unsigned level=0) const
print the Form Format
void fc_print(const FCFormat &c, unsigned level=0) const
void print(const print_dflt &c, unsigned level=0) const
normal priint
void print(const print_dflt &c, unsigned level=0) const
void form_print(const FormFormat &c, unsigned level=0) const
void fc_print(const FCFormat &c, unsigned level=0) const
void form_print(const FormFormat &c, unsigned level=0) const
void fc_print(const FCFormat &c, unsigned level=0) const
void print(const print_dflt &c, unsigned level=0) const
class extended to GiNaC symbol class, represent a positive symbol
static std::map< std::string, ex > Table
void print(const print_context &c, unsigned level=0) const
XIntegral Class, preface to SecDec.
void print(const print_dflt &c, unsigned level=0) const
class extended to GiNaC symbol class, pure imaginary symbol
static std::map< std::string, ex > Table
map< ex, string, ex_is_less > LineTeX
map< ex, string, ex_is_less > VerTeX
map< ex, string, ex_is_less > InOutTeX
int GiNaC_Parallel_Process
const int form_expand_none
map< string, bool > GiNaC_Parallel_RM
map< ex, long long, ex_is_less > fermat_weight
map< string, int > GiNaC_Parallel_NB
const int form_trace_each_all
map< string, int > GiNaC_Parallel_NP
const int form_expand_all
map< string, int > GiNaC_Parallel_Verb
map< string, bool > GiNaC_Parallel_ReWR
const int o_normal_fermat
const int form_trace_each_each
const int form_trace_auto
bool dir_exists(string dir)
void set_precision(long prec, bool push)
map< string, string > GiNaC_Parallel_PRE
std::stack< cln::float_format_t > cln_prec_stack
std::stack< long > digits_stack