docs: public static double rawProbability(double x, double lambda) {
      // Extreme lambda
      if(lambda == 0) {
        return ((x == 0) ? 1. : 0.);
      }
      // Extreme values
      if(Double.isInfinite(lambda) || x < 0) {
        return 0.;
      }
      if(x <= lambda * Double.MIN_NORMAL) {
        return FastMath.exp(-lambda);
      }
      if(lambda < x * Double.MIN_NORMAL) {
        double r = -lambda + x * FastMath.log(lambda) - GammaDistribution.logGamma(x + 1);
        return FastMath.exp(r);
      }
      final double f = MathUtil.TWOPI * x;
      final double y = -stirlingError(x) - devianceTerm(x, lambda);
      return FastMath.exp(y) / FastMath.sqrt(f);
    }