double fLineTol,
double pointTol) {
final MultivariateOptimizer optim = new PowellOptimizer(fTol, Math.ulp(1d),
fLineTol, Math.ulp(1d));
final PointValuePair result = optim.optimize(1000, func, goal, init);
final double[] point = result.getPoint();
for (int i = 0, dim = optimum.length; i < dim; i++) {
Assert.assertEquals("found[" + i + "]=" + point[i] + " value=" + result.getValue(),
optimum[i], point[i], pointTol);