Average Error: 0.2 → 0.2
Time: 27.3s
Precision: 64
\[\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\]
\[\left(\left(\frac{1}{x \cdot 9} - \frac{\frac{y}{3}}{\sqrt{x}}\right) + \left(-\frac{\frac{1}{9}}{x}\right)\right) + \mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, \frac{-1}{x \cdot 9}\right)\]
\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}
\left(\left(\frac{1}{x \cdot 9} - \frac{\frac{y}{3}}{\sqrt{x}}\right) + \left(-\frac{\frac{1}{9}}{x}\right)\right) + \mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, \frac{-1}{x \cdot 9}\right)
double f(double x, double y) {
        double r299319 = 1.0;
        double r299320 = x;
        double r299321 = 9.0;
        double r299322 = r299320 * r299321;
        double r299323 = r299319 / r299322;
        double r299324 = r299319 - r299323;
        double r299325 = y;
        double r299326 = 3.0;
        double r299327 = sqrt(r299320);
        double r299328 = r299326 * r299327;
        double r299329 = r299325 / r299328;
        double r299330 = r299324 - r299329;
        return r299330;
}

double f(double x, double y) {
        double r299331 = 1.0;
        double r299332 = x;
        double r299333 = 9.0;
        double r299334 = r299332 * r299333;
        double r299335 = r299331 / r299334;
        double r299336 = y;
        double r299337 = 3.0;
        double r299338 = r299336 / r299337;
        double r299339 = sqrt(r299332);
        double r299340 = r299338 / r299339;
        double r299341 = r299335 - r299340;
        double r299342 = r299331 / r299333;
        double r299343 = r299342 / r299332;
        double r299344 = -r299343;
        double r299345 = r299341 + r299344;
        double r299346 = cbrt(r299331);
        double r299347 = r299346 * r299346;
        double r299348 = -r299331;
        double r299349 = r299348 / r299334;
        double r299350 = fma(r299347, r299346, r299349);
        double r299351 = r299345 + r299350;
        return r299351;
}

Error

Bits error versus x

Bits error versus y

Target

Original0.2
Target0.2
Herbie0.2
\[\left(1 - \frac{\frac{1}{x}}{9}\right) - \frac{y}{3 \cdot \sqrt{x}}\]

Derivation

  1. Initial program 0.2

    \[\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\]
  2. Using strategy rm
  3. Applied *-un-lft-identity0.2

    \[\leadsto \left(1 - \color{blue}{1 \cdot \frac{1}{x \cdot 9}}\right) - \frac{y}{3 \cdot \sqrt{x}}\]
  4. Applied add-cube-cbrt0.2

    \[\leadsto \left(\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}} - 1 \cdot \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\]
  5. Applied prod-diff0.2

    \[\leadsto \color{blue}{\left(\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\frac{1}{x \cdot 9} \cdot 1\right) + \mathsf{fma}\left(-\frac{1}{x \cdot 9}, 1, \frac{1}{x \cdot 9} \cdot 1\right)\right)} - \frac{y}{3 \cdot \sqrt{x}}\]
  6. Applied associate--l+0.2

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\frac{1}{x \cdot 9} \cdot 1\right) + \left(\mathsf{fma}\left(-\frac{1}{x \cdot 9}, 1, \frac{1}{x \cdot 9} \cdot 1\right) - \frac{y}{3 \cdot \sqrt{x}}\right)}\]
  7. Simplified0.2

    \[\leadsto \mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\frac{1}{x \cdot 9} \cdot 1\right) + \color{blue}{\left(\frac{\frac{-1}{9}}{x} + \left(\frac{1}{x \cdot 9} - \frac{\frac{y}{3}}{\sqrt{x}}\right)\right)}\]
  8. Final simplification0.2

    \[\leadsto \left(\left(\frac{1}{x \cdot 9} - \frac{\frac{y}{3}}{\sqrt{x}}\right) + \left(-\frac{\frac{1}{9}}{x}\right)\right) + \mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, \frac{-1}{x \cdot 9}\right)\]

Reproduce

herbie shell --seed 2019196 +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)))))