BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
ICache Class Reference

#include <cache.h>

+ Inheritance diagram for ICache:

Classes

struct  Ival
 

Public Types

enum  Ecoefs {
  ee0 =1 , ee1 , ee2 , ee3 ,
  ee4 , ee00 , ee11 , ee12 ,
  ee13 , ee14 , ee22 , ee23 ,
  ee24 , ee33 , ee34 , ee44 ,
  ee001 , ee002 , ee003 , ee004 ,
  ee111 , ee112 , ee113 , ee114 ,
  ee122 , ee123 , ee124 , ee133 ,
  ee134 , ee144 , ee222 , ee223 ,
  ee224 , ee233 , ee234 , ee244 ,
  ee333 , ee334 , ee344 , ee444 ,
  ee0000 , ee0011 , ee0012 , ee0013 ,
  ee0014 , ee0022 , ee0023 , ee0024 ,
  ee0033 , ee0034 , ee0044 , ee1111 ,
  ee1112 , ee1113 , ee1114 , ee1122 ,
  ee1123 , ee1124 , ee1133 , ee1134 ,
  ee1144 , ee1222 , ee1223 , ee1224 ,
  ee1233 , ee1234 , ee1244 , ee1333 ,
  ee1334 , ee1344 , ee1444 , ee2222 ,
  ee2223 , ee2224 , ee2233 , ee2234 ,
  ee2244 , ee2333 , ee2334 , ee2344 ,
  ee2444 , ee3333 , ee3334 , ee3344 ,
  ee3444 , ee4444 , ee00001 , ee00002 ,
  ee00003 , ee00004 , ee00111 , ee00112 ,
  ee00113 , ee00114 , ee00122 , ee00123 ,
  ee00124 , ee00133 , ee00134 , ee00144 ,
  ee00222 , ee00223 , ee00224 , ee00233 ,
  ee00234 , ee00244 , ee00333 , ee00334 ,
  ee00344 , ee00444 , ee11111 , ee11112 ,
  ee11113 , ee11114 , ee11122 , ee11123 ,
  ee11124 , ee11133 , ee11134 , ee11144 ,
  ee11222 , ee11223 , ee11224 , ee11233 ,
  ee11234 , ee11244 , ee11333 , ee11334 ,
  ee11344 , ee11444 , ee12222 , ee12223 ,
  ee12224 , ee12233 , ee12234 , ee12244 ,
  ee12333 , ee12334 , ee12344 , ee12444 ,
  ee13333 , ee13334 , ee13344 , ee13444 ,
  ee14444 , ee22222 , ee22223 , ee22224 ,
  ee22233 , ee22234 , ee22244 , ee22333 ,
  ee22334 , ee22344 , ee22444 , ee23333 ,
  ee23334 , ee23344 , ee23444 , ee24444 ,
  ee33333 , ee33334 , ee33344 , ee33444 ,
  ee34444 , ee44444 , eeLAST
}
 
enum  Dcoefs {
  dd0 =1 , dd1 , dd2 , dd3 ,
  dd00 , dd11 , dd12 , dd13 ,
  dd22 , dd23 , dd33 , dd001 ,
  dd002 , dd003 , dd111 , dd112 ,
  dd113 , dd122 , dd123 , dd133 ,
  dd222 , dd223 , dd233 , dd333 ,
  dd0000 , dd0011 , dd0012 , dd0013 ,
  dd0022 , dd0023 , dd0033 , dd1111 ,
  dd1112 , dd1113 , dd1122 , dd1123 ,
  dd1133 , dd1222 , dd1223 , dd1233 ,
  dd1333 , dd2222 , dd2223 , dd2233 ,
  dd2333 , dd3333 , ddLAST
}
 
enum  Ccoefs {
  cc0 =1 , cc1 , cc2 , cc00 ,
  cc11 , cc12 , cc22 , cc001 ,
  cc002 , cc111 , cc112 , cc122 ,
  cc222 , ccLAST
}
 
enum  Bcoefs {
  bb0 =1 , bb1 , bb00 , bb11 ,
  bb001 , bb111 , bbLAST
}
 

Static Public Member Functions

static ncomplex getI4 (int ep, const Kinem4 &k)
 
static ncomplex getI3 (int ep, const Kinem3 &k)
 
static ncomplex getI2 (int ep, const Kinem2 &k)
 
static ncomplex getI1 (int ep, const Kinem1 &k)
 
static ncomplex getE (int ep, const Kinem5 &kin)
 
static ncomplex getE (int ep, int i, const Kinem5 &kin)
 
static ncomplex getE (int ep, int i, int j, const Kinem5 &kin)
 
static ncomplex getE (int ep, int i, int j, int k, const Kinem5 &kin)
 
static ncomplex getE (int ep, int i, int j, int k, int l, const Kinem5 &kin)
 
static ncomplex getE (int ep, int i, int j, int k, int l, int m, const Kinem5 &kin)
 
static ncomplex getD (int ep, const Kinem4 &kin)
 
static ncomplex getD (int ep, int i, const Kinem4 &kin)
 
static ncomplex getD (int ep, int i, int j, const Kinem4 &kin)
 
static ncomplex getD (int ep, int i, int j, int k, const Kinem4 &kin)
 
