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;
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;
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;
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;
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");
972 double 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]);
999 double 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]);
1025 double 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;
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]);
1068 double 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));