public static double poissonPDFm1(double x_plus_1,double lambda){
  if (Double.isInfinite(lambda)) {
    return 0.;
  }
  if (x_plus_1 > 1) {
    return rawProbability(x_plus_1 - 1,lambda);
  }
  if (lambda > Math.abs(x_plus_1 - 1) * MathUtil.LOG2 * Double.MAX_EXPONENT / 1e-14) {
    return Math.exp(-lambda - GammaDistribution.logGamma(x_plus_1));
  }
 else {
    return rawProbability(x_plus_1,lambda) * (x_plus_1 / lambda);
  }
}

public static double poissonPDFm1 ( double x_plus_1 , double lambda ) { if ( Double . isInfinite ( lambda ) ) { return 0. ; } if ( x_plus_1 > 1 ) { return rawProbability ( x_plus_1 - 1 , lambda ) ; } if ( lambda > Math . abs ( x_plus_1 - 1 ) * MathUtil . LOG2 * Double . MAX_EXPONENT / 1e-14 ) { return Math . exp ( - lambda - GammaDistribution . logGamma ( x_plus_1 ) ) ; } else { return rawProbability ( x_plus_1 , lambda ) * ( x_plus_1 / lambda ) ; } }
compute the poisson distribution pdf with an offset of + 1 pdf ( x_plus_1 - 1 , lambda )
