Average Error: 0.4 → 0.4
Time: 16.4s
Precision: 64
\[\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\]
\[\mathsf{fma}\left(3, y, \left(\frac{\frac{0.3333333333333333148296162562473909929395}{\sqrt{x}}}{\sqrt{x}} - 3\right) + \left(\left(-3\right) + 3\right)\right) \cdot \sqrt{x}\]
\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)
\mathsf{fma}\left(3, y, \left(\frac{\frac{0.3333333333333333148296162562473909929395}{\sqrt{x}}}{\sqrt{x}} - 3\right) + \left(\left(-3\right) + 3\right)\right) \cdot \sqrt{x}
double f(double x, double y) {
        double r348354 = 3.0;
        double r348355 = x;
        double r348356 = sqrt(r348355);
        double r348357 = r348354 * r348356;
        double r348358 = y;
        double r348359 = 1.0;
        double r348360 = 9.0;
        double r348361 = r348355 * r348360;
        double r348362 = r348359 / r348361;
        double r348363 = r348358 + r348362;
        double r348364 = r348363 - r348359;
        double r348365 = r348357 * r348364;
        return r348365;
}

double f(double x, double y) {
        double r348366 = 3.0;
        double r348367 = y;
        double r348368 = 0.3333333333333333;
        double r348369 = x;
        double r348370 = sqrt(r348369);
        double r348371 = r348368 / r348370;
        double r348372 = r348371 / r348370;
        double r348373 = r348372 - r348366;
        double r348374 = -r348366;
        double r348375 = r348374 + r348366;
        double r348376 = r348373 + r348375;
        double r348377 = fma(r348366, r348367, r348376);
        double r348378 = r348377 * r348370;
        return r348378;
}

Error

Bits error versus x

Bits error versus y

Target

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

Derivation

  1. Initial program 0.4

    \[\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\]
  2. Using strategy rm
  3. Applied associate-*l*0.4

    \[\leadsto \color{blue}{3 \cdot \left(\sqrt{x} \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\right)}\]
  4. Using strategy rm
  5. Applied pow10.4

    \[\leadsto 3 \cdot \left(\sqrt{x} \cdot \color{blue}{{\left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)}^{1}}\right)\]
  6. Applied pow10.4

    \[\leadsto 3 \cdot \left(\color{blue}{{\left(\sqrt{x}\right)}^{1}} \cdot {\left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)}^{1}\right)\]
  7. Applied pow-prod-down0.4

    \[\leadsto 3 \cdot \color{blue}{{\left(\sqrt{x} \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\right)}^{1}}\]
  8. Applied pow10.4

    \[\leadsto \color{blue}{{3}^{1}} \cdot {\left(\sqrt{x} \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\right)}^{1}\]
  9. Applied pow-prod-down0.4

    \[\leadsto \color{blue}{{\left(3 \cdot \left(\sqrt{x} \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\right)\right)}^{1}}\]
  10. Simplified0.4

    \[\leadsto {\color{blue}{\left(\left(3 \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\right) \cdot \sqrt{x}\right)}}^{1}\]
  11. Taylor expanded around 0 0.4

    \[\leadsto {\left(\color{blue}{\left(\left(3 \cdot y + 0.3333333333333333148296162562473909929395 \cdot \frac{1}{x}\right) - 3\right)} \cdot \sqrt{x}\right)}^{1}\]
  12. Simplified0.4

    \[\leadsto {\left(\color{blue}{\mathsf{fma}\left(3, y, \frac{0.3333333333333333148296162562473909929395}{x} - 3\right)} \cdot \sqrt{x}\right)}^{1}\]
  13. Using strategy rm
  14. Applied add-cube-cbrt0.4

    \[\leadsto {\left(\mathsf{fma}\left(3, y, \frac{0.3333333333333333148296162562473909929395}{x} - \color{blue}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}\right) \cdot \sqrt{x}\right)}^{1}\]
  15. Applied add-sqr-sqrt0.4

    \[\leadsto {\left(\mathsf{fma}\left(3, y, \frac{0.3333333333333333148296162562473909929395}{\color{blue}{\sqrt{x} \cdot \sqrt{x}}} - \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}\right) \cdot \sqrt{x}\right)}^{1}\]
  16. Applied *-un-lft-identity0.4

    \[\leadsto {\left(\mathsf{fma}\left(3, y, \frac{\color{blue}{1 \cdot 0.3333333333333333148296162562473909929395}}{\sqrt{x} \cdot \sqrt{x}} - \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}\right) \cdot \sqrt{x}\right)}^{1}\]
  17. Applied times-frac0.4

    \[\leadsto {\left(\mathsf{fma}\left(3, y, \color{blue}{\frac{1}{\sqrt{x}} \cdot \frac{0.3333333333333333148296162562473909929395}{\sqrt{x}}} - \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}\right) \cdot \sqrt{x}\right)}^{1}\]
  18. Applied prod-diff0.4

    \[\leadsto {\left(\mathsf{fma}\left(3, y, \color{blue}{\mathsf{fma}\left(\frac{1}{\sqrt{x}}, \frac{0.3333333333333333148296162562473909929395}{\sqrt{x}}, -\sqrt[3]{3} \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{3}, \sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3} \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right)}\right) \cdot \sqrt{x}\right)}^{1}\]
  19. Simplified0.4

    \[\leadsto {\left(\mathsf{fma}\left(3, y, \color{blue}{\left(\frac{\frac{0.3333333333333333148296162562473909929395}{\sqrt{x}}}{\sqrt{x}} - 3\right)} + \mathsf{fma}\left(-\sqrt[3]{3}, \sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3} \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right)\right) \cdot \sqrt{x}\right)}^{1}\]
  20. Simplified0.4

    \[\leadsto {\left(\mathsf{fma}\left(3, y, \left(\frac{\frac{0.3333333333333333148296162562473909929395}{\sqrt{x}}}{\sqrt{x}} - 3\right) + \color{blue}{\left(\left(-3\right) + 3\right)}\right) \cdot \sqrt{x}\right)}^{1}\]
  21. Final simplification0.4

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

Reproduce

herbie shell --seed 2019212 +o rules:numerics
(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)))