Average Error: 0.0 → 0.0
Time: 3.1s
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(\frac{\frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)}}{\frac{1}{2.30753 + x \cdot 0.27061000000000002}} - 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(\frac{\frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)}}{\frac{1}{2.30753 + x \cdot 0.27061000000000002}} - x\right)
double f(double x) {
        double r122422 = 0.70711;
        double r122423 = 2.30753;
        double r122424 = x;
        double r122425 = 0.27061;
        double r122426 = r122424 * r122425;
        double r122427 = r122423 + r122426;
        double r122428 = 1.0;
        double r122429 = 0.99229;
        double r122430 = 0.04481;
        double r122431 = r122424 * r122430;
        double r122432 = r122429 + r122431;
        double r122433 = r122424 * r122432;
        double r122434 = r122428 + r122433;
        double r122435 = r122427 / r122434;
        double r122436 = r122435 - r122424;
        double r122437 = r122422 * r122436;
        return r122437;
}

double f(double x) {
        double r122438 = 0.70711;
        double r122439 = 1.0;
        double r122440 = 1.0;
        double r122441 = x;
        double r122442 = 0.99229;
        double r122443 = 0.04481;
        double r122444 = r122441 * r122443;
        double r122445 = r122442 + r122444;
        double r122446 = r122441 * r122445;
        double r122447 = r122440 + r122446;
        double r122448 = r122439 / r122447;
        double r122449 = 2.30753;
        double r122450 = 0.27061;
        double r122451 = r122441 * r122450;
        double r122452 = r122449 + r122451;
        double r122453 = r122439 / r122452;
        double r122454 = r122448 / r122453;
        double r122455 = r122454 - r122441;
        double r122456 = r122438 * r122455;
        return r122456;
}

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 clear-num0.0

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

    \[\leadsto 0.707110000000000016 \cdot \left(\frac{1}{\color{blue}{\left(1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right) \cdot \frac{1}{2.30753 + x \cdot 0.27061000000000002}}} - x\right)\]
  6. Applied associate-/r*0.0

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

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

Reproduce

herbie shell --seed 2020027 
(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)))