question: public static double rawLogProbability ( double x , double lambda ) { if ( lambda == 0 ) { return ( ( x == 0 ) ? 1. : Double . NEGATIVE_INFINITY ) ; } if ( Double . isInfinite ( lambda ) || x < 0 ) { return Double . NEGATIVE_INFINITY ; } if ( x <= lambda * Double . MIN_NORMAL ) { return - lambda ; } if ( lambda < x * Double . MIN_NORMAL ) { return - lambda + x * Math . log ( lambda ) - GammaDistribution . logGamma ( x + 1 ) ; } final double f = MathUtil . TWOPI * x ; final double y = - stirlingError ( x ) - devianceTerm ( x , lambda ) ; return - 0.5 * Math . log ( f ) + y ; }
target:  Poisson distribution probability, but also for non-integer arguments. lb^x exp(-lb) / x!