double RkPdf::MfRk(const double& x, const double& tau, const double& dm){ const double r_ckak = ck/ak; const double inv_ak = 1.0/ak; const double ndmtau = r_ckak*dm*tau; const double fact = 1.0/(1.0+ndmtau*ndmtau); double Li = 0.0; if(x<0.0){ const double ndm = dm/(ak-ck); const double ntau = tau*(ak-ck); Li = inv_ak*fact*(Mn(x,ntau,ndm)+ndmtau*An(x,ntau,ndm)); }else{ const double ndm = dm/(ak+ck); const double ntau = tau*(ak+ck); Li = inv_ak*fact*(Mp(x,ntau,ndm)+ndmtau*Ap(x,ntau,ndm)); } return Li; }
inline Float M(int m, int n) const { return Mp(m+prevLevel, n+prevLevel); }