Average Error: 0.1 → 0.1
Time: 1.9s
Precision: binary64
\[\left(\frac{0.5 \cdot RA}{\frac{dist}{RA}} + 0.5 \cdot dist\right) - \frac{0.5 \cdot RB}{\frac{dist}{RB}}\]
\[\left(\frac{0.5 \cdot RA}{\frac{dist}{RA}} + 0.5 \cdot dist\right) - \frac{0.5 \cdot RB}{\frac{dist}{RB}}\]
\left(\frac{0.5 \cdot RA}{\frac{dist}{RA}} + 0.5 \cdot dist\right) - \frac{0.5 \cdot RB}{\frac{dist}{RB}}
\left(\frac{0.5 \cdot RA}{\frac{dist}{RA}} + 0.5 \cdot dist\right) - \frac{0.5 \cdot RB}{\frac{dist}{RB}}
double code(double RA, double dist, double RB) {
	return ((double) (((double) (((double) (((double) (0.5 * RA)) / ((double) (dist / RA)))) + ((double) (0.5 * dist)))) - ((double) (((double) (0.5 * RB)) / ((double) (dist / RB))))));
}
double code(double RA, double dist, double RB) {
	return ((double) (((double) (((double) (((double) (0.5 * RA)) / ((double) (dist / RA)))) + ((double) (0.5 * dist)))) - ((double) (((double) (0.5 * RB)) / ((double) (dist / RB))))));
}

Error

Bits error versus RA

Bits error versus dist

Bits error versus RB

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\left(\frac{0.5 \cdot RA}{\frac{dist}{RA}} + 0.5 \cdot dist\right) - \frac{0.5 \cdot RB}{\frac{dist}{RB}}\]
  2. Final simplification0.1

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

Reproduce

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