static ncomplex getD (int ep, int i, int j, int k, int l, const Kinem4 &kin)
 
static ncomplex getC (int ep, const Kinem3 &kin)
 
static ncomplex getC (int ep, int i, const Kinem3 &kin)
 
static ncomplex getC (int ep, int i, int j, const Kinem3 &kin)
 
static ncomplex getC (int ep, int i, int j, int k, const Kinem3 &kin)
 
static ncomplex getB (int ep, const Kinem2 &kin)
 
static ncomplex getB (int ep, int i, const Kinem2 &kin)
 
static ncomplex getB (int ep, int i, int j, const Kinem2 &kin)
 
static ncomplex getA (int ep, const Kinem1 &kin)
 
static void Clear ()
 
static void ClearCC ()
 
static void ClearIC ()
 
static double getMu2 ()
 
static double setMu2 (const double newmu2)
 

Friends

bool operator== (const double &x, const ICache::ID64 &y)
 

Additional Inherited Members

- Static Protected Attributes inherited from Cache
static const int size6 =2
 
static const int size5 =size6*6
 
static const int size4 =size6*15
 
static const int size3 =size6*20
 
static const int size2 =size6*15
 
static const int size1 =size6*6
 

Detailed Description

Definition at line 51 of file cache.h.

Member Enumeration Documentation

◆ Bcoefs

Enumerator
bb0 
bb1 
bb00 
bb11 
bb001 
bb111 
bbLAST 

Definition at line 98 of file cache.h.

98 {bb0=1,bb1,
99 bb00,bb11,
100 bb001,
102 };
@ bb0
Definition: cache.h:98
@ bb001
Definition: cache.h:100
@ bb111
Definition: cache.h:101
@ bb1
Definition: cache.h:98
@ bb00
Definition: cache.h:99
@ bbLAST
Definition: cache.h:101
@ bb11
Definition: cache.h:99

◆ Ccoefs

Enumerator
cc0 
cc1 
cc2 
cc00 
cc11 
cc12 
cc22 
cc001 
cc002 
cc111 
cc112 
cc122 
cc222 
ccLAST 

Definition at line 92 of file cache.h.

92 {cc0=1,cc1,cc2,
96 };
@ cc00
Definition: cache.h:93
@ cc112
Definition: cache.h:95
@ cc111
Definition: cache.h:95
@ cc002
Definition: cache.h:94
@ cc12
Definition: cache.h:93
@ cc1
Definition: cache.h:92
@ cc2
Definition: cache.h:92
@ cc0
Definition: cache.h:92
@ ccLAST
Definition: cache.h:95
@ cc11
Definition: cache.h:93
@ cc222
Definition: cache.h:95
@ cc001
Definition: cache.h:94
@ cc22
Definition: cache.h:93
@ cc122
Definition: cache.h:95

◆ Dcoefs

Enumerator
dd0 
dd1 
dd2 
dd3 
dd00 
dd11 
dd12 
dd13 
dd22 
dd23 
dd33 
dd001 
dd002 
dd003 
dd111 
dd112 
dd113 
dd122 
dd123 
dd133 
dd222 
dd223 
dd233 
dd333 
dd0000 
dd0011 
dd0012 
dd0013 
dd0022 
dd0023 
dd0033 
dd1111 
dd1112 
dd1113 
dd1122 
dd1123 
dd1133 
dd1222 
dd1223 
dd1233 
dd1333 
dd2222 
dd2223 
dd2233 
dd2333 
dd3333 
ddLAST 

Definition at line 81 of file cache.h.

81 {dd0=1,dd1,dd2,dd3,
90 };
@ dd33
Definition: cache.h:82
@ dd222
Definition: cache.h:84
@ dd1112
Definition: cache.h:86
@ dd1233
Definition: cache.h:87
@ dd2
Definition: cache.h:81
@ dd1
Definition: cache.h:81
@ dd2223
Definition: cache.h:88
@ dd0022
Definition: cache.h:85
@ dd3333
Definition: cache.h:89
@ dd00
Definition: cache.h:82
@ dd1223
Definition: cache.h:87
@ dd333
Definition: cache.h:84
@ dd0000
Definition: cache.h:85
@ dd1122
Definition: cache.h:86
@ dd003
Definition: cache.h:83
@ dd133
Definition: cache.h:84
@ dd2222
Definition: cache.h:88
@ dd123
Definition: cache.h:84
@ dd0012
Definition: cache.h:85
@ dd122
Definition: cache.h:84
@ dd3
Definition: cache.h:81
@ dd1333
Definition: cache.h:87
@ dd0013
Definition: cache.h:85
@ dd0023
Definition: cache.h:85
@ dd22
Definition: cache.h:82
@ dd111
Definition: cache.h:84
@ dd1111
Definition: cache.h:86
@ dd0033
Definition: cache.h:85
@ dd1123
Definition: cache.h:86
@ dd233
Definition: cache.h:84
@ ddLAST
Definition: cache.h:89
@ dd001
Definition: cache.h:83
@ dd23
Definition: cache.h:82
@ dd002
Definition: cache.h:83
@ dd1113
Definition: cache.h:86
@ dd0
Definition: cache.h:81
@ dd2333
Definition: cache.h:88
@ dd2233
Definition: cache.h:88
@ dd112
Definition: cache.h:84
@ dd113
Definition: cache.h:84
@ dd223
Definition: cache.h:84
@ dd12
Definition: cache.h:82
@ dd1222
Definition: cache.h:87
@ dd13
Definition: cache.h:82
@ dd11
Definition: cache.h:82
@ dd0011
Definition: cache.h:85
@ dd1133
Definition: cache.h:86

