/** {@inheritDoc} */ public double compute(double[] a, double[] b) throws DimensionMismatchException { MathArrays.checkEqualLength(a, b); double sum = 0; for (int i = 0; i < a.length; i++) { final double num = FastMath.abs(a[i] - b[i]); final double denom = FastMath.abs(a[i]) + FastMath.abs(b[i]); sum += num == 0.0 && denom == 0.0 ? 0.0 : num / denom; } return sum; }
/** {@inheritDoc} * @since 3.2 */ public Decimal64 linearCombination(final Decimal64 a1, final Decimal64 b1, final Decimal64 a2, final Decimal64 b2) { return new Decimal64(MathArrays.linearCombination(a1.value, b1.value, a2.value, b2.value)); }
/** {@inheritDoc} */ @Override public void resetCount() { super.resetCount(); delegate = delegate.withStart(0); }
/** {@inheritDoc} * @since 3.2 */ public Decimal64 linearCombination(final Decimal64 a1, final Decimal64 b1, final Decimal64 a2, final Decimal64 b2, final Decimal64 a3, final Decimal64 b3, final Decimal64 a4, final Decimal64 b4) { return new Decimal64(MathArrays.linearCombination(a1.value, b1.value, a2.value, b2.value, a3.value, b3.value, a4.value, b4.value)); }