Average Error: 34.3 → 34.3
Time: 3.4s
Precision: binary64
\[\frac{\sqrt{\left(\left(\left(a + b\right) \cdot \left(a + b\right)\right) \cdot \left(\left(a - b\right) + 2 \cdot c\right)\right) \cdot \left(\left(b - a\right) + 2 \cdot c\right)}}{4}\]
\[\frac{\sqrt{\left(\left(\left(a + b\right) \cdot \left(a + b\right)\right) \cdot \left(\left(a - b\right) + 2 \cdot c\right)\right) \cdot \left(\left(b - a\right) + 2 \cdot c\right)}}{4}\]
\frac{\sqrt{\left(\left(\left(a + b\right) \cdot \left(a + b\right)\right) \cdot \left(\left(a - b\right) + 2 \cdot c\right)\right) \cdot \left(\left(b - a\right) + 2 \cdot c\right)}}{4}
\frac{\sqrt{\left(\left(\left(a + b\right) \cdot \left(a + b\right)\right) \cdot \left(\left(a - b\right) + 2 \cdot c\right)\right) \cdot \left(\left(b - a\right) + 2 \cdot c\right)}}{4}
double code(double a, double b, double c) {
	return ((double) (((double) sqrt(((double) (((double) (((double) (((double) (a + b)) * ((double) (a + b)))) * ((double) (((double) (a - b)) + ((double) (2.0 * c)))))) * ((double) (((double) (b - a)) + ((double) (2.0 * c)))))))) / 4.0));
}
double code(double a, double b, double c) {
	return ((double) (((double) sqrt(((double) (((double) (((double) (((double) (a + b)) * ((double) (a + b)))) * ((double) (((double) (a - b)) + ((double) (2.0 * c)))))) * ((double) (((double) (b - a)) + ((double) (2.0 * c)))))))) / 4.0));
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 34.3

    \[\frac{\sqrt{\left(\left(\left(a + b\right) \cdot \left(a + b\right)\right) \cdot \left(\left(a - b\right) + 2 \cdot c\right)\right) \cdot \left(\left(b - a\right) + 2 \cdot c\right)}}{4}\]
  2. Final simplification34.3

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

Reproduce

herbie shell --seed 2020153 
(FPCore (a b c)
  :name "(/ (sqrt (* (* (* (+ a b) (+ a b)) (+ (- a b) (* 2 c))) (+ (- b a) (* 2 c)))) 4)"
  :precision binary64
  (/ (sqrt (* (* (* (+ a b) (+ a b)) (+ (- a b) (* 2.0 c))) (+ (- b a) (* 2.0 c)))) 4.0))