◆ Ecoefs

Enumerator
ee0 
ee1 
ee2 
ee3 
ee4 
ee00 
ee11 
ee12 
ee13 
ee14 
ee22 
ee23 
ee24 
ee33 
ee34 
ee44 
ee001 
ee002 
ee003 
ee004 
ee111 
ee112 
ee113 
ee114 
ee122 
ee123 
ee124 
ee133 
ee134 
ee144 
ee222 
ee223 
ee224 
ee233 
ee234 
ee244 
ee333 
ee334 
ee344 
ee444 
ee0000 
ee0011 
ee0012 
ee0013 
ee0014 
ee0022 
ee0023 
ee0024 
ee0033 
ee0034 
ee0044 
ee1111 
ee1112 
ee1113 
ee1114 
ee1122 
ee1123 
ee1124 
ee1133 
ee1134 
ee1144 
ee1222 
ee1223 
ee1224 
ee1233 
ee1234 
ee1244 
ee1333 
ee1334 
ee1344 
ee1444 
ee2222 
ee2223 
ee2224 
ee2233 
ee2234 
ee2244 
ee2333 
ee2334 
ee2344 
ee2444 
ee3333 
ee3334 
ee3344 
ee3444 
ee4444 
ee00001 
ee00002 
ee00003 
ee00004 
ee00111 
ee00112 
ee00113 
ee00114 
ee00122 
ee00123 
ee00124 
ee00133 
ee00134 
ee00144 
ee00222 
ee00223 
ee00224 
ee00233 
ee00234 
ee00244 
ee00333 
ee00334 
ee00344 
ee00444 
ee11111 
ee11112 
ee11113 
ee11114 
ee11122 
ee11123 
ee11124 
ee11133 
ee11134 
ee11144 
ee11222 
ee11223 
ee11224 
ee11233 
ee11234 
ee11244 
ee11333 
ee11334 
ee11344 
ee11444 
ee12222 
ee12223 
ee12224 
ee12233 
ee12234 
ee12244 
ee12333 
ee12334 
ee12344 
ee12444 
ee13333 
ee13334 
ee13344 
ee13444 
ee14444 
ee22222 
ee22223 
ee22224 
ee22233 
ee22234 
ee22244 
ee22333 
ee22334 
ee22344 
ee22444 
ee23333 
ee23334 
ee23344 
ee23444 
ee24444 
ee33333 
ee33334 
ee33344 
ee33444 
ee34444 
ee44444 
eeLAST 

Definition at line 59 of file cache.h.

