Average Error: 0.4 → 0.4
Time: 23.5s
Precision: 64
\[\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\]
\[3 \cdot \left(\sqrt{x} \cdot \left(y + \left(\frac{\frac{1}{x}}{9} - 1\right)\right)\right) + \sqrt{x} \cdot \left(\mathsf{fma}\left(1, -1, 1\right) \cdot 3\right)\]
\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)
3 \cdot \left(\sqrt{x} \cdot \left(y + \left(\frac{\frac{1}{x}}{9} - 1\right)\right)\right) + \sqrt{x} \cdot \left(\mathsf{fma}\left(1, -1, 1\right) \cdot 3\right)
double f(double x, double y) {
        double r18104485 = 3.0;
        double r18104486 = x;
        double r18104487 = sqrt(r18104486);
        double r18104488 = r18104485 * r18104487;
        double r18104489 = y;
        double r18104490 = 1.0;
        double r18104491 = 9.0;
        double r18104492 = r18104486 * r18104491;
        double r18104493 = r18104490 / r18104492;
        double r18104494 = r18104489 + r18104493;
        double r18104495 = r18104494 - r18104490;
        double r18104496 = r18104488 * r18104495;
        return r18104496;
}

double f(double x, double y) {
        double r18104497 = 3.0;
        double r18104498 = x;
        double r18104499 = sqrt(r18104498);
        double r18104500 = y;
        double r18104501 = 1.0;
        double r18104502 = r18104501 / r18104498;
        double r18104503 = 9.0;
        double r18104504 = r18104502 / r18104503;
        double r18104505 = r18104504 - r18104501;
        double r18104506 = r18104500 + r18104505;
        double r18104507 = r18104499 * r18104506;
        double r18104508 = r18104497 * r18104507;
        double r18104509 = -1.0;
        double r18104510 = fma(r18104501, r18104509, r18104501);
        double r18104511 = r18104510 * r18104497;
        double r18104512 = r18104499 * r18104511;
        double r18104513 = r18104508 + r18104512;
        return r18104513;
}

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 add-cube-cbrt0.4

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

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019171 +o rules:numerics
(FPCore (x y)
  :name "Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, B"

  :herbie-target
  (* 3.0 (+ (* y (sqrt x)) (* (- (/ 1.0 (* x 9.0)) 1.0) (sqrt x))))

  (* (* 3.0 (sqrt x)) (- (+ y (/ 1.0 (* x 9.0))) 1.0)))