Average Error: 28.8 → 28.8
Time: 2.0s
Precision: binary64
\[\frac{\left({dist}^{2} + {RA}^{2}\right) - {RB}^{2}}{2 \cdot dist}\]
\[\frac{\left({dist}^{2} + {RA}^{2}\right) - {RB}^{2}}{2 \cdot dist}\]
\frac{\left({dist}^{2} + {RA}^{2}\right) - {RB}^{2}}{2 \cdot dist}
\frac{\left({dist}^{2} + {RA}^{2}\right) - {RB}^{2}}{2 \cdot dist}
double code(double dist, double RA, double RB) {
	return ((double) (((double) (((double) (((double) pow(dist, 2.0)) + ((double) pow(RA, 2.0)))) - ((double) pow(RB, 2.0)))) / ((double) (2.0 * dist))));
}
double code(double dist, double RA, double RB) {
	return ((double) (((double) (((double) (((double) pow(dist, 2.0)) + ((double) pow(RA, 2.0)))) - ((double) pow(RB, 2.0)))) / ((double) (2.0 * dist))));
}

Error

Bits error versus dist

Bits error versus RA

Bits error versus RB

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 28.8

    \[\frac{\left({dist}^{2} + {RA}^{2}\right) - {RB}^{2}}{2 \cdot dist}\]
  2. Final simplification28.8

    \[\leadsto \frac{\left({dist}^{2} + {RA}^{2}\right) - {RB}^{2}}{2 \cdot dist}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (dist RA RB)
  :name "(/ (- (+ (pow dist 2) (pow RA 2)) (pow RB 2)) (* 2 dist))"
  :precision binary64
  (/ (- (+ (pow dist 2.0) (pow RA 2.0)) (pow RB 2.0)) (* 2.0 dist)))