59 {ee0=1,ee1,ee2,ee3,ee4,
79 };
@ ee4
Definition: cache.h:59
@ ee33334
Definition: cache.h:77
@ ee003
Definition: cache.h:61
@ ee22244
Definition: cache.h:76
@ ee11114
Definition: cache.h:72
@ ee2334
Definition: cache.h:67
@ ee224
Definition: cache.h:63
@ ee00004
Definition: cache.h:69
@ ee1122
Definition: cache.h:65
@ ee4444
Definition: cache.h:68
@ ee12233
Definition: cache.h:74
@ ee11123
Definition: cache.h:72
@ ee22224
Definition: cache.h:76
@ ee44
Definition: cache.h:60
@ ee24
Definition: cache.h:60
@ ee144
Definition: cache.h:62
@ ee33
Definition: cache.h:60
@ ee1134
Definition: cache.h:65
@ ee2
Definition: cache.h:59
@ ee13444
Definition: cache.h:75
@ ee3344
Definition: cache.h:68
@ ee11234
Definition: cache.h:73
@ ee11224
Definition: cache.h:73
@ ee223
Definition: cache.h:63
@ ee2223
Definition: cache.h:67
@ ee22444
Definition: cache.h:76
@ ee14
Definition: cache.h:60
@ ee0023
Definition: cache.h:64
@ ee1233
Definition: cache.h:66
@ ee34
Definition: cache.h:60
@ ee002
Definition: cache.h:61
@ ee0014
Definition: cache.h:64
@ ee11
Definition: cache.h:60
@ eeLAST
Definition: cache.h:78
@ ee00224
Definition: cache.h:70
@ ee2344
Definition: cache.h:67
@ ee00113
Definition: cache.h:69
@ ee1123
Definition: cache.h:65
@ ee1224
Definition: cache.h:66
@ ee22233
Definition: cache.h:76
@ ee0024
Definition: cache.h:64
@ ee1112
Definition: cache.h:65
@ ee1234
Definition: cache.h:66
@ ee33344
Definition: cache.h:77
@ ee12224
Definition: cache.h:74
@ ee11122
Definition: cache.h:72
@ ee1124
Definition: cache.h:65
@ ee13333
Definition: cache.h:75
@ ee222
Definition: cache.h:63
@ ee11344
Definition: cache.h:73
@ ee24444
Definition: cache.h:77
@ ee00112
Definition: cache.h:69
@ ee11144
Definition: cache.h:72
@ ee1444
Definition: cache.h:66
@ ee22222
Definition: cache.h:76
@ ee2233
Definition: cache.h:67
@ ee23334
Definition: cache.h:77
@ ee12223
Definition: cache.h:74
@ ee00223
Definition: cache.h:70
@ ee1114
Definition: cache.h:65
@ ee344
Definition: cache.h:63
@ ee00001
Definition: cache.h:69
@ ee334
Definition: cache.h:63
@ ee11333
Definition: cache.h:73
@ ee22333
Definition: cache.h:76
@ ee2444
Definition: cache.h:67
@ ee3333
Definition: cache.h:68
@ ee11134
Definition: cache.h:72
@ ee00222
Definition: cache.h:70
@ ee22344
Definition: cache.h:76
@ ee11124
Definition: cache.h:72
@ ee1144
Definition: cache.h:65
@ ee00123
Definition: cache.h:70
@ ee12222
Definition: cache.h:74
@ ee13344
Definition: cache.h:75
@ ee0
Definition: cache.h:59
@ ee2224
Definition: cache.h:67
@ ee00134
Definition: cache.h:70
@ ee0044
Definition: cache.h:64
@ ee12234
Definition: cache.h:74
@ ee11113
Definition: cache.h:72
@ ee0022
Definition: cache.h:64
@ ee001
Definition: cache.h:61
@ ee1113
Definition: cache.h:65
@ ee11444
Definition: cache.h:73
@ ee13
Definition: cache.h:60
@ ee1222
Definition: cache.h:66
@ ee244
Definition: cache.h:63
@ ee113
Definition: cache.h:62
@ ee00002
Definition: cache.h:69
@ ee12244
Definition: cache.h:74
@ ee11233
Definition: cache.h:73
@ ee112
Definition: cache.h:62
@ ee22223
Definition: cache.h:76
@ ee3
Definition: cache.h:59
@ ee23
Definition: cache.h:60
@ ee111
Definition: cache.h:62
@ ee12444
Definition: cache.h:74
@ ee00122
Definition: cache.h:70
@ ee12344
Definition: cache.h:74
@ ee2234
Definition: cache.h:67
@ ee2244
Definition: cache.h:67
@ ee22
Definition: cache.h:60
@ ee44444
Definition: cache.h:78
@ ee1244
Definition: cache.h:66
@ ee122
Definition: cache.h:62
@ ee22234
Definition: cache.h:76
@ ee004
Definition: cache.h:61
@ ee124
Definition: cache.h:62
@ ee3444
Definition: cache.h:68
@ ee33333
Definition: cache.h:77
@ ee1
Definition: cache.h:59
@ ee11222
Definition: cache.h:73
@ ee00114
Definition: cache.h:69
@ ee00344
Definition: cache.h:71
@ ee12
Definition: cache.h:60
@ ee133
Definition: cache.h:62
@ ee0011
Definition: cache.h:64
@ ee13334
Definition: cache.h:75
@ ee1334
Definition: cache.h:66
@ ee123
Definition: cache.h:62
@ ee00444
Definition: cache.h:71
@ ee444
Definition: cache.h:63
@ ee1133
Definition: cache.h:65
@ ee1344
Definition: cache.h:66
@ ee1111
Definition: cache.h:65
@ ee34444
Definition: cache.h:77
@ ee0000
Definition: cache.h:64
@ ee22334
Definition: cache.h:76
@ ee0034
Definition: cache.h:64
@ ee00133
Definition: cache.h:70
@ ee3334
Definition: cache.h:68
@ ee23333
Definition: cache.h:77
@ ee11223
Definition: cache.h:73
@ ee1333
Definition: cache.h:66
@ ee00124
Definition: cache.h:70
@ ee00111
Definition: cache.h:69
@ ee23344
Definition: cache.h:77
@ ee23444
Definition: cache.h:77
@ ee12333
Definition: cache.h:74
@ ee0012
Definition: cache.h:64
@ ee00333
Definition: cache.h:71
@ ee00003
Definition: cache.h:69
@ ee11112
Definition: cache.h:72
@ ee11334
Definition: cache.h:73
@ ee2222
Definition: cache.h:67
@ ee14444
Definition: cache.h:75
@ ee134
Definition: cache.h:62
@ ee00233
Definition: cache.h:71
@ ee333
Definition: cache.h:63
@ ee233
Definition: cache.h:63
@ ee00144
Definition: cache.h:70
@ ee11111
Definition: cache.h:72
@ ee33444
Definition: cache.h:77
@ ee12334
Definition: cache.h:74
@ ee1223
Definition: cache.h:66
@ ee00244
Definition: cache.h:71
@ ee0013
Definition: cache.h:64
@ ee00
Definition: cache.h:60
@ ee00234
Definition: cache.h:71
@ ee234
Definition: cache.h:63
@ ee11133
Definition: cache.h:72
@ ee11244
Definition: cache.h:73
@ ee114
Definition: cache.h:62
@ ee0033
Definition: cache.h:64
@ ee2333
Definition: cache.h:67
@ ee00334
Definition: cache.h:71

Member Function Documentation

◆ Clear()

void ICache::Clear ( )
static

