\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}\frac{y - \left(x + z\right) \cdot \frac{z - x}{y}}{2}double f(double x, double y, double z) {
double r673367 = x;
double r673368 = r673367 * r673367;
double r673369 = y;
double r673370 = r673369 * r673369;
double r673371 = r673368 + r673370;
double r673372 = z;
double r673373 = r673372 * r673372;
double r673374 = r673371 - r673373;
double r673375 = 2.0;
double r673376 = r673369 * r673375;
double r673377 = r673374 / r673376;
return r673377;
}
double f(double x, double y, double z) {
double r673378 = y;
double r673379 = x;
double r673380 = z;
double r673381 = r673379 + r673380;
double r673382 = r673380 - r673379;
double r673383 = r673382 / r673378;
double r673384 = r673381 * r673383;
double r673385 = r673378 - r673384;
double r673386 = 2.0;
double r673387 = r673385 / r673386;
return r673387;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 28.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 28.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.TwoD.Apollonian:initialConfig from diagrams-contrib-1.3.0.5, A"
:precision binary64
:herbie-target
(- (* y 0.5) (* (* (/ 0.5 y) (+ z x)) (- z x)))
(/ (- (+ (* x x) (* y y)) (* z z)) (* y 2)))