q + \frac{\sqrt{\left(\left(q - a\right) \cdot \left(q - a\right) + \left(w - s\right) \cdot \left(w - s\right)\right) + \left(e - d\right) \cdot \left(e - d\right)}}{\sqrt{\left(\left(q - a\right) \cdot \left(q - a\right) + \left(w - s\right) \cdot \left(w - s\right)\right) + \left(e - d\right) \cdot \left(e - d\right)} - \sqrt{\left(\left(z - a\right) \cdot \left(z - a\right) + \left(x - s\right) \cdot \left(x - s\right)\right) + \left(c - d\right) \cdot \left(c - d\right)}} \cdot \left(z - q\right)q + \frac{\sqrt{\left(\left(q - a\right) \cdot \left(q - a\right) + \left(w - s\right) \cdot \left(w - s\right)\right) + \left(e - d\right) \cdot \left(e - d\right)}}{\sqrt{\left(\left(q - a\right) \cdot \left(q - a\right) + \left(w - s\right) \cdot \left(w - s\right)\right) + \left(e - d\right) \cdot \left(e - d\right)} - \sqrt{\left(\left(z - a\right) \cdot \left(z - a\right) + \left(x - s\right) \cdot \left(x - s\right)\right) + \left(c - d\right) \cdot \left(c - d\right)}} \cdot \left(z - q\right)double code(double q, double a, double w, double s, double e, double d, double z, double x, double c) {
return ((double) (q + ((double) (((double) (((double) sqrt(((double) (((double) (((double) (((double) (q - a)) * ((double) (q - a)))) + ((double) (((double) (w - s)) * ((double) (w - s)))))) + ((double) (((double) (e - d)) * ((double) (e - d)))))))) / ((double) (((double) sqrt(((double) (((double) (((double) (((double) (q - a)) * ((double) (q - a)))) + ((double) (((double) (w - s)) * ((double) (w - s)))))) + ((double) (((double) (e - d)) * ((double) (e - d)))))))) - ((double) sqrt(((double) (((double) (((double) (((double) (z - a)) * ((double) (z - a)))) + ((double) (((double) (x - s)) * ((double) (x - s)))))) + ((double) (((double) (c - d)) * ((double) (c - d)))))))))))) * ((double) (z - q))))));
}
double code(double q, double a, double w, double s, double e, double d, double z, double x, double c) {
return ((double) (q + ((double) (((double) (((double) sqrt(((double) (((double) (((double) (((double) (q - a)) * ((double) (q - a)))) + ((double) (((double) (w - s)) * ((double) (w - s)))))) + ((double) (((double) (e - d)) * ((double) (e - d)))))))) / ((double) (((double) sqrt(((double) (((double) (((double) (((double) (q - a)) * ((double) (q - a)))) + ((double) (((double) (w - s)) * ((double) (w - s)))))) + ((double) (((double) (e - d)) * ((double) (e - d)))))))) - ((double) sqrt(((double) (((double) (((double) (((double) (z - a)) * ((double) (z - a)))) + ((double) (((double) (x - s)) * ((double) (x - s)))))) + ((double) (((double) (c - d)) * ((double) (c - d)))))))))))) * ((double) (z - q))))));
}



Bits error versus q



Bits error versus a



Bits error versus w



Bits error versus s



Bits error versus e



Bits error versus d



Bits error versus z



Bits error versus x



Bits error versus c
Results
Initial program 58.1
Final simplification58.1
herbie shell --seed 2020152
(FPCore (q a w s e d z x c)
:name "(+ q (* (/ (sqrt (+ (+ (* (- q a) (- q a)) (* (- w s) (- w s))) (* (- e d) (- e d)))) (- (sqrt (+ (+ (* (- q a) (- q a)) (* (- w s) (- w s))) (* (- e d) (- e d)))) (sqrt (+ (+ (* (- z a) (- z a)) (* (- x s) (- x s))) (* (- c d) (- c d)))))) (- z q)))"
:precision binary64
(+ q (* (/ (sqrt (+ (+ (* (- q a) (- q a)) (* (- w s) (- w s))) (* (- e d) (- e d)))) (- (sqrt (+ (+ (* (- q a) (- q a)) (* (- w s) (- w s))) (* (- e d) (- e d)))) (sqrt (+ (+ (* (- z a) (- z a)) (* (- x s) (- x s))) (* (- c d) (- c d)))))) (- z q))))