Average Error: 0.0 → 0.0
Time: 15.9s
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 \mathsf{fma}\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812, \frac{1}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\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 \mathsf{fma}\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812, \frac{1}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)}, -x\right)
double f(double x) {
        double r75076 = 0.70711;
        double r75077 = 2.30753;
        double r75078 = x;
        double r75079 = 0.27061;
        double r75080 = r75078 * r75079;
        double r75081 = r75077 + r75080;
        double r75082 = 1.0;
        double r75083 = 0.99229;
        double r75084 = 0.04481;
        double r75085 = r75078 * r75084;
        double r75086 = r75083 + r75085;
        double r75087 = r75078 * r75086;
        double r75088 = r75082 + r75087;
        double r75089 = r75081 / r75088;
        double r75090 = r75089 - r75078;
        double r75091 = r75076 * r75090;
        return r75091;
}

double f(double x) {
        double r75092 = 0.70711;
        double r75093 = 2.30753;
        double r75094 = x;
        double r75095 = 0.27061;
        double r75096 = r75094 * r75095;
        double r75097 = r75093 + r75096;
        double r75098 = 1.0;
        double r75099 = 1.0;
        double r75100 = 0.99229;
        double r75101 = 0.04481;
        double r75102 = r75094 * r75101;
        double r75103 = r75100 + r75102;
        double r75104 = r75094 * r75103;
        double r75105 = r75099 + r75104;
        double r75106 = r75098 / r75105;
        double r75107 = -r75094;
        double r75108 = fma(r75097, r75106, r75107);
        double r75109 = r75092 * r75108;
        return r75109;
}

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. Applied fma-neg0.0

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

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

Reproduce

herbie shell --seed 2019235 +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)))