Average Error: 0.0 → 0.0
Time: 12.7s
Precision: 64
\[0.7071100000000000163069557856942992657423 \cdot \left(\frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)} - x\right)\]
\[0.7071100000000000163069557856942992657423 \cdot \left(\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} - x\right)\]
0.7071100000000000163069557856942992657423 \cdot \left(\frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)} - x\right)
0.7071100000000000163069557856942992657423 \cdot \left(\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} - x\right)
double f(double x) {
        double r133513 = 0.70711;
        double r133514 = 2.30753;
        double r133515 = x;
        double r133516 = 0.27061;
        double r133517 = r133515 * r133516;
        double r133518 = r133514 + r133517;
        double r133519 = 1.0;
        double r133520 = 0.99229;
        double r133521 = 0.04481;
        double r133522 = r133515 * r133521;
        double r133523 = r133520 + r133522;
        double r133524 = r133515 * r133523;
        double r133525 = r133519 + r133524;
        double r133526 = r133518 / r133525;
        double r133527 = r133526 - r133515;
        double r133528 = r133513 * r133527;
        return r133528;
}

double f(double x) {
        double r133529 = 0.70711;
        double r133530 = 2.30753;
        double r133531 = x;
        double r133532 = 0.27061;
        double r133533 = r133531 * r133532;
        double r133534 = r133530 + r133533;
        double r133535 = 1.0;
        double r133536 = 0.04481;
        double r133537 = 0.99229;
        double r133538 = fma(r133536, r133531, r133537);
        double r133539 = 1.0;
        double r133540 = fma(r133531, r133538, r133539);
        double r133541 = r133535 / r133540;
        double r133542 = r133534 * r133541;
        double r133543 = r133542 - r133531;
        double r133544 = r133529 * r133543;
        return r133544;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[0.7071100000000000163069557856942992657423 \cdot \left(\frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)} - x\right)\]
  2. Using strategy rm
  3. Applied div-inv0.0

    \[\leadsto 0.7071100000000000163069557856942992657423 \cdot \left(\color{blue}{\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812\right) \cdot \frac{1}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)}} - x\right)\]
  4. Simplified0.0

    \[\leadsto 0.7071100000000000163069557856942992657423 \cdot \left(\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812\right) \cdot \color{blue}{\frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)}} - x\right)\]
  5. Final simplification0.0

    \[\leadsto 0.7071100000000000163069557856942992657423 \cdot \left(\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} - x\right)\]

Reproduce

herbie shell --seed 2019305 +o rules:numerics
(FPCore (x)
  :name "Numeric.SpecFunctions:invErfc from math-functions-0.1.5.2, B"
  :precision binary64
  (* 0.707110000000000016 (- (/ (+ 2.30753 (* x 0.27061000000000002)) (+ 1 (* x (+ 0.992290000000000005 (* x 0.044810000000000003))))) x)))