QCDLoop
One-loop scalar Feynman integrals
Public Member Functions | Protected Attributes | List of all members
ql::Tools< TOutput, TMass, TScale > Class Template Reference

Standard Tools for the library. More...

#include <tools.h>

Inheritance diagram for ql::Tools< TOutput, TMass, TScale >:
Inheritance graph
[legend]

Public Member Functions

 Tools ()
 The Constructor.
 
 ~Tools ()
 The Destructor.
 
bool iszero (TMass const &psq) const
 Check for zeros. More...
 
TOutput cLn (TOutput const &z, TScale const &isig) const
 Log of complex argument with explicit sign for imag part. More...
 
TOutput cLn (TScale const &x, TScale const &isig) const
 
TOutput fndd (int const &n, TOutput const &x, TScale const &iep) const
 The fndd function. More...
 
TOutput Lnrat (TOutput const &x, TOutput const &y) const
 Computes the ratio of logs. More...
 
TOutput Lnrat (TScale const &x, TScale const &y) const
 
TMass ddilog (TMass const &x) const
 Computes the dilog function for real argument. More...
 
TOutput denspence (TOutput const &z, TScale const &isig) const
 Spence's function. More...
 
TOutput spencer (TOutput const &zrat1, TOutput const &zrat2, TScale const &ieps1, TScale const &ieps2) const
 Spence's function for ratio arguments. More...
 
TOutput xspence (TOutput const (&z1)[2], TScale const (&im1)[2], TOutput const &z2, TScale const &im2) const
 Difference of complex Spence's function. More...
 
TOutput cspence (TOutput const &z1, TScale const &im1, TOutput const &z2, TScale const &im2) const
 Complex Spence's function. More...
 
TOutput Li2omrat (TScale const &x, TScale const &y) const
 Expression for dilog(1-(x-i*ep)/(y-i*ep)). More...
 
TOutput Li2omrat (TOutput const &x, TOutput const &y, TScale const &ieps1=-1, TScale const &ieps2=-1) const
 
TOutput Li2omx2 (TScale const &v, TScale const &w, TScale const &x, TScale const &y) const
 Expression for dilog(1-(v-i*ep)*(w-i*ep)/(x-i*ep)/(y-i*ep)). More...
 
TOutput Li2omx2 (TOutput const &v, TOutput const &w, TOutput const &x, TOutput const &y, TScale const &ieps1=-1, TScale const &ieps2=-1) const
 
TOutput cLi2omx2 (TOutput const &z1, TOutput const &z2, TScale const &ieps1=-1, TScale const &ieps2=-1) const
 
TOutput Li2omx (TMass const &x1, TMass const &x2, TScale const &ieps1, TScale const &ieps2) const
 Calculate Li[2](1-(x1+ieps1)*(x2+ieps2)) More...
 
TOutput cLi2omx3 (TOutput const &z1, TOutput const &z2, TOutput const &z3, TScale const &ieps1, TScale const &ieps2, TScale const &ieps3) const
 Calculate Li[2](1-(z1+ieps1)*(z2+ieps2)*(z3+ieps3)) More...
 
TOutput L0 (TMass const &x, TMass const &y) const
 
TOutput L1 (TMass const &x, TMass const &y) const
 
TOutput R3int (TOutput const &p, TOutput const &s1, TOutput const &s2, TOutput const &t1) const
 
TOutput R3int (TOutput const &p, TOutput const &s1, TOutput const &s2, TOutput const &t1, TOutput const &t2, TOutput const &t3, TOutput const &t4) const
 
TOutput R2int (TOutput const &a, TOutput const &b, TOutput const &y0) const
 
TOutput Rint (TOutput const &y, TOutput const &z, TScale const &ieps) const
 
void R (TOutput &r, TOutput &d, TOutput const &q) const
 Tools<TOutput, TMass, TScale>::R. More...
 
TOutput Zlogint (TOutput const &z, TScale const &ieps) const
 Tools<TOutput, TMass, TScale>::qlZlogint. More...
 
