private double weightedResidual(final VectorialPointValuePair pv) { final double[] value = pv.getValueRef(); double sum = 0; for (int i = 0; i < value.length; ++i) { final double ri = value[i] - target[i]; sum += weights[i] * ri * ri; } return sum; } });
private double weightedResidual(final VectorialPointValuePair pv) { final double[] value = pv.getValueRef(); double sum = 0; for (int i = 0; i < value.length; ++i) { final double ri = value[i] - target[i]; sum += weights[i] * ri * ri; } return sum; } });
/** {@inheritDoc} */ public boolean converged(final int iteration, final VectorialPointValuePair previous, final VectorialPointValuePair current) { final double[] p = previous.getValueRef(); final double[] c = current.getValueRef(); for (int i = 0; i < p.length; ++i) { final double pi = p[i]; final double ci = c[i]; final double difference = Math.abs(pi - ci); final double size = Math.max(Math.abs(pi), Math.abs(ci)); if ((difference > (size * relativeThreshold)) && (difference > absoluteThreshold)) { return false; } } return true; }
/** {@inheritDoc} */ public boolean converged(final int iteration, final VectorialPointValuePair previous, final VectorialPointValuePair current) { final double[] p = previous.getValueRef(); final double[] c = current.getValueRef(); for (int i = 0; i < p.length; ++i) { final double pi = p[i]; final double ci = c[i]; final double difference = FastMath.abs(pi - ci); final double size = FastMath.max(FastMath.abs(pi), FastMath.abs(ci)); if ((difference > (size * relativeThreshold)) && (difference > absoluteThreshold)) { return false; } } return true; }