Definition at line 40 of file cache.cpp.

41{
42 ClearCC();
43 ClearIC();
44}
static void ClearIC()
Definition: cache.cpp:60
static void ClearCC()
Definition: cache.cpp:47

Referenced by setMu2().

◆ ClearCC()

void ICache::ClearCC ( )
static

Definition at line 47 of file cache.cpp.

48{
49 ic5[0].reset();
50 ic5[1].reset();
51 ic4[0].reset();
52 ic4[1].reset();
53 ic3[0].reset();
54 ic3[1].reset();
55 ic2[0].reset();
56 ic2[1].reset();
57}
void reset()
Definition: pointer.h:112

Referenced by Clear().

◆ ClearIC()

void ICache::ClearIC ( )
static

Definition at line 60 of file cache.cpp.

61{
62 ics4.reset();
63 ics3.reset();
64 ics2.reset();
65 ics1.reset();
66}

Referenced by Clear().

◆ getA()

static ncomplex ICache::getA ( int  ep,
const Kinem1 kin 
)
inlinestatic

Definition at line 137 of file cache.h.

137{ return getI1(ep, kin); }
static ncomplex getI1(int ep, const Kinem1 &k)

◆ getB() [1/3]

static ncomplex ICache::getB ( int  ep,
const Kinem2 kin 
)
inlinestatic

Definition at line 132 of file cache.h.

132{ return getI2(ep, kin); }
static ncomplex getI2(int ep, const Kinem2 &k)

◆ getB() [2/3]

ncomplex ICache::getB ( int  ep,
int  i,
const Kinem2 kin 
)
static

Definition at line 479 of file cache.cpp.

480{
481#ifdef USE_CACHE_LOW
482 int coefn=(i-1)+bb1;
483 Save2 *s2=getS2(ep, kin, coefn);
484
485 ncomplex ivalue=(*s2)[coefn];
486 Minor2::Ptr pm2;
487 if (ivalue.real() == sNAN && (pm2=MCache::getMinor2(kin))!=0) {
488 ivalue=pm2->evalB(ep, i);
489 (*s2)[coefn]=ivalue;
490 }
491#else
493 ncomplex ivalue= ( pm2!=0 ? pm2->evalB(ep, i) : sNAN.d64 );
494#endif /* USE_CACHE_LOW */
495#ifndef NDEBUG
496 if (pm2==0) printf("B%d(%.18e,%.18e,%.18e)=%f\n",i,kin.p1(),kin.m1(),kin.m2(),ivalue.real());
497#endif
498 return ivalue;
499}
double m2() const
Definition: kinem.h:118
double m1() const
Definition: kinem.h:117
double p1() const
Definition: kinem.h:116
static Minor2::Ptr getMinor2(const Kinem2 &k)
Definition: pointer.h:25
std::complex< double > ncomplex
Definition: common.h:25

◆ getB() [3/3]

ncomplex ICache::getB ( int  ep,
int  i,
int  j,
const Kinem2 kin 
)
static

Definition at line 452 of file cache.cpp.

453{
454#ifdef USE_CACHE_LOW
455 assert( (i==0 && j==0) || (i!=0 && j!=0) );
456 int coefn=(i==0 && j==0) ? bb00 : Minor2::is(i-1,j-1)+bb11;
457 Save2 *s2=getS2(ep, kin, coefn);
458
459 ncomplex ivalue=(*s2)[coefn];
460 Minor2::Ptr pm2;
461 if (ivalue.real() == sNAN && (pm2=MCache::getMinor2(kin))!=0) {
462 ivalue=pm2->evalB(ep, i, j);
463 (*s2)[coefn]=ivalue;
464 }
465#else
467 ncomplex ivalue= ( pm2!=0 ? pm2->evalB(ep, i, j) : sNAN.d64 );
468#endif /* USE_CACHE_LOW */
469#ifndef NDEBUG
470 if (pm2==0) printf("B%d%d(%.18e,%.18e,%.18e)=%f\n",i,j,kin.p1(),kin.m1(),kin.m2(),ivalue.real());
471#endif
472 return ivalue;
473}
static int is(int i, int j) CONST
Definition: minor.h:85

◆ getC() [1/4]

static ncomplex ICache::getC ( int  ep,
const Kinem3 kin 
)
inlinestatic

Definition at line 126 of file cache.h.

126{ return getI3(ep, kin); }
static ncomplex getI3(int ep, const Kinem3 &k)

◆ getC() [2/4]

ncomplex ICache::getC ( int  ep,
int  i,
const Kinem3 kin 
)
static

Definition at line 419 of file cache.cpp.

420{
421#ifdef USE_CACHE_LOW
422 int coefn=(i-1)+cc1;
423 Save3 *s3=getS3(ep, kin, coefn);
424
425 ncomplex ivalue=(*s3)[coefn];
426 Minor3::Ptr pm3;
427 if (ivalue.real() == sNAN && (pm3=MCache::getMinor3(kin))!=0) {
428 ivalue=pm3->evalC(ep, i);
429 (*s3)[coefn]=ivalue;
430 }
431#else
433 ncomplex ivalue= ( pm3!=0 ? pm3->evalC(ep, i) : sNAN.d64 );
434#endif /* USE_CACHE_LOW */
435#ifndef NDEBUG
436 if (pm3==0) printf("C%d(%.18e,%.18e,%.18e,%e,%e,%e)=%f\n",i,kin.p1(),kin.p2(),kin.p3(),kin.m1(),kin.m2(),kin.m3(),ivalue.real());
437#endif
438 return ivalue;
439}
double m1() const
Definition: kinem.h:140
double p1() const
Definition: kinem.h:137
double p3() const
Definition: kinem.h:139
double p2() const
Definition: kinem.h:138
double m2() const
Definition: kinem.h:141
double m3() const
Definition: kinem.h:142
static Minor3::Ptr getMinor3(const Kinem3 &k)