TOutput ltspence (int const &i_in, TOutput const &z_in, TScale const &s) const
 
TOutput li2series (TOutput const &z, TScale const &isig) const
 
TOutput ltli2series (TOutput const &z1, TScale const &s) const
 
TOutput eta2 (TOutput const &a, TOutput const &b) const
 
TOutput eta3 (TOutput const &a, TOutput const &b, TOutput const &c) const
 
TOutput eta5 (TOutput const &a, TOutput const &b, TOutput const &c, TOutput const &d, TOutput const &e) const
 
TOutput xetatilde (TOutput const (&z1)[2], TScale const (&im1)[2], TOutput const &z2, TScale const &im2, TOutput const (&l1)[2]) const
 
TOutput xeta (TOutput const (&z1)[2], TScale const (&im1)[2], TOutput const &z2, TScale const &im2, TScale const &im12, TOutput const (&l1)[2]) const
 
int eta (TOutput const &z1, TScale const &s1, TOutput const &z2, TScale const &s2, TScale const &s12) const
 
int etatilde (TOutput const &c1, TScale const &im1x, TOutput const &c2, TScale const &im2x) const
 
void kfn (TOutput(&res)[3], TScale &ieps, TMass const &xpi, TMass const &xm, TMass const &xmp) const
 The K-function. More...
 
void solveabc (TMass const &a, TMass const &b, TMass const &c, TOutput(&z)[2]) const
 Solution of the quadratic equation. More...
 
void solveabcd (TOutput const &a, TOutput const &b, TOutput const &c, TOutput const &d, TOutput(&z)[2]) const
 Solution of the quadratic equation passing the discriminant. More...
 
void solveabcd (TOutput const &a, TOutput const &b, TOutput const &c, TOutput(&z)[2]) const
 
void ratgam (TOutput &ratp, TOutput &ratm, TScale &ieps, TMass const &p3sq, TMass const &m3sq, TMass const &m4sq) const
 Ratio function. More...
 
void ratreal (TMass const &si, TMass const &ta, TMass &rat, TScale &ieps) const
 Ratio function. More...
 

Protected Attributes

TScale _pi
 
TScale _pi2
 
TScale _pio3
 
TScale _pio6
 
TScale _pi2o3
 
TScale _pi2o6
 
TScale _pi2o12
 
TScale _zero
 
TScale _half
 
TScale _one
 
TScale _two
 
TScale _three
 
TScale _four
 
TScale _five
 
TScale _six
 
TScale _ten
 
TScale _eps
 
TScale _eps4
 
TScale _eps7
 
TScale _eps10
 
TScale _eps14
 
TScale _eps15
 
TScale _xloss
 
TScale _neglig
 
TScale _reps
 
TOutput _2ipi
 
TOutput _ipio2
 
TOutput _ipi
 
TOutput _czero
 
TOutput _chalf
 
TOutput _cone
 
TOutput _ctwo
 
TOutput _cthree
 
TOutput _cfour
 
TOutput _ieps
 
TOutput _ieps2
 
TOutput _ieps50
 

Detailed Description

template<typename TOutput = complex, typename TMass = double, typename TScale = double>
class ql::Tools< TOutput, TMass, TScale >

Standard Tools for the library.

The container of common functions used by Topology.

Member Function Documentation

template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::cLi2omx2 ( TOutput const &  z1,
TOutput const &  z2,
TScale const &  ieps1 = -1,
TScale const &  ieps2 = -1 
) const

Calculates Li[2](1-(z1+ieps1)*(z2+ieps2)) for complex z1,z2 Using +Li2(1-z1*z2) for z1*z2<1 and -Li2(1-1/(z1*z2))-1/2*(ln(z1)+ln(z2))^2 for z1*z2>1

