|
@@ -13,6 +13,17 @@ public class NumUtil {
|
|
|
return d1 / d2;
|
|
|
}
|
|
|
|
|
|
+ public static double divSmoothV1(double a, double b, double zscore) {
|
|
|
+ // Wilson Smoothing
|
|
|
+ if (a == 0 || b == 0) {
|
|
|
+ return 0d;
|
|
|
+ }
|
|
|
+ double zscore2 = zscore * zscore;
|
|
|
+ double p = a / b;
|
|
|
+ double numerator = p + zscore2 / (2 * b) - zscore * Math.sqrt((p * (1 - p) + zscore2 / (4 * b)) / b);
|
|
|
+ double denominator = 1 + zscore2 / b;
|
|
|
+ return numerator / denominator;
|
|
|
+ }
|
|
|
|
|
|
public static double log(double a) {
|
|
|
if (a <= 0) {
|