◆ getC() [3/4]

ncomplex ICache::getC ( int  ep,
int  i,
int  j,
const Kinem3 kin 
)
static

Definition at line 392 of file cache.cpp.

393{
394#ifdef USE_CACHE_LOW
395 assert( (i==0 && j==0) || (i!=0 && j!=0) );
396 int coefn=(i==0 && j==0) ? cc00 : Minor3::is(i-1,j-1)+cc11;
397 Save3 *s3=getS3(ep, kin, coefn);
398
399 ncomplex ivalue=(*s3)[coefn];
400 Minor3::Ptr pm3;
401 if (ivalue.real() == sNAN && (pm3=MCache::getMinor3(kin))!=0) {
402 ivalue=pm3->evalC(ep, i, j);
403 (*s3)[coefn]=ivalue;
404 }
405#else
407 ncomplex ivalue= ( pm3!=0 ? pm3->evalC(ep, i, j) : sNAN.d64 );
408#endif /* USE_CACHE_LOW */
409#ifndef NDEBUG
410 if (pm3==0) printf("C%d%d(%.18e,%.18e,%.18e,%e,%e,%e)=%f\n",i,j,kin.p1(),kin.p2(),kin.p3(),kin.m1(),kin.m2(),kin.m3(),ivalue.real());
411#endif
412 return ivalue;
413}

◆ getC() [4/4]

ncomplex ICache::getC ( int  ep,
int  i,
int  j,
int  k,
const Kinem3 kin 
)
static

Definition at line 365 of file cache.cpp.

366{
367#ifdef USE_CACHE_LOW
368 assert( (i==0 && j==0 && k!=0) || (i!=0 && j!=0 && k!=0) );
369 int coefn=(i==0 && j==0) ? (k-1)+cc001 : Minor3::is(i-1,j-1,k-1)+cc111;
370 Save3 *s3=getS3(ep, kin, coefn);
371
372 ncomplex ivalue=(*s3)[coefn];
373 Minor3::Ptr pm3;
374 if (ivalue.real() == sNAN && (pm3=MCache::getMinor3(kin))!=0) {
375 ivalue=pm3->evalC(ep, i, j, k);
376 (*s3)[coefn]=ivalue;
377 }
378#else
380 ncomplex ivalue= ( pm3!=0 ? pm3->evalC(ep, i, j, k) : sNAN.d64 );
381#endif /* USE_CACHE_LOW */
382#ifndef NDEBUG
383 if (pm3==0) printf("C%d%d%d(%.18e,%.18e,%.18e,%e,%e,%e)=%f\n",i,j,k,kin.p1(),kin.p2(),kin.p3(),kin.m1(),kin.m2(),kin.m3(),ivalue.real());
384#endif
385 return ivalue;
386}

◆ getD() [1/5]

static ncomplex ICache::getD ( int  ep,
const Kinem4 kin 
)
inlinestatic

Definition at line 119 of file cache.h.

119{ return getI4(ep, kin); }
static ncomplex getI4(int ep, const Kinem4 &k)

◆ getD() [2/5]

ncomplex ICache::getD ( int  ep,
int  i,
const Kinem4 kin 
)
static

Definition at line 336 of file cache.cpp.

337{
338#ifdef USE_CACHE_LOW
339 int coefn=(i-1)+dd1;
340 Save4 *s4=getS4(ep, kin, coefn);
341
342 ncomplex ivalue=(*s4)[coefn];
343 if (ivalue.real() == sNAN) {
344 ivalue=MCache::getMinor4(kin)->evalD(ep, i);
345 (*s4)[coefn]=ivalue;
346 }
347#else
348 ncomplex ivalue=MCache::getMinor4(kin)->evalD(ep, i);
349#endif /* USE_CACHE_LOW */
350 return ivalue;
351}
static Minor4::Ptr getMinor4(const Kinem4 &k)
Definition: cache.cpp:658

◆ getD() [3/5]

ncomplex ICache::getD ( int  ep,
int  i,
int  j,
const Kinem4 kin 
)
static

Definition at line 314 of file cache.cpp.

315{
316#ifdef USE_CACHE_LOW
317 assert( (i==0 && j==0) || (i!=0 && j!=0) );
318 int coefn=(i==0 && j==0) ? dd00 : Minor4::is(i-1,j-1)+dd11;
319 Save4 *s4=getS4(ep, kin, coefn);
320
321 ncomplex ivalue=(*s4)[coefn];
322 if (ivalue.real() == sNAN) {
323 ivalue=MCache::getMinor4(kin)->evalD(ep, i, j);
324 (*s4)[coefn]=ivalue;
325 }
326#else
327 ncomplex ivalue=MCache::getMinor4(kin)->evalD(ep, i, j);
328#endif /* USE_CACHE_LOW */
329 return ivalue;
330}

