Real ExponentialJump1dMesher::jumpSizeDensity(Real x, Time t) const { const Real a = 1.0-jumpIntensity_/beta_; const Real norm = 1.0-std::exp(-jumpIntensity_*t); const Real gammaValue = std::exp(GammaFunction().logValue(1.0-jumpIntensity_/beta_)); return jumpIntensity_*gammaValue/norm *( incompleteGammaFunction(a, x*std::exp(beta_*t)*eta_) -incompleteGammaFunction(a, x*eta_)) *std::pow(eta_, jumpIntensity_/beta_) /(beta_*std::pow(x, a)); }
double Gamma2Distribution::cumulative(const double x) { if(x<=0.0) return 0.0; double p=incompleteGammaFunction(a_,x/b_);//*exp(-gammaLn(a_)); //FILE *out=fopen("incomplgamma.log","a"); //fprintf(out,"%f;%f\n",x,p); //fclose(out); return p; }
double ChiSquareRV::getCDFvalue(double rvValue) { double result; if ( 0.0 < rvValue ) { result = incompleteGammaFunction(0.5*nu,0.5*rvValue); } else { result = 0.0; } return result; }
double GammaRV::getCDFvalue(double rvValue) { double result; if ( 0.0 < rvValue ) { result = incompleteGammaFunction(k,(lambda*rvValue)); } else { result = 0.0; } return result; }
Real operator()(BigNatural k) const { return 1.0 - incompleteGammaFunction(k+1, mu_); }