\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}\frac{y - \frac{z - x}{y} \cdot \left(x + z\right)}{2}double f(double x, double y, double z) {
double r537452 = x;
double r537453 = r537452 * r537452;
double r537454 = y;
double r537455 = r537454 * r537454;
double r537456 = r537453 + r537455;
double r537457 = z;
double r537458 = r537457 * r537457;
double r537459 = r537456 - r537458;
double r537460 = 2.0;
double r537461 = r537454 * r537460;
double r537462 = r537459 / r537461;
return r537462;
}
double f(double x, double y, double z) {
double r537463 = y;
double r537464 = z;
double r537465 = x;
double r537466 = r537464 - r537465;
double r537467 = r537466 / r537463;
double r537468 = r537465 + r537464;
double r537469 = r537467 * r537468;
double r537470 = r537463 - r537469;
double r537471 = 2.0;
double r537472 = r537470 / r537471;
return r537472;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 29.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 29.2
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019195
(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)))