\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}\frac{y + \frac{x + z}{\frac{y}{x - z}}}{2}double f(double x, double y, double z) {
double r468566 = x;
double r468567 = r468566 * r468566;
double r468568 = y;
double r468569 = r468568 * r468568;
double r468570 = r468567 + r468569;
double r468571 = z;
double r468572 = r468571 * r468571;
double r468573 = r468570 - r468572;
double r468574 = 2.0;
double r468575 = r468568 * r468574;
double r468576 = r468573 / r468575;
return r468576;
}
double f(double x, double y, double z) {
double r468577 = y;
double r468578 = x;
double r468579 = z;
double r468580 = r468578 + r468579;
double r468581 = r468578 - r468579;
double r468582 = r468577 / r468581;
double r468583 = r468580 / r468582;
double r468584 = r468577 + r468583;
double r468585 = 2.0;
double r468586 = r468584 / r468585;
return r468586;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 28.6 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 28.6
Simplified12.7
rmApplied difference-of-squares12.7
Applied associate-/l*0.2
Final simplification0.2
herbie shell --seed 2019199
(FPCore (x y z)
:name "Diagrams.TwoD.Apollonian:initialConfig from diagrams-contrib-1.3.0.5, A"
:herbie-target
(- (* y 0.5) (* (* (/ 0.5 y) (+ z x)) (- z x)))
(/ (- (+ (* x x) (* y y)) (* z z)) (* y 2.0)))