Average Error: 0.1 → 0.1
Time: 3.9s
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 r74066 = 1.0;
        double r74067 = x;
        double r74068 = 0.253;
        double r74069 = 0.12;
        double r74070 = r74067 * r74069;
        double r74071 = r74068 + r74070;
        double r74072 = r74067 * r74071;
        double r74073 = r74066 - r74072;
        return r74073;
}

double f(double x) {
        double r74074 = 1.0;
        double r74075 = x;
        double r74076 = 0.253;
        double r74077 = r74076 * r74076;
        double r74078 = 0.12;
        double r74079 = r74075 * r74078;
        double r74080 = r74079 * r74079;
        double r74081 = r74077 - r74080;
        double r74082 = r74076 - r74079;
        double r74083 = r74081 / r74082;
        double r74084 = r74075 * r74083;
        double r74085 = r74074 - r74084;
        return r74085;
}

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 2020034 
(FPCore (x)
  :name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, A"
  :precision binary64
  (- 1 (* x (+ 0.253 (* x 0.12)))))