Parameters
z1input argument
z2input argument
ieps1sign of z1
ieps2sign of z2
Returns
Li2 of the 1-product
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::cLi2omx3 ( TOutput const &  z1,
TOutput const &  z2,
TOutput const &  z3,
TScale const &  ieps1,
TScale const &  ieps2,
TScale const &  ieps3 
) const

Calculate Li[2](1-(z1+ieps1)*(z2+ieps2)*(z3+ieps3))

Generalization of cLi2omx2 for 3 arguments.

template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::cLn ( TOutput const &  z,
TScale const &  isig 
) const

Log of complex argument with explicit sign for imag part.

Computes the log of a complex number z. If the imag(z)=0 and real(z)<0 and extra ipi term is included.

Parameters
zthe complex argument of the logarithm
isigthe sign of the imaginary part
Returns
the complex log(z)
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::cLn ( TScale const &  x,
TScale const &  isig 
) const

Computes the log of a real number x. If the x<0 and extra ipi term is included.

Parameters
xthe real argument of the logarithm
isigthe sign of the imaginary part
Returns
the complex log(x)
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::cspence ( TOutput const &  z1,
TScale const &  im1,
TOutput const &  z2,
TScale const &  im2 
) const

Complex Spence's function.

Parameters
z1input argument
im1sign of z1
z2input argument
im2sign of z2
Returns
the complex Spence's function
template<typename TOutput , typename TMass , typename TScale >
TMass ql::Tools< TOutput, TMass, TScale >::ddilog ( TMass const &  x) const

Computes the dilog function for real argument.

The dilog function for real argument

Parameters
xthe argument of the dilog
Returns
the dilog
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::denspence ( TOutput const &  z,
TScale const &  isig 
) const

Spence's function.

Parameters
zthe argument
isigthe sign of z
template<typename TOutput , typename TMass , typename TScale >
int ql::Tools< TOutput, TMass, TScale >::eta ( TOutput const &  z1,
TScale const &  s1,
TOutput const &  z2,
TScale const &  s2,
TScale const &  s12 
) const
Parameters
z1
s1
z2
s2
s12
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::eta2 ( TOutput const &  a,
TOutput const &  b 
) const
Parameters
a
b
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::eta3 ( TOutput const &  a,
TOutput const &  b,
TOutput const &  c 
) const
Parameters
a
b
c
Returns
template<typename TOutput , typename TMass , typename TScale >
int ql::Tools< TOutput, TMass, TScale >::etatilde ( TOutput const &  c1,
TScale const &  im1x,
TOutput const &  c2,
TScale const &  im2x 
) const
Parameters
c1
im1x
c2
im2x
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::fndd ( int const &  n,
TOutput const &  x,
TScale const &  iep 
) const

The fndd function.

Implementation of the formulae of Denner and Dittmaier [5].

\[ f_{n}(x) = \ln \left( 1 - \frac{1}{x} \right) + \sum_{l=n+1}^{\infty} \frac{x^{n-l}}{l+1} \]

Parameters
nthe lower index of
xthe argument of the function
iepthe epsilon value
Returns
function DD from Eq. 4.11 of [5].
template<typename TOutput , typename TMass , typename TScale >
bool ql::Tools< TOutput, TMass, TScale >::iszero ( TMass const &  psq) const

Check for zeros.

Compares the Abs(psq) to the cutoff

Parameters
msqthe input to be tested
Returns
true if |psq| < onshell cut-off
template<typename TOutput , typename TMass , typename TScale >
void ql::Tools< TOutput, TMass, TScale >::kfn ( TOutput(&)  res[3],
TScale &  ieps,
TMass const &  xpi,
TMass const &  xm,
TMass const &  xmp 
) const

The K-function.

Calculate the K-function give in Eq. 2.7 of [1]

\[ K(p^2,m,m_p) = \frac{1-\sqrt{1-4m m_p / (z-(m-m_p)^2)}}{1+\sqrt{1-4m m_p / (z-(m-m_p)^2)}} \]

and fill x[0] = -K, x[1] = 1+K, x[2] = 1-K, the roots are allowed to be imaginary. ieps gives the sign of the imaginary part of -K: 1 -> +i*eps

