Average Error: 0.0 → 0.0
Time: 1.7s
Precision: 64
\[0.707110000000000016 \cdot \left(\frac{2.30753 + x \cdot 0.27061000000000002}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\right)\]
\[0.707110000000000016 \cdot \left(\left(2.30753 + x \cdot 0.27061000000000002\right) \cdot \frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\right)\]
0.707110000000000016 \cdot \left(\frac{2.30753 + x \cdot 0.27061000000000002}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\right)
0.707110000000000016 \cdot \left(\left(2.30753 + x \cdot 0.27061000000000002\right) \cdot \frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\right)
double f(double x) {
        double r98335 = 0.70711;
        double r98336 = 2.30753;
        double r98337 = x;
        double r98338 = 0.27061;
        double r98339 = r98337 * r98338;
        double r98340 = r98336 + r98339;
        double r98341 = 1.0;
        double r98342 = 0.99229;
        double r98343 = 0.04481;
        double r98344 = r98337 * r98343;
        double r98345 = r98342 + r98344;
        double r98346 = r98337 * r98345;
        double r98347 = r98341 + r98346;
        double r98348 = r98340 / r98347;
        double r98349 = r98348 - r98337;
        double r98350 = r98335 * r98349;
        return r98350;
}

double f(double x) {
        double r98351 = 0.70711;
        double r98352 = 2.30753;
        double r98353 = x;
        double r98354 = 0.27061;
        double r98355 = r98353 * r98354;
        double r98356 = r98352 + r98355;
        double r98357 = 1.0;
        double r98358 = 1.0;
        double r98359 = 0.99229;
        double r98360 = 0.04481;
        double r98361 = r98353 * r98360;
        double r98362 = r98359 + r98361;
        double r98363 = r98353 * r98362;
        double r98364 = r98358 + r98363;
        double r98365 = r98357 / r98364;
        double r98366 = r98356 * r98365;
        double r98367 = r98366 - r98353;
        double r98368 = r98351 * r98367;
        return r98368;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[0.707110000000000016 \cdot \left(\frac{2.30753 + x \cdot 0.27061000000000002}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\right)\]
  2. Using strategy rm
  3. Applied div-inv0.0

    \[\leadsto 0.707110000000000016 \cdot \left(\color{blue}{\left(2.30753 + x \cdot 0.27061000000000002\right) \cdot \frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)}} - x\right)\]
  4. Final simplification0.0

    \[\leadsto 0.707110000000000016 \cdot \left(\left(2.30753 + x \cdot 0.27061000000000002\right) \cdot \frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\right)\]

Reproduce

herbie shell --seed 2020062 
(FPCore (x)
  :name "Numeric.SpecFunctions:invErfc from math-functions-0.1.5.2, B"
  :precision binary64
  (* 0.70711 (- (/ (+ 2.30753 (* x 0.27061)) (+ 1 (* x (+ 0.99229 (* x 0.04481))))) x)))