\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{\frac{1 - x}{y}}{\frac{3}{3 - x}}double f(double x, double y) {
double r43131140 = 1.0;
double r43131141 = x;
double r43131142 = r43131140 - r43131141;
double r43131143 = 3.0;
double r43131144 = r43131143 - r43131141;
double r43131145 = r43131142 * r43131144;
double r43131146 = y;
double r43131147 = r43131146 * r43131143;
double r43131148 = r43131145 / r43131147;
return r43131148;
}
double f(double x, double y) {
double r43131149 = 1.0;
double r43131150 = x;
double r43131151 = r43131149 - r43131150;
double r43131152 = y;
double r43131153 = r43131151 / r43131152;
double r43131154 = 3.0;
double r43131155 = r43131154 - r43131150;
double r43131156 = r43131154 / r43131155;
double r43131157 = r43131153 / r43131156;
return r43131157;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.8
rmApplied associate-/l*0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.1
Applied associate-/r*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019171
(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)))