◆ getD() [4/5]

ncomplex ICache::getD ( int  ep,
int  i,
int  j,
int  k,
const Kinem4 kin 
)
static

Definition at line 292 of file cache.cpp.

293{
294#ifdef USE_CACHE_LOW
295 assert( (i==0 && j==0 && k!=0) || (i!=0 && j!=0 && k!=0) );
296 int coefn=(i==0 && j==0) ? (k-1)+dd001 : Minor4::is(i-1,j-1,k-1)+dd111;
297 Save4 *s4=getS4(ep, kin, coefn);
298
299 ncomplex ivalue=(*s4)[coefn];
300 if (ivalue.real() == sNAN) {
301 ivalue=MCache::getMinor4(kin)->evalD(ep, i, j, k);
302 (*s4)[coefn]=ivalue;
303 }
304#else
305 ncomplex ivalue=MCache::getMinor4(kin)->evalD(ep, i, j, k);
306#endif /* USE_CACHE_LOW */
307 return ivalue;
308}

◆ getD() [5/5]

ncomplex ICache::getD ( int  ep,
int  i,
int  j,
int  k,
int  l,
const Kinem4 kin 
)
static

Definition at line 261 of file cache.cpp.

262{
263#ifdef USE_CACHE_LOW
264 assert( (i==0 && j==0 && ( (k==0 && l==0) || (k!=0 && l!=0) )) || (i!=0 && j!=0 && k!=0 && l!=0) );
265 int coefn=0;
266 if (i==0 && j==0) {
267 if (k==0 && l==0)
268 coefn=dd0000;
269 else
270 coefn=Minor4::is(k-1,l-1)+dd0011;
271 }
272 else {
273 coefn=Minor5::is(i-1,j-1,k-1,l-1)+dd1111;
274 }
275 Save4 *s4=getS4(ep, kin, coefn);
276
277 ncomplex ivalue=(*s4)[coefn];
278 if (ivalue.real() == sNAN) {
279 ivalue=MCache::getMinor4(kin)->evalD(ep, i, j, k, l);
280 (*s4)[coefn]=ivalue;
281 }
282#else
283 ncomplex ivalue=MCache::getMinor4(kin)->evalD(ep, i, j, k, l);
284#endif /* USE_CACHE_LOW */
285 return ivalue;
286}

◆ getE() [1/6]

ncomplex ICache::getE ( int  ep,
const Kinem5 kin 
)
static

Definition at line 233 of file cache.cpp.

234{
235#ifdef USE_CACHE_HIGH
236 int coefn=ee0;
237 Save5 *s5=getS5(ep, kin, coefn);
238
239 ncomplex ivalue=(*s5)[coefn];
240 if (ivalue.real() == sNAN) {
241 ivalue=MCache::getMinor5(kin)->evalE(ep);
242 (*s5)[coefn]=ivalue;
243 }
244#else
245 ncomplex ivalue=MCache::getMinor5(kin)->evalE(ep);
246#endif /* USE_CACHE_HIGH */
247 return ivalue;
248}
static Minor5::Ptr getMinor5(const Kinem5 &k)

◆ getE() [2/6]

ncomplex ICache::getE ( int  ep,
int  i,
const Kinem5 kin 
)
static

Definition at line 212 of file cache.cpp.

213{
214#ifdef USE_CACHE_HIGH
215 int coefn=(i-1)+ee1;
216 Save5 *s5=getS5(ep, kin, coefn);
217
218 ncomplex ivalue=(*s5)[coefn];
219 if (ivalue.real() == sNAN) {
220 ivalue=MCache::getMinor5(kin)->evalE(ep, i);
221 (*s5)[coefn]=ivalue;
222 }
223#else
224 ncomplex ivalue=MCache::getMinor5(kin)->evalE(ep, i);
225#endif /* USE_CACHE_HIGH */
226 return ivalue;
227}

◆ getE() [3/6]

ncomplex ICache::getE ( int  ep,
int  i,
int  j,
const Kinem5 kin 
)
static

Definition at line 190 of file cache.cpp.

191{
192#ifdef USE_CACHE_HIGH
193 assert( (i==0 && j==0) || (i!=0 && j!=0) );
194 int coefn=(i==0 && j==0) ? ee00 : Minor5::is(i-1,j-1)+ee11;
195 Save5 *s5=getS5(ep, kin, coefn);
196
197 ncomplex ivalue=(*s5)[coefn];
198 if (ivalue.real() == sNAN) {
199 ivalue=MCache::getMinor5(kin)->evalE(ep, i, j);
200 (*s5)[coefn]=ivalue;
201 }
202#else
203 ncomplex ivalue=MCache::getMinor5(kin)->evalE(ep, i, j);
204#endif /* USE_CACHE_HIGH */
205 return ivalue;
206}

◆ getE() [4/6]

ncomplex ICache::getE ( int  ep,
int  i,
int  j,
int  k,
const Kinem5 kin 
)
static

Definition at line 168 of file cache.cpp.

