Average Error: 0.2 → 0.3
Time: 7.1s
Precision: 64
\[\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\]
\[\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\frac{\sqrt{1}}{9} \cdot \frac{\sqrt{1}}{x}\right) + \left(\mathsf{fma}\left(-\frac{\sqrt{1}}{9}, \frac{\sqrt{1}}{x}, \frac{\sqrt{1}}{9} \cdot \frac{\sqrt{1}}{x}\right) - \frac{\frac{y}{3}}{\sqrt{x}}\right)\]
\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}
\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\frac{\sqrt{1}}{9} \cdot \frac{\sqrt{1}}{x}\right) + \left(\mathsf{fma}\left(-\frac{\sqrt{1}}{9}, \frac{\sqrt{1}}{x}, \frac{\sqrt{1}}{9} \cdot \frac{\sqrt{1}}{x}\right) - \frac{\frac{y}{3}}{\sqrt{x}}\right)
double f(double x, double y) {
        double r432913 = 1.0;
        double r432914 = x;
        double r432915 = 9.0;
        double r432916 = r432914 * r432915;
        double r432917 = r432913 / r432916;
        double r432918 = r432913 - r432917;
        double r432919 = y;
        double r432920 = 3.0;
        double r432921 = sqrt(r432914);
        double r432922 = r432920 * r432921;
        double r432923 = r432919 / r432922;
        double r432924 = r432918 - r432923;
        return r432924;
}

double f(double x, double y) {
        double r432925 = 1.0;
        double r432926 = cbrt(r432925);
        double r432927 = r432926 * r432926;
        double r432928 = sqrt(r432925);
        double r432929 = 9.0;
        double r432930 = r432928 / r432929;
        double r432931 = x;
        double r432932 = r432928 / r432931;
        double r432933 = r432930 * r432932;
        double r432934 = -r432933;
        double r432935 = fma(r432927, r432926, r432934);
        double r432936 = -r432930;
        double r432937 = fma(r432936, r432932, r432933);
        double r432938 = y;
        double r432939 = 3.0;
        double r432940 = r432938 / r432939;
        double r432941 = sqrt(r432931);
        double r432942 = r432940 / r432941;
        double r432943 = r432937 - r432942;
        double r432944 = r432935 + r432943;
        return r432944;
}

Error

Bits error versus x

Bits error versus y

Target

Original0.2
Target0.2
Herbie0.3
\[\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 associate-/r*0.2

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

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

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

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

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

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

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

Reproduce

herbie shell --seed 2020020 +o rules:numerics
(FPCore (x y)
  :name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, D"
  :precision binary64

  :herbie-target
  (- (- 1 (/ (/ 1 x) 9)) (/ y (* 3 (sqrt x))))

  (- (- 1 (/ 1 (* x 9))) (/ y (* 3 (sqrt x)))))