\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(1 - \frac{\frac{1}{x}}{9}\right) - \frac{1}{3} \cdot \frac{1}{\frac{\sqrt{x}}{y}}double f(double x, double y) {
double r339111 = 1.0;
double r339112 = x;
double r339113 = 9.0;
double r339114 = r339112 * r339113;
double r339115 = r339111 / r339114;
double r339116 = r339111 - r339115;
double r339117 = y;
double r339118 = 3.0;
double r339119 = sqrt(r339112);
double r339120 = r339118 * r339119;
double r339121 = r339117 / r339120;
double r339122 = r339116 - r339121;
return r339122;
}
double f(double x, double y) {
double r339123 = 1.0;
double r339124 = x;
double r339125 = r339123 / r339124;
double r339126 = 9.0;
double r339127 = r339125 / r339126;
double r339128 = r339123 - r339127;
double r339129 = 1.0;
double r339130 = 3.0;
double r339131 = r339129 / r339130;
double r339132 = sqrt(r339124);
double r339133 = y;
double r339134 = r339132 / r339133;
double r339135 = r339129 / r339134;
double r339136 = r339131 * r339135;
double r339137 = r339128 - r339136;
return r339137;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.2
rmApplied associate-/r*0.2
rmApplied *-un-lft-identity0.2
Applied times-frac0.2
rmApplied clear-num0.3
Final simplification0.3
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, D"
:precision binary64
:herbie-target
(- (- 1 (/ (/ 1 x) 9)) (/ y (* 3 (sqrt x))))
(- (- 1 (/ 1 (* x 9))) (/ y (* 3 (sqrt x)))))