template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::L0 ( TMass const &  x,
TMass const &  y 
) const
Parameters
xinput argument
yinput argument
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::L1 ( TMass const &  x,
TMass const &  y 
) const
Parameters
xinput argument
yinput argument
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::Li2omrat ( TScale const &  x,
TScale const &  y 
) const

Expression for dilog(1-(x-i*ep)/(y-i*ep)).

Parameters
xnumerator
ydenominator
Returns
the Li2 ratio
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::Li2omx ( TMass const &  x1,
TMass const &  x2,
TScale const &  ieps1,
TScale const &  ieps2 
) const

Calculate Li[2](1-(x1+ieps1)*(x2+ieps2))

Calculate Li[2](1-(x1+ieps1)*(x2+ieps2)) for real x1,x2 Using +Li2(1-x1*x2) for x1*x2<1 and -Li2(1-1/(x1*x2))-1/2*(ln(x1)+ln(x2))^2 for x1*x2>1

Parameters
x1numerator
x2denominator
ieps1sign of x1
ieps2sign of x2
Returns
the ratio Li2
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::Li2omx2 ( TScale const &  v,
TScale const &  w,
TScale const &  x,
TScale const &  y 
) const

Expression for dilog(1-(v-i*ep)*(w-i*ep)/(x-i*ep)/(y-i*ep)).

expression for dilog(1-(v-i*ep)*(w-i*ep)/(x-i*ep)/(y-i*ep)) for real v,w,x and y

Parameters
vnumerator
wnumerator
xdenominator
ydenominator
Returns
the dilog ratio
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::Li2omx2 ( TOutput const &  v,
TOutput const &  w,
TOutput const &  x,
TOutput const &  y,
TScale const &  ieps1 = -1,
TScale const &  ieps2 = -1 
) const

Calculates Li[2](1-(z1+ieps1)*(z2+ieps2)) for complex z1,z2 Using +Li2(1-z1*z2) for z1*z2<1 and -Li2(1-1/(z1*z2))-1/2*(ln(z1)+ln(z2))^2 for z1*z2>1

Parameters
z1input argument
z2input argument
ieps1sign of z1
ieps2sign of z2
Returns
Li2 of the 1-product
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::li2series ( TOutput const &  z,
TScale const &  isig 
) const
Parameters
z
isig
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::Lnrat ( TOutput const &  x,
TOutput const &  y 
) const

Computes the ratio of logs.

Computes \({\rm Lnrat}(x,y) = \log(x-i \epsilon)-\log(y-i \epsilon)\)

Parameters
xTMass object for the numerator
yTMass object for the denumerator
Returns
returns the ratio of logs
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::ltli2series ( TOutput const &  z1,
TScale const &  s 
) const
Parameters
z1
s
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::ltspence ( int const &  i_in,
TOutput const &  z_in,
TScale const &  s 
) const
Parameters
i_in
z_in
s
Returns
template<typename TOutput , typename TMass , typename TScale >
void ql::Tools< TOutput, TMass, TScale >::R ( TOutput &  r,
TOutput &  d,
TOutput const &  q 
) const

Tools<TOutput, TMass, TScale>::R.

Parameters
q
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::R2int ( TOutput const &  a,
TOutput const &  b,
TOutput const &  y0 
) const

Finite Triangle Li2 sum.

template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::R3int ( TOutput const &  a,
TOutput const &  s1,
TOutput const &  s2,
TOutput const &  t1 
) const

Finite Triangle Li2 sum.

template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::R3int ( TOutput const &  a,
TOutput const &  s1,
TOutput const &  s2,
TOutput const &  t1,
TOutput const &  t2,
TOutput const &  t3,
TOutput const &  t4 
) const

Finite Triangle Li2 sum.

