Average Error: 0.1 → 0.1
Time: 8.4s
Precision: 64
\[1 - x \cdot \left(0.253 + x \cdot 0.12\right)\]
\[1 - x \cdot \frac{0.253 \cdot 0.253 - \left(x \cdot 0.12\right) \cdot \left(x \cdot 0.12\right)}{0.253 - x \cdot 0.12}\]
1 - x \cdot \left(0.253 + x \cdot 0.12\right)
1 - x \cdot \frac{0.253 \cdot 0.253 - \left(x \cdot 0.12\right) \cdot \left(x \cdot 0.12\right)}{0.253 - x \cdot 0.12}
double f(double x) {
        double r110680 = 1.0;
        double r110681 = x;
        double r110682 = 0.253;
        double r110683 = 0.12;
        double r110684 = r110681 * r110683;
        double r110685 = r110682 + r110684;
        double r110686 = r110681 * r110685;
        double r110687 = r110680 - r110686;
        return r110687;
}

double f(double x) {
        double r110688 = 1.0;
        double r110689 = x;
        double r110690 = 0.253;
        double r110691 = r110690 * r110690;
        double r110692 = 0.12;
        double r110693 = r110689 * r110692;
        double r110694 = r110693 * r110693;
        double r110695 = r110691 - r110694;
        double r110696 = r110690 - r110693;
        double r110697 = r110695 / r110696;
        double r110698 = r110689 * r110697;
        double r110699 = r110688 - r110698;
        return r110699;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[1 - x \cdot \left(0.253 + x \cdot 0.12\right)\]
  2. Using strategy rm
  3. Applied flip-+0.1

    \[\leadsto 1 - x \cdot \color{blue}{\frac{0.253 \cdot 0.253 - \left(x \cdot 0.12\right) \cdot \left(x \cdot 0.12\right)}{0.253 - x \cdot 0.12}}\]
  4. Final simplification0.1

    \[\leadsto 1 - x \cdot \frac{0.253 \cdot 0.253 - \left(x \cdot 0.12\right) \cdot \left(x \cdot 0.12\right)}{0.253 - x \cdot 0.12}\]

Reproduce

herbie shell --seed 2020042 
(FPCore (x)
  :name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, A"
  :precision binary64
  (- 1 (* x (+ 0.253 (* x 0.12)))))