27 if (newmu2 > 0 && newmu2 != mu2) {
32 F77_FUNC_(avh_olo_mu_set,AVH_OLO_MU_SET)(&mu);
82const ICache::ID64 ICache::sNAN={ 0x7ffc0000BA13BA13LL };
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) );
120 Save5 *s5=getS5(ep, kin, coefn);
123 if (ivalue.real() == sNAN) {
140 assert( (i==0 && j==0 && ( (k==0 && l==0) || (k!=0 && l!=0) )) || (i!=0 && j!=0 && k!=0 && l!=0) );
151 Save5 *s5=getS5(ep, kin, coefn);
154 if (ivalue.real() == sNAN) {
171 assert( (i==0 && j==0 && k!=0) || (i!=0 && j!=0 && k!=0) );
173 Save5 *s5=getS5(ep, kin, coefn);
176 if (ivalue.real() == sNAN) {
193 assert( (i==0 && j==0) || (i!=0 && j!=0) );
195 Save5 *s5=getS5(ep, kin, coefn);
198 if (ivalue.real() == sNAN) {
216 Save5 *s5=getS5(ep, kin, coefn);
219 if (ivalue.real() == sNAN) {
237 Save5 *s5=getS5(ep, kin, coefn);
240 if (ivalue.real() == sNAN) {
264 assert( (i==0 && j==0 && ( (k==0 && l==0) || (k!=0 && l!=0) )) || (i!=0 && j!=0 && k!=0 && l!=0) );
275 Save4 *s4=getS4(ep, kin, coefn);
278 if (ivalue.real() == sNAN) {
295 assert( (i==0 && j==0 && k!=0) || (i!=0 && j!=0 && k!=0) );
297 Save4 *s4=getS4(ep, kin, coefn);
300 if (ivalue.real() == sNAN) {
317 assert( (i==0 && j==0) || (i!=0 && j!=0) );
319 Save4 *s4=getS4(ep, kin, coefn);
322 if (ivalue.real() == sNAN) {
340 Save4 *s4=getS4(ep, kin, coefn);
343 if (ivalue.real() == sNAN) {
368 assert( (i==0 && j==0 && k!=0) || (i!=0 && j!=0 && k!=0) );
370 Save3 *s3=getS3(ep, kin, coefn);
375 ivalue=pm3->evalC(ep, i, j, k);
380 ncomplex ivalue= ( pm3!=0 ? pm3->evalC(ep, i, j, k) : sNAN.d64 );
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());
395 assert( (i==0 && j==0) || (i!=0 && j!=0) );
397 Save3 *s3=getS3(ep, kin, coefn);
402 ivalue=pm3->evalC(ep, i, j);
407 ncomplex ivalue= ( pm3!=0 ? pm3->evalC(ep, i, j) : sNAN.d64 );
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());
423 Save3 *s3=getS3(ep, kin, coefn);
428 ivalue=pm3->evalC(ep, i);
433 ncomplex ivalue= ( pm3!=0 ? pm3->evalC(ep, i) : sNAN.d64 );
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());
455 assert( (i==0 && j==0) || (i!=0 && j!=0) );
457 Save2 *s2=getS2(ep, kin, coefn);
462 ivalue=pm2->evalB(ep, i, j);
467 ncomplex ivalue= ( pm2!=0 ? pm2->evalB(ep, i, j) : sNAN.d64 );
470 if (pm2==0) printf(
"B%d%d(%.18e,%.18e,%.18e)=%f\n",i,j,kin.
p1(),kin.
m1(),kin.
m2(),ivalue.real());
483 Save2 *s2=getS2(ep, kin, coefn);
488 ivalue=pm2->evalB(ep, i);
493 ncomplex ivalue= ( pm2!=0 ? pm2->evalB(ep, i) : sNAN.d64 );
496 if (pm2==0) printf(
"B%d(%.18e,%.18e,%.18e)=%f\n",i,kin.
p1(),kin.
m1(),kin.
m2(),ivalue.real());
526ICache::Save##n * ICache::getS##n(int ep, const Kinem##n &kin, int coefn) \
529 for (Array##n::iterator it##n=ic##n[ep].begin(); it##n != ic##n[ep].end(); ++it##n) { \
530 if (it##n->key == kin) { \
531 s##n=it##n->val.get(); \
536 Save##n::Ptr sptr(new Save##n(ncomplex(sNAN.d64, 0))); \
538 ic##n[ep].insert(Entry##n(kin, sptr)); \
569ncomplex ICache::getI##n(int ep, const Kinem##n &k) \
573 for (ArrayS##n::iterator it##n=ics##n.begin(); it##n != ics##n.end(); ++it##n) { \
574 if (it##n->key == k) { \
582 ics##n.insert(EntryS##n(k,ivalue)); \
584 return ivalue.val[ep]; \
622#define getMinorN(n) \
623Minor##n::Ptr MCache::getMinor##n(const Kinem##n &k) \
625 Minor##n::Ptr minor; \
626 for (Array##n::iterator it##n=cm##n.begin(); it##n!=cm##n.end(); ++it##n) { \
627 if (it##n->key == k) { \
656 cm5.
insert(Entry5(k,minor));
673 minor=cm4.
begin()->val;
674 cm4.
insert(Entry4(k,minor));
681#ifdef USE_SMART_INSERT
#define F77_FUNC_(name, NAME)
std::complex< double > ncomplex
static double setMu2(const double newmu2)
static ncomplex getD(int ep, const Kinem4 &kin)
static ncomplex getB(int ep, const Kinem2 &kin)
static ncomplex getC(int ep, const Kinem3 &kin)
static ncomplex getE(int ep, const Kinem5 &kin)
static Minor5::Ptr getMinor5(const Kinem5 &k)
static Minor2::Ptr getMinor2(const Kinem2 &k)
static Minor3::Ptr getMinor3(const Kinem3 &k)
static void smartinsertMinor2(const Kinem2 &k, Minor2::Ptr &m)
static void insertMinor2(const Kinem2 &k, Minor2::Ptr &m)
static void insertMinor3(const Kinem3 &k, Minor3::Ptr &m)
static Minor4::Ptr getMinor4(const Kinem4 &k)
static void smartinsertMinor3(const Kinem3 &k, Minor3::Ptr &m)
static Ptr create(const Kinem5 &k)
static int iss(int i, int j) CONST
static void Rescale(double factor)
static int is(int i, int j) CONST