template<typename TOutput , typename TMass , typename TScale >
void ql::Tools< TOutput, TMass, TScale >::ratgam ( TOutput &  ratp,
TOutput &  ratm,
TScale &  ieps,
TMass const &  p3sq,
TMass const &  m3sq,
TMass const &  m4sq 
) const

Ratio function.

Calculate the function

\[ R(p^2,m,m_p) = \frac{p_3^2+m_4^2-m_3^2+\sqrt{(p_3^2+m_4^2-m_3^2)^2-4 p_3^2 m_4^2}}{-p_3^2+m_4^2-m_3^2+\sqrt{(p_3^2+m_4^2-m_3^2)^2-4 p_3^2 m_4^2}} \]

where the roots are allowed to be imaginary.

template<typename TOutput , typename TMass , typename TScale >
void ql::Tools< TOutput, TMass, TScale >::ratreal ( TMass const &  si,
TMass const &  ta,
TMass &  rat,
TScale &  ieps 
) const

Ratio function.

Calculate the function

\[ R = \frac{\sigma-i \epsilon}{\tau-i \epsilon} \]

where sigma and tau are real and ieps give the sign if i*pi.

template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::Rint ( TOutput const &  y,
TOutput const &  z,
TScale const &  ieps 
) const
Parameters
y
z
ieps
Returns
template<typename TOutput , typename TMass , typename TScale >
void ql::Tools< TOutput, TMass, TScale >::solveabc ( TMass const &  a,
TMass const &  b,
TMass const &  c,
TOutput(&)  z[2] 
) const

Solution of the quadratic equation.

Solution of a quadratic equation a*z^2+b*z+c=0.

Parameters
acoefficient
bcoefficient
ccoefficient
lresult [-im,+im]
template<typename TOutput , typename TMass , typename TScale >
void ql::Tools< TOutput, TMass, TScale >::solveabcd ( TOutput const &  a,
TOutput const &  b,
TOutput const &  c,
TOutput const &  d,
TOutput(&)  z[2] 
) const

Solution of the quadratic equation passing the discriminant.

Solution of a quadratic equation a*z^2+b*z+c=0, with a give input discriminant.

Parameters
acoefficient
bcoefficient
ccoefficient
ddiscriminant
lresult [-im,+im]
template<typename TOutput , typename TMass , typename TScale >
void ql::Tools< TOutput, TMass, TScale >::solveabcd ( TOutput const &  a,
TOutput const &  b,
TOutput const &  c,
TOutput(&)  z[2] 
) const

Solution of a quadratic equation a*z^2+b*z+c=0, with a give input discriminant.

Parameters
acoefficient
bcoefficient
ccoefficient
ddiscriminant
lresult [-im,+im]
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::spencer ( TOutput const &  zrat1,
TOutput const &  zrat2,
TScale const &  ieps1,
TScale const &  ieps2 
) const

Spence's function for ratio arguments.

Parameters
zrat1first argument
zrat2second argument
ieps1sign for zrat1
ieps2sign for zrat2
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::xeta ( TOutput const (&)  z1[2],
TScale const (&)  im1[2],
TOutput const &  z2,
TScale const &  im2,
TScale const &  im12,
TOutput const (&)  l1[2] 
) const
Parameters
z2
im2
im12
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::xetatilde ( TOutput const (&)  z1[2],
TScale const (&)  im1[2],
TOutput const &  z2,
TScale const &  im2,
TOutput const (&)  l1[2] 
) const
Parameters
z2
im2
Returns
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::xspence ( TOutput const (&)  z1[2],
TScale const (&)  im1[2],
TOutput const &  z2,
TScale const &  im2 
) const

Difference of complex Spence's function.

Parameters
z2input arguments
im2input signs.
Returns
the difference of cspence functions
template<typename TOutput , typename TMass , typename TScale >
TOutput ql::Tools< TOutput, TMass, TScale >::Zlogint ( TOutput const &  z,
TScale const &  ieps 
) const

Tools<TOutput, TMass, TScale>::qlZlogint.

Parameters
z
ieps
Returns

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