\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(\left(1 - \frac{\frac{y}{\sqrt{x}}}{3}\right) + \frac{-1}{9 \cdot x} \cdot 1\right) + \frac{\frac{1}{x}}{9} \cdot \left(\left(-1\right) + 1\right)double f(double x, double y) {
double r280075 = 1.0;
double r280076 = x;
double r280077 = 9.0;
double r280078 = r280076 * r280077;
double r280079 = r280075 / r280078;
double r280080 = r280075 - r280079;
double r280081 = y;
double r280082 = 3.0;
double r280083 = sqrt(r280076);
double r280084 = r280082 * r280083;
double r280085 = r280081 / r280084;
double r280086 = r280080 - r280085;
return r280086;
}
double f(double x, double y) {
double r280087 = 1.0;
double r280088 = y;
double r280089 = x;
double r280090 = sqrt(r280089);
double r280091 = r280088 / r280090;
double r280092 = 3.0;
double r280093 = r280091 / r280092;
double r280094 = r280087 - r280093;
double r280095 = -1.0;
double r280096 = 9.0;
double r280097 = r280096 * r280089;
double r280098 = r280095 / r280097;
double r280099 = r280098 * r280087;
double r280100 = r280094 + r280099;
double r280101 = 1.0;
double r280102 = r280101 / r280089;
double r280103 = r280102 / r280096;
double r280104 = -r280087;
double r280105 = r280104 + r280087;
double r280106 = r280103 * r280105;
double r280107 = r280100 + r280106;
return r280107;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied *-un-lft-identity0.2
Applied distribute-lft-out--0.2
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied div-inv0.2
Applied times-frac0.2
Applied add-sqr-sqrt15.4
Applied prod-diff15.4
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019326 +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)))))