Average Error: 0.2 → 0.3
Time: 1.0m
Precision: 64
\[\left(1.0 - \frac{1.0}{x \cdot 9.0}\right) - \frac{y}{3.0 \cdot \sqrt{x}}\]
\[\left(1.0 - \frac{\frac{1.0}{x}}{9.0}\right) - \frac{y}{\left(\sqrt[3]{3.0} \cdot \sqrt{x}\right) \cdot \left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right)}\]
\left(1.0 - \frac{1.0}{x \cdot 9.0}\right) - \frac{y}{3.0 \cdot \sqrt{x}}
\left(1.0 - \frac{\frac{1.0}{x}}{9.0}\right) - \frac{y}{\left(\sqrt[3]{3.0} \cdot \sqrt{x}\right) \cdot \left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right)}
double f(double x, double y) {
        double r15903779 = 1.0;
        double r15903780 = x;
        double r15903781 = 9.0;
        double r15903782 = r15903780 * r15903781;
        double r15903783 = r15903779 / r15903782;
        double r15903784 = r15903779 - r15903783;
        double r15903785 = y;
        double r15903786 = 3.0;
        double r15903787 = sqrt(r15903780);
        double r15903788 = r15903786 * r15903787;
        double r15903789 = r15903785 / r15903788;
        double r15903790 = r15903784 - r15903789;
        return r15903790;
}

double f(double x, double y) {
        double r15903791 = 1.0;
        double r15903792 = x;
        double r15903793 = r15903791 / r15903792;
        double r15903794 = 9.0;
        double r15903795 = r15903793 / r15903794;
        double r15903796 = r15903791 - r15903795;
        double r15903797 = y;
        double r15903798 = 3.0;
        double r15903799 = cbrt(r15903798);
        double r15903800 = sqrt(r15903792);
        double r15903801 = r15903799 * r15903800;
        double r15903802 = r15903799 * r15903799;
        double r15903803 = r15903801 * r15903802;
        double r15903804 = r15903797 / r15903803;
        double r15903805 = r15903796 - r15903804;
        return r15903805;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.2
Target0.2
Herbie0.3
\[\left(1.0 - \frac{\frac{1.0}{x}}{9.0}\right) - \frac{y}{3.0 \cdot \sqrt{x}}\]

Derivation

  1. Initial program 0.2

    \[\left(1.0 - \frac{1.0}{x \cdot 9.0}\right) - \frac{y}{3.0 \cdot \sqrt{x}}\]
  2. Using strategy rm
  3. Applied associate-/r*0.2

    \[\leadsto \left(1.0 - \color{blue}{\frac{\frac{1.0}{x}}{9.0}}\right) - \frac{y}{3.0 \cdot \sqrt{x}}\]
  4. Using strategy rm
  5. Applied add-cube-cbrt0.2

    \[\leadsto \left(1.0 - \frac{\frac{1.0}{x}}{9.0}\right) - \frac{y}{\color{blue}{\left(\left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right) \cdot \sqrt[3]{3.0}\right)} \cdot \sqrt{x}}\]
  6. Applied associate-*l*0.3

    \[\leadsto \left(1.0 - \frac{\frac{1.0}{x}}{9.0}\right) - \frac{y}{\color{blue}{\left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right) \cdot \left(\sqrt[3]{3.0} \cdot \sqrt{x}\right)}}\]
  7. Final simplification0.3

    \[\leadsto \left(1.0 - \frac{\frac{1.0}{x}}{9.0}\right) - \frac{y}{\left(\sqrt[3]{3.0} \cdot \sqrt{x}\right) \cdot \left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right)}\]

Reproduce

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

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

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