\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\mathsf{fma}\left(\frac{\frac{y}{3}}{\sqrt{x}}, -1, \frac{\frac{y}{3}}{\sqrt{x}}\right) + \left(1 - \left(\frac{0.1111111111111111049432054187491303309798}{x} + \frac{\frac{y}{3}}{\sqrt{x}}\right)\right)double f(double x, double y) {
double r14496531 = 1.0;
double r14496532 = x;
double r14496533 = 9.0;
double r14496534 = r14496532 * r14496533;
double r14496535 = r14496531 / r14496534;
double r14496536 = r14496531 - r14496535;
double r14496537 = y;
double r14496538 = 3.0;
double r14496539 = sqrt(r14496532);
double r14496540 = r14496538 * r14496539;
double r14496541 = r14496537 / r14496540;
double r14496542 = r14496536 - r14496541;
return r14496542;
}
double f(double x, double y) {
double r14496543 = y;
double r14496544 = 3.0;
double r14496545 = r14496543 / r14496544;
double r14496546 = x;
double r14496547 = sqrt(r14496546);
double r14496548 = r14496545 / r14496547;
double r14496549 = -1.0;
double r14496550 = fma(r14496548, r14496549, r14496548);
double r14496551 = 1.0;
double r14496552 = 0.1111111111111111;
double r14496553 = r14496552 / r14496546;
double r14496554 = r14496553 + r14496548;
double r14496555 = r14496551 - r14496554;
double r14496556 = r14496550 + r14496555;
return r14496556;
}




Bits error versus x




Bits error versus y
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.2
rmApplied add-cube-cbrt0.5
Applied add-sqr-sqrt29.9
Applied prod-diff29.9
Simplified0.2
Simplified0.2
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, D"
:herbie-target
(- (- 1.0 (/ (/ 1.0 x) 9.0)) (/ y (* 3.0 (sqrt x))))
(- (- 1.0 (/ 1.0 (* x 9.0))) (/ y (* 3.0 (sqrt x)))))