\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{\sqrt{\frac{1}{9}}}{\sqrt{x}} \cdot \frac{\sqrt{\frac{1}{9}}}{\sqrt{x}}\right) - 1\right)double f(double x, double y) {
double r358794 = 3.0;
double r358795 = x;
double r358796 = sqrt(r358795);
double r358797 = r358794 * r358796;
double r358798 = y;
double r358799 = 1.0;
double r358800 = 9.0;
double r358801 = r358795 * r358800;
double r358802 = r358799 / r358801;
double r358803 = r358798 + r358802;
double r358804 = r358803 - r358799;
double r358805 = r358797 * r358804;
return r358805;
}
double f(double x, double y) {
double r358806 = 3.0;
double r358807 = x;
double r358808 = sqrt(r358807);
double r358809 = r358806 * r358808;
double r358810 = y;
double r358811 = 1.0;
double r358812 = 9.0;
double r358813 = r358811 / r358812;
double r358814 = sqrt(r358813);
double r358815 = r358814 / r358808;
double r358816 = r358815 * r358815;
double r358817 = r358810 + r358816;
double r358818 = r358817 - r358811;
double r358819 = r358809 * r358818;
return r358819;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.5 |
Initial program 0.4
rmApplied *-un-lft-identity0.4
Applied times-frac0.4
rmApplied add-sqr-sqrt0.4
Applied add-sqr-sqrt0.5
Applied add-sqr-sqrt0.5
Applied times-frac0.5
Applied unswap-sqr0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020045
(FPCore (x y)
:name "Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, B"
:precision binary64
:herbie-target
(* 3 (+ (* y (sqrt x)) (* (- (/ 1 (* x 9)) 1) (sqrt x))))
(* (* 3 (sqrt x)) (- (+ y (/ 1 (* x 9))) 1)))