Average Error: 58.1 → 58.1
Time: 2.9s
Precision: binary64
\[\sqrt{\left(a - b\right) \cdot \left(a - b\right) + r \cdot r} - \sqrt{\left(a + b\right) \cdot \left(a + b\right) + r \cdot r}\]
\[\sqrt{\left(a - b\right) \cdot \left(a - b\right) + r \cdot r} - \sqrt{\left(a + b\right) \cdot \left(a + b\right) + r \cdot r}\]
\sqrt{\left(a - b\right) \cdot \left(a - b\right) + r \cdot r} - \sqrt{\left(a + b\right) \cdot \left(a + b\right) + r \cdot r}
\sqrt{\left(a - b\right) \cdot \left(a - b\right) + r \cdot r} - \sqrt{\left(a + b\right) \cdot \left(a + b\right) + r \cdot r}
double code(double a, double b, double r) {
	return ((double) (((double) sqrt(((double) (((double) (((double) (a - b)) * ((double) (a - b)))) + ((double) (r * r)))))) - ((double) sqrt(((double) (((double) (((double) (a + b)) * ((double) (a + b)))) + ((double) (r * r))))))));
}
double code(double a, double b, double r) {
	return ((double) (((double) sqrt(((double) (((double) (((double) (a - b)) * ((double) (a - b)))) + ((double) (r * r)))))) - ((double) sqrt(((double) (((double) (((double) (a + b)) * ((double) (a + b)))) + ((double) (r * r))))))));
}

Error

Bits error versus a

Bits error versus b

Bits error versus r

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 58.1

    \[\sqrt{\left(a - b\right) \cdot \left(a - b\right) + r \cdot r} - \sqrt{\left(a + b\right) \cdot \left(a + b\right) + r \cdot r}\]
  2. Final simplification58.1

    \[\leadsto \sqrt{\left(a - b\right) \cdot \left(a - b\right) + r \cdot r} - \sqrt{\left(a + b\right) \cdot \left(a + b\right) + r \cdot r}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a b r)
  :name "(- (sqrt (+ (* (- a b) (- a b)) (* r r))) (sqrt (+ (* (+ a b) (+ a b)) (* r r))))"
  :precision binary64
  (- (sqrt (+ (* (- a b) (- a b)) (* r r))) (sqrt (+ (* (+ a b) (+ a b)) (* r r)))))