10#include <gsl/gsl_sf.h>
13:
RGEvolutor(dim_i, scheme, order, order_qed), model(model), V(dim_i,0.),
Vi(dim_i,0.),
14 AA(dim_i,0.), BB(dim_i,0.), CC(dim_i,0.), DD(dim_i,0.), EE(dim_i,0.), FF(dim_i,0.),
15 RR(dim_i,0.), e(dim_i,0.), vavi(0,0.), vbvi(0,0.), vcvi(0,0.), vdvi(0,0.),
16 vevi(0,0.), vfvi(0,0.), vrvi(0,0.),vaevi(0,0.), vbbvi(0,0.), vbdvi(0,0.), vbevi(0,0.),
17 vdbvi(0,0.), vdevi(0,0.), veavi(0,0.), vebvi(0,0.), vedvi(0,0.), veevi(0,0.), vbeevi(0,0.),
18 vebevi(0,0.), veebvi(0,0.), vbbevi(0,0.), vbebvi(0,0.), vebbvi(0,0.), dim(dim_i)
57 if(L == 1){
nd = 3;
nu = 2;}
65 for(
unsigned int i = 0; i <
dim; i++){
66 a[L][i] =
e(i).real()/2./b0;
67 for (
unsigned int j = 0; j <
dim; j++){
68 for (
unsigned int k = 0; k <
dim; k++){
69 b[L][i][j][k] =
V(i, k).real() *
Vi(k, j).real();
84 double cutoff = 0.000000001 ;
86 for(l = 0; l <
dim; l++){
87 for(i = 0; i <
dim; i++){
88 for(j = 0; j <
dim; j++){
89 for(m = 0; m <
dim; m++){
91 if(fabs(
V(l, i).real() *
AA(i, j).real() *
Vi(j, m).real()) > cutoff){
97 vavi.push_back(
V(l, i).real() *
AA(i, j).real() *
Vi(j, m).real());
100 if(fabs(
V(l, i).real() *
BB(i, j).real() *
Vi(j, m).real()) > cutoff){
106 vbvi.push_back(
V(l, i).real() *
BB(i, j).real() *
Vi(j, m).real());
109 if(fabs(
V(l, i).real() *
CC(i, j).real() *
Vi(j, m).real()) > cutoff){
115 vcvi.push_back(
V(l, i).real() *
CC(i, j).real() *
Vi(j, m).real());
118 if(fabs(
V(l, i).real() *
DD(i, j).real() *
Vi(j, m).real()) > cutoff){
124 vdvi.push_back(
V(l, i).real() *
DD(i, j).real() *
Vi(j, m).real());
127 if(fabs(
V(l, i).real() *
EE(i, j).real() *
Vi(j, m).real()) > cutoff){
133 vevi.push_back(
V(l, i).real() *
EE(i, j).real() *
Vi(j, m).real());
136 if(fabs(
V(l, i).real() *
FF(i, j).real() *
Vi(j, m).real()) > cutoff){
142 vfvi.push_back(
V(l, i).real() *
FF(i, j).real() *
Vi(j, m).real());
145 if(fabs(
V(l, i).real() *
RR(i, j).real() *
Vi(j, m).real()) > cutoff){
151 vrvi.push_back(
V(l, i).real() *
RR(i, j).real() *
Vi(j, m).real());
155 for(p = 0; p <
dim; p++){
157 if(fabs(
V(l, i).real() *
AA(i, p).real() *
EE(p, j).real() *
Vi(j, m).real()) > cutoff){
164 vaevi.push_back(
V(l, i).real() *
AA(i, p).real() *
EE(p, j).real() *
Vi(j, m).real());
167 if(fabs(
V(l, i).real() *
BB(i, p).real() *
BB(p, j).real() *
Vi(j, m).real()) > cutoff){
174 vbbvi.push_back(
V(l, i).real() *
BB(i, p).real() *
BB(p, j).real() *
Vi(j, m).real());
177 if(fabs(
V(l, i).real() *
BB(i, p).real() *
DD(p, j).real() *
Vi(j, m).real()) > cutoff){
184 vbdvi.push_back(
V(l, i).real() *
BB(i, p).real() *
DD(p, j).real() *
Vi(j, m).real());
187 if(fabs(
V(l, i).real() *
BB(i, p).real() *
EE(p, j).real() *
Vi(j, m).real()) > cutoff){
194 vbevi.push_back(
V(l, i).real() *
BB(i, p).real() *
EE(p, j).real() *
Vi(j, m).real());
197 if(fabs(
V(l, i).real() *
DD(i, p).real() *
BB(p, j).real() *
Vi(j, m).real()) > cutoff){
204 vdbvi.push_back(
V(l, i).real() *
DD(i, p).real() *
BB(p, j).real() *
Vi(j, m).real());
207 if(fabs(
V(l, i).real() *
DD(i, p).real() *
EE(p, j).real() *
Vi(j, m).real()) > cutoff){
214 vdevi.push_back(
V(l, i).real() *
DD(i, p).real() *
EE(p, j).real() *
Vi(j, m).real());
217 if(fabs(
V(l, i).real() *
EE(i, p).real() *
AA(p, j).real() *
Vi(j, m).real()) > cutoff){
224 veavi.push_back(
V(l, i).real() *
EE(i, p).real() *
AA(p, j).real() *
Vi(j, m).real());
227 if(fabs(
V(l, i).real() *
EE(i, p).real() *
BB(p, j).real() *
Vi(j, m).real()) > cutoff){
234 vebvi.push_back(
V(l, i).real() *
EE(i, p).real() *
BB(p, j).real() *
Vi(j, m).real());
237 if(fabs(
V(l, i).real() *
EE(i, p).real() *
DD(p, j).real() *
Vi(j, m).real()) > cutoff){
244 vedvi.push_back(
V(l, i).real() *
EE(i, p).real() *
DD(p, j).real() *
Vi(j, m).real());
247 if(fabs(
V(l, i).real() *
EE(i, p).real() *
EE(p, j).real() *
Vi(j, m).real()) > cutoff){
254 veevi.push_back(
V(l, i).real() *
EE(i, p).real() *
EE(p, j).real() *
Vi(j, m).real());
258 for(q = 0; q <
dim; q++){
260 if(fabs(
V(l, i).real() *
BB(i, p).real() *
EE(p, q).real() *
EE(q, j).real() *
Vi(j, m).real()) > cutoff){
268 vbeevi.push_back(
V(l, i).real() *
BB(i, p).real() *
EE(p, q).real() *
EE(q, j).real() *
Vi(j, m).real());
272 if (fabs(
V(l, i).real() *
EE(i, p).real() *
BB(p, q).real() *
EE(q, j).real() *
Vi(j, m).real()) > cutoff) {
280 vebevi.push_back(
V(l, i).real() *
EE(i, p).real() *
BB(p, q).real() *
EE(q, j).real() *
Vi(j, m).real());
283 if (fabs(
V(l, i).real() *
EE(i, p).real() *
EE(p, q).real() *
BB(q, j).real() *
Vi(j, m).real()) > cutoff) {
291 veebvi.push_back(
V(l, i).real() *
EE(i, p).real() *
EE(p, q).real() *
BB(q, j).real() *
Vi(j, m).real());
294 if (fabs(
V(l, i).real() *
BB(i, p).real() *
BB(p, q).real() *
EE(q, j).real() *
Vi(j, m).real()) > cutoff) {
302 vbbevi.push_back(
V(l, i).real() *
BB(i, p).real() *
BB(p, q).real() *
EE(q, j).real() *
Vi(j, m).real());
305 if (fabs(
V(l, i).real() *
BB(i, p).real() *
EE(p, q).real() *
BB(q, j).real() *
Vi(j, m).real()) > cutoff) {
313 vbebvi.push_back(
V(l, i).real() *
BB(i, p).real() *
EE(p, q).real() *
BB(q, j).real() *
Vi(j, m).real());
316 if (fabs(
V(l, i).real() *
EE(i, p).real() *
BB(p, q).real() *
BB(q, j).real() *
Vi(j, m).real()) > cutoff) {
324 vebbvi.push_back(
V(l, i).real() *
EE(i, p).real() *
BB(p, q).real() *
BB(q, j).real() *
Vi(j, m).real());
349 unsigned int nf = n_u + n_d;
352 gslpp::matrix<double> gammaDF1(
dim, 0.);
354 zeta3 = gsl_sf_zeta_int(3);
359 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
360 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): wrong number of flavours");
363 gammaDF1(0,0) = -4. ;
364 gammaDF1(0,1) = 8./3. ;
365 gammaDF1(0,3) = -2./9.;
368 gammaDF1(1,3) = 4./3.;
370 gammaDF1(2,3) = -52./3.;
373 gammaDF1(3,2) = -40./9.;
374 gammaDF1(3,3) = -100./9.;
375 gammaDF1(3,4) = 4./9.;
376 gammaDF1(3,5) = 5./6.;
378 gammaDF1(4,3) = -256./3.;
381 gammaDF1(5,2) = -256./9.;
382 gammaDF1(5,3) = 56./9.;
383 gammaDF1(5,4) = 40./9.;
384 gammaDF1(5,5) = -2./3.;
389 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
390 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): wrong number of flavours");
395 gammaDF1(0,0) = -355./9.;
396 gammaDF1(0,1) = -502./27.;
397 gammaDF1(0,2) = -1412./243.;
398 gammaDF1(0,3) = -1369./243.;
399 gammaDF1(0,4) = 134./243.;
400 gammaDF1(0,5) = -35./162.;
402 gammaDF1(1,0) = -35./3.;
403 gammaDF1(1,1) = -28./3.;
404 gammaDF1(1,2) = -416./81.;
405 gammaDF1(1,3) = 1280./81.;
406 gammaDF1(1,4) = 56./81.;
407 gammaDF1(1,5) = 35./27.;
409 gammaDF1(2,2) = -4468./81.;
410 gammaDF1(2,3) = -31469./81.;
411 gammaDF1(2,4) = 400./81.;
412 gammaDF1(2,5) = 3373./108.;
414 gammaDF1(3,2) = -8158./243.;
415 gammaDF1(3,3) = -59399./243.;
416 gammaDF1(3,4) = 269./486.;
417 gammaDF1(3,5) = 12899./648.;
419 gammaDF1(4,2) = -251680./81.;
420 gammaDF1(4,3) = -128648./81.;
421 gammaDF1(4,4) = 23836./81.;
422 gammaDF1(4,5) = 6106./27.;
424 gammaDF1(5,2) = 58640./243.;
425 gammaDF1(5,3) = -26348./243.;
426 gammaDF1(5,4) = -14324./243.;
427 gammaDF1(5,5) = -2551./162.;
433 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
434 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): wrong number of flavours");
439 gammaDF1(0,0) = -12773./18. + zeta3 * 1472./3.;
440 gammaDF1(0,1) = 745./9. - zeta3 *4288./9.;
441 gammaDF1(0,2) = 63187./13122. - zeta3 * 1360./81.;
442 gammaDF1(0,3) = -981796./6561. - zeta3 * 776./81.;
443 gammaDF1(0,4) = -202663./52488. + zeta3 * 124./81.;
444 gammaDF1(0,5) = -24973./69984. + zeta3 * 100./27.;
446 gammaDF1(1,0) = 1177./2. - zeta3 * 2144.;
447 gammaDF1(1,1) = 306. - zeta3 * 224.;
448 gammaDF1(1,2) = 110477./2187. + zeta3 * 2720./27.;
449 gammaDF1(1,3) = 133529./8748. - zeta3 * 2768./27.;
450 gammaDF1(1,4) = -42929./8748. - zeta3 * 248./27.;
451 gammaDF1(1,5) = 354319./11664. - zeta3 * 110./9.;
453 gammaDF1(2,2) = -3572528./2187. - zeta3 * 608./27.;
454 gammaDF1(2,3) = -58158773./8748. + zeta3 * 61424./27.;
455 gammaDF1(2,4) = 552601./4374. - zeta3 * 496./27.;
456 gammaDF1(2,5) = 6989171./11664. - zeta3 * 2821./9.;
458 gammaDF1(3,2) = -1651004./6561. + zeta3 * 88720./81.;
459 gammaDF1(3,3) = -155405353./52488 + zeta3 * 54272./81.;
460 gammaDF1(3,4) = 1174159./52488. - zeta3 * 9274./81.;
461 gammaDF1(3,5) = 10278809./34992. - zeta3 * 3100./27.;
463 gammaDF1(4,2) = -147978032./2187. + zeta3 * 87040./27.;
464 gammaDF1(4,3) = -168491372./2187. + zeta3 * 324416./27.;
465 gammaDF1(4,4) = 11213042./2187. - zeta3 * 13984./27.;
466 gammaDF1(4,5) = 17850329./2916. - zeta3 * 31420./9.;
468 gammaDF1(5,2) = 136797922./6561. + zeta3 * 721408./81.;
469 gammaDF1(5,3) = -72614473./13122. - zeta3 * 166432./81.;
470 gammaDF1(5,4) = -9288181./6561. - zeta3 * 95032./81.;
471 gammaDF1(5,5) = -16664027./17496. - zeta3 * 7552./27.;
476 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
477 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): wrong number of flavours");
480 gammaDF1(0,0) = -8./3.;
481 gammaDF1(0,6) = -32./27.;
483 gammaDF1(1,1) = -8./3.;
484 gammaDF1(1,6) = -8./9.;
486 gammaDF1(2,6) = -16./9.;
488 gammaDF1(3,6) = 32./27.;
490 gammaDF1(4,6) = -112./9.;
492 gammaDF1(5,6) = 512./27.;
502 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
503 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): wrong number of flavours");
507 gammaDF1(0,0) = 169./9.;
508 gammaDF1(0,1) = 100./27.;
509 gammaDF1(0,3) = 254./729.;
510 gammaDF1(0,6) = -2272./729.;
512 gammaDF1(1,0) = 50./3.;
513 gammaDF1(1,1) = -8./3.;
514 gammaDF1(1,3) = 1076./243.;
515 gammaDF1(1,6) = 1952./243.;
517 gammaDF1(2,3) = 11116./243.;
518 gammaDF1(2,5) = -14./3.;
519 gammaDF1(2,6) = -6752./243.;
521 gammaDF1(3,2) = 280./27.;
522 gammaDF1(3,3) = 18763./729.;
523 gammaDF1(3,4) = -28./27.;
524 gammaDF1(3,5) = -35./18.;
525 gammaDF1(3,6) = -2192./729.;
527 gammaDF1(4,3) = 111136./243.;
528 gammaDF1(4,5) = -140./3.;
529 gammaDF1(4,6) = -84032./243.;
531 gammaDF1(5,2) = 2944./27.;
532 gammaDF1(5,3) = 193312./729.;
533 gammaDF1(5,4) = -280./27.;
534 gammaDF1(5,5) = -175./9.;
535 gammaDF1(5,6) = -37856./729.;
544 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
545 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): wrong number of flavours");
548 gammaDF1(0,6)= -11680./2187.;
549 gammaDF1(0,7)= -416./81.;
551 gammaDF1(1,6)= -2920./729.;
552 gammaDF1(1,7)= -104./27.;
554 gammaDF1(2,6)= -39752./729.;
555 gammaDF1(2,7)= -136./27.;
557 gammaDF1(3,6)= 1024./2187.;
558 gammaDF1(3,7)= -448./81.;
560 gammaDF1(4,6)= -381344./729.;
561 gammaDF1(4,7)= -15616./27.;
563 gammaDF1(5,6)= 24832./2187.;
564 gammaDF1(5,7)= -7936./81.;
570 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
571 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): wrong number of flavours");
574 gammaDF1(0,6)= -1359190./19683. + zeta3 * 6976./243.;
576 gammaDF1(1,6)= -229696./6561 - zeta3 * 3584./81.;
578 gammaDF1(2,6)= -1290092./6561 + zeta3 * 3200./81.;
580 gammaDF1(3,6)= -819971./19683. - zeta3 * 19936./243;
582 gammaDF1(4,6)= -16821944./6561 + zeta3 * 30464./81.;
584 gammaDF1(5,6)= -17787368./19683. - zeta3 * 286720./243.;
590 throw std::runtime_error(
"EvolBsmm::AnomalousDimension(): order not implemented");
603 B01S = -22./9., B11S = -308./27.;
605 double B00E = 80./9., B01E = 176./9.;
607 double b1 = B10S/(2. * B00S * B00S), b2 = B20S/(4. * B00S * B00S * B00S) - b1 * b1 ,
608 b3 = B01S/(2. * B00S * B00E), b4 = B11S /(4. * B00S * B00S * B00E) - 2 * b1 * b3,
609 b5 = B01E/(2. * B00S * B00E) - b1;
613 gslpp::matrix<double> B(
dim, 0.);
614 gslpp::matrix<double> W10T(
dim, 0.);
615 gslpp::matrix<double> W20T(
dim, 0.);
616 gslpp::matrix<double> W30T(
dim, 0.);
617 gslpp::matrix<double> W01T(
dim, 0.);
618 gslpp::matrix<double> W02T(
dim, 0.);
619 gslpp::matrix<double> W11T(
dim, 0.);
620 gslpp::matrix<double> W21T(
dim, 0.);
637 B =
Vi.real() * (W30T - b1 * W20T - b2 * W10T) *
V.real();
642 B =
Vi.real() * (W20T - b1 * W10T) *
V.real();
647 B =
Vi.real() * (W21T - b1 * W11T - b2 * W01T - b3 * W20T - b4 * W10T) *
V.real();
652 B =
Vi.real() * (W11T - b1 * W01T - b3 * W10T) *
V.real();
657 B =
Vi.real() * (W01T) *
V.real();
662 B =
Vi.real() * (W02T + W11T - (b1 + b3) * W01T - b3 * W10T) *
V.real();
667 B = b5 *
Vi.real() * (W01T) *
V.real();
671 throw std::runtime_error(
"EvolBsmm::BuiltB(): order not implemented");
687 std::stringstream out;
689 throw std::runtime_error(
"EvolDF1nlep::Df1Evol(): scheme " + out.str() +
" not implemented ");
700 std::stringstream out;
701 out <<
"M = " <<
M <<
" < mu = " <<
mu;
740 gslpp::matrix<double> resLO(
dim, 0.);
741 gslpp::matrix<double> Ueos(
dim, 0.), Ue(
dim, 0.), Ues(
dim,0.), Us(
dim,0.), Ue2os(
dim, 0.), Ue2os2(
dim, 0.), Ue2(
dim,0.), Us2(
dim,0.);
743 int L = 6 - (int) nf;
749 double B00E = 80./9.;
751 double omega = 2. * B00S , lambda = B00E /B00S ;
754 for (k = 0; k <
dim; k++) {
755 double etap = pow(
eta,
a[L][k]);
756 for (i = 0; i <
dim; i++) {
757 for (j = 0; j <
dim; j++) {
758 resLO(i, j) +=
b[L][i][j][k] * etap;
759 Ue2(i, j) = (i == j);
764 unsigned int ind = 0;
767 gslpp::vector<double> list(23, 0.);
769 list(0) =
vbeevi.size()/7.;
770 list(1) =
vebevi.size()/7.;
771 list(2) =
veebvi.size()/7.;
772 list(3) =
vbbevi.size()/7.;
773 list(4) =
vbebvi.size()/7.;
774 list(5) =
vebbvi.size()/7.;
775 list(6) =
vaevi.size()/6.;
776 list(7) =
vbbvi.size()/6.;
777 list(8) =
vbdvi.size()/6.;
778 list(9) =
vbevi.size()/6.;
779 list(10) =
vdbvi.size()/6.;
780 list(11) =
vdevi.size()/6.;
781 list(12) =
veavi.size()/6.;
782 list(13) =
vebvi.size()/6.;
783 list(14) =
vedvi.size()/6.;
784 list(15) =
veevi.size()/6.;
785 list(16) =
vavi.size()/5.;
786 list(17) =
vbvi.size()/5.;
787 list(18) =
vcvi.size()/5.;
788 list(19) =
vdvi.size()/5.;
789 list(20) =
vevi.size()/5.;
790 list(21) =
vfvi.size()/5.;
791 list(22) =
vrvi.size()/5.;
793 double max = list.max();
795 for (ind = 0; ind < max; ind++) {
799 Ue2os(
vbeevi[7 * ind],
vbeevi[7 * ind + 5]) +=
vbeevi[7 * ind + 6] *
H(
vbeevi[7 * ind + 1],
vbeevi[7 * ind + 2],
vbeevi[7 * ind + 3],
vbeevi[7 * ind + 4], 2, 4, 4,
mu,
M, nf);
803 Ue2os(
vebevi[7 * ind],
vebevi[7 * ind + 5]) +=
vebevi[7 * ind + 6] *
H(
vebevi[7 * ind + 1],
vebevi[7 * ind + 2],
vebevi[7 * ind + 3],
vebevi[7 * ind + 4], 4, 2, 4,
mu,
M, nf);
807 Ue2os(
veebvi[7 * ind],
veebvi[7 * ind + 5]) +=
veebvi[7 * ind + 6] *
H(
veebvi[7 * ind + 1],
veebvi[7 * ind + 2],
veebvi[7 * ind + 3],
veebvi[7 * ind + 4], 4, 4, 2,
mu,
M, nf);
811 Ues(
vbbevi[7 * ind],
vbbevi[7 * ind + 5]) +=
vbbevi[7 * ind + 6] *
H(
vbbevi[7 * ind + 1],
vbbevi[7 * ind + 2],
vbbevi[7 * ind + 3],
vbbevi[7 * ind + 4], 2, 2, 4,
mu,
M, nf);
815 Ues(
vbebvi[7 * ind],
vbebvi[7 * ind + 5]) +=
vbebvi[7 * ind + 6] *
H(
vbebvi[7 * ind + 1],
vbebvi[7 * ind + 2],
vbebvi[7 * ind + 3],
vbebvi[7 * ind + 4], 2, 4, 2,
mu,
M, nf);
819 Ues(
vebbvi[7 * ind],
vebbvi[7 * ind + 5]) +=
vebbvi[7 * ind + 6] *
H(
vebbvi[7 * ind + 1],
vebbvi[7 * ind + 2],
vebbvi[7 * ind + 3],
vebbvi[7 * ind + 4], 4, 2, 2,
mu,
M, nf);
841 if (ind < list(10)) {
845 if (ind < list(11)) {
849 if (ind < list(12)) {
854 if (ind < list(13)) {
860 if (ind < list(14)) {
865 if (ind < list(15)) {
872 if (ind < list(16)) {
874 Us2(
vavi[5 * ind],
vavi[5 * ind + 3]) += (
vavi[5 * ind + 4] *
F(
vavi[5 * ind + 1],
vavi[5 * ind + 2], 1,
mu,
M, nf));
878 if (ind < list(17)) {
884 if (ind < list(18)) {
888 if (ind < list(19)) {
893 Ue2os(
vdvi[5 * ind],
vdvi[5 * ind + 3]) += (-
vdvi[5 * ind + 4] *
F(
vdvi[5 * ind + 1],
vdvi[5 * ind + 2], 3,
mu,
M, nf));
895 if (ind < list(20)) {
897 Ueos(
vevi[5 * ind],
vevi[5 * ind + 3]) +=
vevi[5 * ind + 4] *
F(
vevi[5 * ind + 1],
vevi[5 * ind + 2], 4,
mu,
M, nf);
898 Ue2os2(
vevi[5 * ind],
vevi[5 * ind + 3]) += (
vevi[5 * ind + 4] * (
F(
vevi[5 * ind + 1],
vevi[5 * ind + 2], 5,
mu,
M, nf)
899 -
F(
vevi[5 * ind + 1],
vevi[5 * ind + 2], 4,
mu,
M, nf)));
901 if (ind < list(21)) {
903 Ue2os(
vfvi[5 * ind],
vfvi[5 * ind + 3]) += (
vfvi[5 * ind + 4] *
F(
vfvi[5 * ind + 1],
vfvi[5 * ind + 2], 4,
mu,
M, nf));
905 if (ind < list(22)) {
907 Ue2os(
vrvi[5 * ind],
vrvi[5 * ind + 3]) +=
vrvi[5 * ind + 4] *
R(
vrvi[5 * ind + 1],
vrvi[5 * ind + 2], 4,
mu,
M, nf);
915 Us2 = omega * omega * Us2;
916 Ueos = lambda * Ueos;
917 Ue = lambda * omega * Ue;
918 Ue2os2 = lambda * lambda * Ue2os2;
919 Ues = (omega * omega * lambda) * Ues;
920 Ue2os = (omega * lambda * lambda) * Ue2os;
953 throw std::runtime_error(
"Error in EvolBsmm::Df1Evol");
968 throw std::runtime_error(
"Error in EvolBsmm::Df1Evol");
972double EvolBsmm::F(
unsigned int i,
unsigned int j,
int x,
double mu,
double M,
double nf)
976 int L = 6 - (int) nf;
978 double etai = pow(
eta,
a[L][i]);
979 double etajx = pow(
eta,
a[L][j]+ x - 3.);
981 double cut = 0.000000001;
984 if(fabs(
a[L][j] + x - 3. -
a[L][i]) < cut ) value = 0;
992 result = (etajx - etai)/(
a[L][j] + x - 3. -
a[L][i]);
999double EvolBsmm::R(
unsigned int i,
unsigned int j,
int x,
double mu,
double M,
double nf)
1003 int L = 6 - (int) nf;
1005 double etai = pow(
eta,
a[L][i]);
1006 double etajx = pow(
eta,
a[L][j] + x - 3.);
1008 double cut = 0.000000001;
1011 if(fabs(
a[L][j] + x - 3. -
a[L][i]) < cut ) value = 0;
1019 result = (etajx *
logeta - ((etajx - etai)/(
a[L][j] + x - 3. -
a[L][i])))/(
a[L][j] + x - 3. -
a[L][i]);
1025double EvolBsmm::G(
unsigned int i,
unsigned int p,
unsigned int j,
int x,
int y,
double mu,
double M,
double nf)
1029 int L = 6 - (int) nf;
1031 double etai = pow(
eta,
a[L][i]);
1032 double etapx = pow(
eta,
a[L][p]+ x - 3.);
1033 double etajxy = pow(
eta,
a[L][j]+ x - 3. + y - 3.);
1035 double cut = 0.000000001;
1038 if(fabs(
a[L][j] + y - 3. -
a[L][p]) < cut && fabs(
a[L][p] + x - 3. -
a[L][i]) < cut ) value = 0;
1039 else if(fabs(
a[L][j] + y - 3. -
a[L][p]) < cut && fabs(
a[L][p] + x - 3. -
a[L][i]) > cut) value = 1;
1040 else if(fabs(
a[L][j] + y - 3. -
a[L][p]) > cut && fabs(
a[L][j] + y - 3. + x - 3. -
a[L][i]) < cut && fabs(
a[L][p] + x - 3. -
a[L][i]) < cut ) value = 2;
1041 else if(fabs(
a[L][j] + y - 3. -
a[L][p]) > cut && fabs(
a[L][j] + y - 3. + x - 3. -
a[L][i]) > cut && fabs(
a[L][p] + x - 3. -
a[L][i]) > cut ) value = 3;
1042 else if(fabs(
a[L][j] + y - 3. -
a[L][p]) > cut && fabs(
a[L][j] + y - 3. + x - 3. -
a[L][i]) < cut && fabs(
a[L][p] + x - 3. -
a[L][i]) > cut ) value = 4;
1043 else if(fabs(
a[L][j] + y - 3. -
a[L][p]) > cut && fabs(
a[L][j] + y - 3. + x - 3. -
a[L][i]) > cut && fabs(
a[L][p] + x - 3. -
a[L][i]) < cut ) value = 5;
1047 result = etai *
logeta * log(
eta) * 0.5;
1050 result = ((etapx *
logeta - ((etapx - etai)/(
a[L][p] + x - 3. -
a[L][i])))/(
a[L][p] + x - 3. -
a[L][i]));
1053 result = (etai *
logeta - etai *
logeta)/(
a[L][j] + y - 3. -
a[L][p]);
1056 result = (((etajxy - etai)/(
a[L][j] + x - 3. + y - 3. -
a[L][i])) - ((etapx - etai)/(
a[L][p] + x - 3. -
a[L][i])))/(
a[L][j] + y - 3. -
a[L][p]);
1059 result = (etai *
logeta - ((etapx - etai)/(
a[L][p] + x - 3. -
a[L][i])))/(
a[L][j] + y - 3. -
a[L][p]);
1062 result = (((etajxy - etai)/(
a[L][j] + x - 3. + y - 3. -
a[L][i])) - etai * log(
eta))/(
a[L][j] + y - 3. -
a[L][p]);
1068double EvolBsmm::H(
unsigned int i,
unsigned int p,
unsigned int q,
unsigned int j,
int x,
int y,
int z,
double mu,
double M,
double nf)
1072 int L = 6 - (int) nf;
1074 double etai = pow(
eta,
a[L][i]);
1075 double etapx = pow(
eta,
a[L][p] + x - 3.);
1076 double etaqx = pow(
eta,
a[L][q] + x - 3.);
1078 double cut = 0.000000001;
1081 if(fabs(
a[L][p] + x - 3. -
a[L][i]) < cut && fabs(
a[L][q] + y - 3. -
a[L][p]) < cut && fabs(
a[L][j] + z - 3. -
a[L][q]) < cut) value = 0;
1082 else if(fabs(
a[L][p] + x - 3. -
a[L][i]) > cut && fabs(
a[L][q] + y - 3. -
a[L][p]) < cut && fabs(
a[L][j] + z - 3. -
a[L][q]) < cut) value = 1;
1083 else if((
a[L][q] + x - 3. + y + 3 -
a[L][i] ) < cut && fabs(
a[L][j] + z - 3. -
a[L][q]) < cut){
1084 if(fabs(
a[L][p] + x - 3. -
a[L][i]) < cut) value = 2;
1087 else if((
a[L][q] + x - 3. + y + 3 -
a[L][i]) > cut && fabs(
a[L][j] + z - 3. -
a[L][q]) < cut){
1088 if(fabs(
a[L][p] + x - 3. -
a[L][i]) > cut) value = 4;
1091 else if(fabs(
a[L][j] + z - 3. -
a[L][q]) > cut) value = 6;
1099 - ((etapx - etai)/(
a[L][p] + x - 3. -
a[L][i])))/(
a[L][p] + x - 3. -
a[L][i])))/(
a[L][p] + x - 3. -
a[L][i]);
1105 result = (etai *
logeta *
logeta * 0.5 - ((etai *
logeta- ((etapx - etai)/(
a[L][p] + x - 3. -
a[L][i])) )/(
a[L][q] + y - 3. -
a[L][p])))/(
a[L][q] + y - 3. -
a[L][p]);
1108 result = (((etaqx *
logeta - ((etaqx - etai)/(
a[L][q] + x - 3. -
a[L][i])))/(
a[L][q] + y + 3. + x - 3. -
a[L][i])) - ((etai *
logeta - etai *
logeta)/(
a[L][q] + y - 3. -
a[L][p])))/(
a[L][q] + y - 3. -
a[L][p]);
1111 result = (((etaqx *
logeta - ((etaqx - etai)/(
a[L][q] + x - 3. -
a[L][i])))/(
a[L][q] + y + 3. + x - 3. -
a[L][i])) - ((etai *
logeta - ((etapx - etai)/(
a[L][p] + x - 3. -
a[L][i])) )/(
a[L][q] + y - 3. -
a[L][p])))/(
a[L][q] + y - 3. -
a[L][p]);
1114 result = (
G(i, p, j, x , y + z - 3.,
mu,
M, nf) -
G(i, p, q, x , y,
mu,
M, nf))/(
a[L][j] + z - 3. -
a[L][q]);
1130 unsigned int nf = 5;
1133 double B01S = -22./9.;
1135 double B00E = 80./9., B01E = 176./9., B10E = 464./27.;
1146 double logve = log(ve);
1147 double logvs = log(vs);
1148 double logeos = log(ve/vs);
1154 result = aeove - pow(aeove, 2) * (logve * B10E/ B00E - logvs * B01E/B00S)
1155 + pow(aeove, 2) * (asovs) * ((logvs - vs + 1.) * B01E * B10S/(B00S * B00S)
1156 + logve * vs * pe * B01E * B10E/(B00E * B00E) +(logeos * vs * pe - logve) * B01E * B01S/(B00S * B00E));
1170 unsigned int nf = 5;
1173 B01S = -22./9., B11S = -308./27., B02S = 4945./243.;
1175 double B00E = 80./9., B01E = 176./9., B10E = 464./27.;
1178 double B10soB00s = B10S / B00S;
1179 double B01soB00e = B01S/B00E;
1190 double logve = log(ve);
1191 double logvs = log(vs);
1192 double logeos = log(ve/vs);
1193 double logsoe = log(vs/ve);
1199 result = asovs - pow(asovs, 2) * (logvs * B10soB00s - logve * B01soB00e)
1200 + pow(asovs, 3) * ((1. - vs) * B20S / B00S + B10soB00s * B10soB00s * (logvs * logvs - logvs
1201 + vs - 1.) + B01soB00e * B01soB00e * logve * logve + (-2. * logvs * logve
1202 + ps * ve * logve) * B01S * B10S/(B00E * B00S))
1203 + pow(asovs, 4) * (0.5 * B30S *(1. - vs * vs)/ B00S + ((2. * vs - 3.) * logvs + vs * vs
1204 - vs) * B20S * B10soB00s /(B00S) + B10soB00s * B10soB00s * B10soB00s * (- pow(logvs,3)
1205 + 5. * pow(logvs,2) / 2. + 2. * (1. - vs) * logvs - (vs - 1.) * (vs - 1.)* 0.5))
1206 + pow(asovs, 2) * (aeove) * ((ve - 1.) * B02S / B00E
1207 + ps * ve * logeos * B11S /B00S +(logve - ve + 1.) * B01soB00e * B10E/(B00E)
1208 + logvs * ps * B01S * B10soB00s/(B00S) +(logsoe * ve * ps - logvs) * B01soB00e * B01E/( B00S));
gslpp::matrix< gslpp::complex > CC
std::vector< double > vdevi
std::vector< double > veebvi
std::vector< double > vfvi
EvolBsmm(unsigned int dim, schemes scheme, orders order, orders_qed order_qed, const StandardModel &model)
gslpp::matrix< double > AnomalousDimension(int gam, unsigned int n_u, unsigned int n_d) const
std::vector< double > vbvi
std::vector< double > vbdvi
gslpp::matrix< double > BuiltB(char letter, unsigned int n_u, unsigned int n_d)
double alphatilde_e(double mu)
gslpp::matrix< gslpp::complex > FF
std::vector< double > vdbvi
std::vector< double > vbeevi
double R(unsigned int i, unsigned int j, int x, double mu, double M, double nf)
gslpp::matrix< gslpp::complex > DD
std::vector< double > vebbvi
gslpp::matrix< gslpp::complex > EE
std::vector< double > vedvi
std::vector< double > vebvi
gslpp::matrix< gslpp::complex > Vi
std::vector< double > vbebvi
std::vector< double > vcvi
double G(unsigned int i, unsigned int p, unsigned int j, int x, int y, double mu, double M, double nf)
gslpp::matrix< gslpp::complex > RR
std::vector< double > vevi
gslpp::matrix< gslpp::complex > AA
std::vector< double > vaevi
double F(unsigned int i, unsigned int j, int x, double mu, double M, double nf)
double H(unsigned int i, unsigned int p, unsigned int q, unsigned int j, int x, int y, int z, double mu, double M, double nf)
std::vector< double > vbbvi
std::vector< double > vbbevi
std::vector< double > veevi
const StandardModel & model
std::vector< double > vbevi
gslpp::matrix< double > & Df1Evol(double mu, double M, orders order, orders_qed order_qed, schemes scheme=NDR)
std::vector< double > vavi
gslpp::matrix< gslpp::complex > BB
gslpp::matrix< gslpp::complex > V
std::vector< double > vebevi
gslpp::vector< gslpp::complex > e
std::vector< double > veavi
std::vector< double > vdvi
double alphatilde_s(double mu)
std::vector< double > vrvi
const double Beta2(const double nf) const
The coefficient for a certain number of flavours .
const double Beta1(const double nf) const
The coefficient for a certain number of flavours .
const double Beta0(const double nf) const
The coefficient for a certain number of flavours .
A class for the RG evolutor of the Wilson coefficients.
void setScales(double mu, double M)
Sets the upper and lower scale for the running of the Wilson Coefficients.
gslpp::matrix< double > * Evol(orders order)
Evolution matrix set at a fixed order of QCD coupling.
A model class for the Standard Model.
const double getMz() const
A get method to access the mass of the boson .
const double getAlsMz() const
A get method to access the value of .
virtual const double alphaMz() const
The electromagnetic coupling at the -mass scale, .
gslpp::matrix< double > * elem[MAXORDER_QED+1]
orders
An enum type for orders in QCD.
schemes
An enum type for regularization schemes.
orders_qed
An enum type for orders in electroweak.
StdVectorFiller< int > Vi