\frac{\left(1.0 - x\right) \cdot \left(3.0 - x\right)}{y \cdot 3.0}\frac{3.0 - x}{3.0} \cdot \left(\frac{1.0}{y} - \frac{x}{y}\right)double f(double x, double y) {
double r32696397 = 1.0;
double r32696398 = x;
double r32696399 = r32696397 - r32696398;
double r32696400 = 3.0;
double r32696401 = r32696400 - r32696398;
double r32696402 = r32696399 * r32696401;
double r32696403 = y;
double r32696404 = r32696403 * r32696400;
double r32696405 = r32696402 / r32696404;
return r32696405;
}
double f(double x, double y) {
double r32696406 = 3.0;
double r32696407 = x;
double r32696408 = r32696406 - r32696407;
double r32696409 = r32696408 / r32696406;
double r32696410 = 1.0;
double r32696411 = y;
double r32696412 = r32696410 / r32696411;
double r32696413 = r32696407 / r32696411;
double r32696414 = r32696412 - r32696413;
double r32696415 = r32696409 * r32696414;
return r32696415;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.2
rmApplied times-frac0.1
rmApplied div-sub0.1
Final simplification0.1
herbie shell --seed 2019162
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:herbie-target
(* (/ (- 1.0 x) y) (/ (- 3.0 x) 3.0))
(/ (* (- 1.0 x) (- 3.0 x)) (* y 3.0)))