169{
170#ifdef USE_CACHE_HIGH
171 assert( (i==0 && j==0 && k!=0) || (i!=0 && j!=0 && k!=0) );
172 int coefn=(i==0 && j==0) ? (k-1)+ee001 : Minor5::is(i-1,j-1,k-1)+ee111;
173 Save5 *s5=getS5(ep, kin, coefn);
174
175 ncomplex ivalue=(*s5)[coefn];
176 if (ivalue.real() == sNAN) {
177 ivalue=MCache::getMinor5(kin)->evalE(ep, i, j, k);
178 (*s5)[coefn]=ivalue;
179 }
180#else
181 ncomplex ivalue=MCache::getMinor5(kin)->evalE(ep, i, j, k);
182#endif /* USE_CACHE_HIGH */
183 return ivalue;
184}

◆ getE() [5/6]

ncomplex ICache::getE ( int  ep,
int  i,
int  j,
int  k,
int  l,
const Kinem5 kin 
)
static

Definition at line 137 of file cache.cpp.

138{
139#ifdef USE_CACHE_HIGH
140 assert( (i==0 && j==0 && ( (k==0 && l==0) || (k!=0 && l!=0) )) || (i!=0 && j!=0 && k!=0 && l!=0) );
141 int coefn=0;
142 if (i==0 && j==0) {
143 if (k==0 && l==0)
144 coefn=ee0000;
145 else
146 coefn=Minor5::is(k-1,l-1)+ee0011;
147 }
148 else {
149 coefn=Minor5::is(i-1,j-1,k-1,l-1)+ee1111;
150 }
151 Save5 *s5=getS5(ep, kin, coefn);
152
153 ncomplex ivalue=(*s5)[coefn];
154 if (ivalue.real() == sNAN) {
155 ivalue=MCache::getMinor5(kin)->evalE(ep, i, j, k, l);
156 (*s5)[coefn]=ivalue;
157 }
158#else
159 ncomplex ivalue=MCache::getMinor5(kin)->evalE(ep, i, j, k, l);
160#endif /* USE_CACHE_HIGH */
161 return ivalue;
162}

◆ getE() [6/6]

ncomplex ICache::getE ( int  ep,
int  i,
int  j,
int  k,
int  l,
int  m,
const Kinem5 kin 
)
static

Definition at line 105 of file cache.cpp.

106{
107#ifdef USE_CACHE_HIGH
108 assert( (i==0 && j==0 && ( (k==0 && l==0 && m!=0) || (k!=0 && l!=0 && m!=0) ))
109 || (i!=0 && j!=0 && k!=0 && l!=0 && m!=0) );
110 int coefn=0;
111 if (i==0 && j==0) {
112 if (k==0 && l==0)
113 coefn=(m-1)+ee00001;
114 else
115 coefn=Minor5::is(k-1,l-1,m-1)+ee00111;
116 }
117 else {
118 coefn=Minor5::iss(i-1,j-1,k-1,l-1,m-1)+ee11111;
119 }
120 Save5 *s5=getS5(ep, kin, coefn);
121
122 ncomplex ivalue=(*s5)[coefn];
123 if (ivalue.real() == sNAN) {
124 ivalue=MCache::getMinor5(kin)->evalE(ep, i, j, k, l, m);
125 (*s5)[coefn]=ivalue;
126 }
127#else
128 ncomplex ivalue=MCache::getMinor5(kin)->evalE(ep, i, j, k, l, m);
129#endif /* USE_CACHE_HIGH */
130 return ivalue;
131}
static int iss(int i, int j) CONST
Definition: minor.h:124

◆ getI1()

static ncomplex ICache::getI1 ( int  ep,
const Kinem1 k 
)
static

Referenced by getA().

◆ getI2()

static ncomplex ICache::getI2 ( int  ep,
const Kinem2 k 
)
static

Referenced by getB().

◆ getI3()

static ncomplex ICache::getI3 ( int  ep,
const Kinem3 k 
)
static

Referenced by getC().

◆ getI4()

static ncomplex ICache::getI4 ( int  ep,
const Kinem4 k 
)
static

Referenced by getD().

◆ getMu2()

double ICache::getMu2 ( )
static

Definition at line 20 of file cache.cpp.

21{
22 return mu2;
23}

◆ setMu2()

double ICache::setMu2 ( const double  newmu2)
static

Definition at line 25 of file cache.cpp.

26{
27 if (newmu2 > 0 && newmu2 != mu2) {
28 MinorBase::Rescale(newmu2/mu2);
29 mu2=newmu2;
30#ifdef USE_ONELOOP
31 double mu=sqrt(mu2);
32 F77_FUNC_(avh_olo_mu_set,AVH_OLO_MU_SET)(&mu);
33#endif
36 }
37 return mu2;
38}
static void Clear()
Definition: cache.cpp:40
static void Clear()
Definition: cache.cpp:69
static void Rescale(double factor)
Definition: minor.cpp:35

Friends And Related Function Documentation

◆ operator==

bool operator== ( const double &  x,
const ICache::ID64 &  y 
)
friend

Definition at line 202 of file cache.h.

203{
204 const ICache::DI64 ix={x};
205 return ix.i64 == y.i64;
206}
Double_t x[10]
#define ix(i)
Definition: minoreval.cpp:387

The documentation for this class was generated from the following files: