Average Error: 0.4 → 0.4
Time: 37.4s
Precision: 64
\[\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\]
\[\left(\mathsf{fma}\left(y, 3, \frac{0.3333333333333333148296162562473909929395}{x}\right) - 3\right) \cdot \sqrt{x}\]
\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)
\left(\mathsf{fma}\left(y, 3, \frac{0.3333333333333333148296162562473909929395}{x}\right) - 3\right) \cdot \sqrt{x}
double f(double x, double y) {
        double r336804 = 3.0;
        double r336805 = x;
        double r336806 = sqrt(r336805);
        double r336807 = r336804 * r336806;
        double r336808 = y;
        double r336809 = 1.0;
        double r336810 = 9.0;
        double r336811 = r336805 * r336810;
        double r336812 = r336809 / r336811;
        double r336813 = r336808 + r336812;
        double r336814 = r336813 - r336809;
        double r336815 = r336807 * r336814;
        return r336815;
}

double f(double x, double y) {
        double r336816 = y;
        double r336817 = 3.0;
        double r336818 = 0.3333333333333333;
        double r336819 = x;
        double r336820 = r336818 / r336819;
        double r336821 = fma(r336816, r336817, r336820);
        double r336822 = r336821 - r336817;
        double r336823 = sqrt(r336819);
        double r336824 = r336822 * r336823;
        return r336824;
}

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. Taylor expanded around 0 0.4

    \[\leadsto \left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \color{blue}{\frac{0.1111111111111111049432054187491303309798}{x}}\right) - 1\right)\]
  3. Using strategy rm
  4. Applied associate-*l*0.4

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

    \[\leadsto 3 \cdot \color{blue}{\left(\left(\left(y + \frac{0.1111111111111111049432054187491303309798}{x}\right) - 1\right) \cdot \sqrt{x}\right)}\]
  6. Using strategy rm
  7. Applied associate-*r*0.4

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

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

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

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

Reproduce

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