\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{\frac{1 - x}{y}}{3} \cdot \left(3 - x\right)double f(double x, double y) {
double r541120 = 1.0;
double r541121 = x;
double r541122 = r541120 - r541121;
double r541123 = 3.0;
double r541124 = r541123 - r541121;
double r541125 = r541122 * r541124;
double r541126 = y;
double r541127 = r541126 * r541123;
double r541128 = r541125 / r541127;
return r541128;
}
double f(double x, double y) {
double r541129 = 1.0;
double r541130 = x;
double r541131 = r541129 - r541130;
double r541132 = y;
double r541133 = r541131 / r541132;
double r541134 = 3.0;
double r541135 = r541133 / r541134;
double r541136 = r541134 - r541130;
double r541137 = r541135 * r541136;
return r541137;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 5.7
Simplified0.3
rmApplied div-inv0.4
Applied associate-*l*0.4
Simplified0.2
Final simplification0.2
herbie shell --seed 2019194
(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)))