/** * Returns the pace6 estimate of a single value. * * @param x the value * @return the pace6 estimate */ public double pace6(double x) { if (x > 100) return x; // pratical consideration. will modify later DoubleVector points = mixingDistribution.getPointValues(); DoubleVector values = mixingDistribution.getFunctionValues(); DoubleVector mean = points.sqrt(); DoubleVector d = Maths.dchisqLog(x, points); d.minusEquals(d.max()); d = d.map("java.lang.Math", "exp").timesEquals(values); double atilde = mean.innerProduct(d) / d.sum(); return atilde * atilde; }