Average Error: 17.9 → 17.9
Time: 1.9s
Precision: binary64
\[\frac{\left(\left(a + b\right) + c\right) \cdot \left(\left(a + b\right) - c\right)}{2 \cdot ab} - 1\]
\[\frac{\left(\left(a + b\right) + c\right) \cdot \left(\left(a + b\right) - c\right)}{2 \cdot ab} - 1\]
\frac{\left(\left(a + b\right) + c\right) \cdot \left(\left(a + b\right) - c\right)}{2 \cdot ab} - 1
\frac{\left(\left(a + b\right) + c\right) \cdot \left(\left(a + b\right) - c\right)}{2 \cdot ab} - 1
double code(double a, double b, double c, double ab) {
	return ((double) (((double) (((double) (((double) (((double) (a + b)) + c)) * ((double) (((double) (a + b)) - c)))) / ((double) (2.0 * ab)))) - 1.0));
}
double code(double a, double b, double c, double ab) {
	return ((double) (((double) (((double) (((double) (((double) (a + b)) + c)) * ((double) (((double) (a + b)) - c)))) / ((double) (2.0 * ab)))) - 1.0));
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus ab

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 17.9

    \[\frac{\left(\left(a + b\right) + c\right) \cdot \left(\left(a + b\right) - c\right)}{2 \cdot ab} - 1\]
  2. Final simplification17.9

    \[\leadsto \frac{\left(\left(a + b\right) + c\right) \cdot \left(\left(a + b\right) - c\right)}{2 \cdot ab} - 1\]

Reproduce

herbie shell --seed 2020152 
(FPCore (a b c ab)
  :name "(- (/ (* (+ (+ a b) c) (- (+ a b) c)) (* 2 ab)) 1)"
  :precision binary64
  (- (/ (* (+ (+ a b) c) (- (+ a b) c)) (* 2.0 ab)) 1.0))