Average Error: 0.4 → 0.4
Time: 4.7s
Precision: 64
\[\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\]
\[\left(3 \cdot \left(\left(\frac{1}{x \cdot 9} + y\right) - 1\right)\right) \cdot \sqrt{x} + \left(\mathsf{fma}\left(-1, 1, 1\right) \cdot \sqrt{x}\right) \cdot 3\]
\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)
\left(3 \cdot \left(\left(\frac{1}{x \cdot 9} + y\right) - 1\right)\right) \cdot \sqrt{x} + \left(\mathsf{fma}\left(-1, 1, 1\right) \cdot \sqrt{x}\right) \cdot 3
double f(double x, double y) {
        double r384201 = 3.0;
        double r384202 = x;
        double r384203 = sqrt(r384202);
        double r384204 = r384201 * r384203;
        double r384205 = y;
        double r384206 = 1.0;
        double r384207 = 9.0;
        double r384208 = r384202 * r384207;
        double r384209 = r384206 / r384208;
        double r384210 = r384205 + r384209;
        double r384211 = r384210 - r384206;
        double r384212 = r384204 * r384211;
        return r384212;
}

double f(double x, double y) {
        double r384213 = 3.0;
        double r384214 = 1.0;
        double r384215 = x;
        double r384216 = 9.0;
        double r384217 = r384215 * r384216;
        double r384218 = r384214 / r384217;
        double r384219 = y;
        double r384220 = r384218 + r384219;
        double r384221 = r384220 - r384214;
        double r384222 = r384213 * r384221;
        double r384223 = sqrt(r384215);
        double r384224 = r384222 * r384223;
        double r384225 = -r384214;
        double r384226 = 1.0;
        double r384227 = fma(r384225, r384226, r384214);
        double r384228 = r384227 * r384223;
        double r384229 = r384228 * r384213;
        double r384230 = r384224 + r384229;
        return r384230;
}

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-sqr-sqrt0.4

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

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

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

    \[\leadsto \left(3 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(\mathsf{fma}\left(\sqrt{y + \sqrt{\frac{1}{x \cdot 9}} \cdot \sqrt{\frac{1}{x \cdot 9}}}, \sqrt{y + \sqrt{\frac{1}{x \cdot 9}} \cdot \sqrt{\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)}\]
  8. Applied distribute-lft-in15.1

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

    \[\leadsto \color{blue}{\left(3 \cdot \left(\left(\frac{1}{x \cdot 9} + y\right) - 1\right)\right) \cdot \sqrt{x}} + \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)\]
  10. Simplified0.4

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

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

Reproduce

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