Average Error: 0.0 → 0.0
Time: 2.8s
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)\]
\[\begin{array}{l} \mathbf{if}\;x \le -52744.7834560351694 \lor \neg \left(x \le 151481.646536922344\right):\\ \;\;\;\;0.707110000000000016 \cdot \left(6.0390537826378043 \cdot \frac{1}{x} - \left(82.235275116573689 \cdot \frac{1}{{x}^{2}} + x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.707110000000000016 \cdot \left(\frac{2.30753 + x \cdot 0.27061000000000002}{1 \cdot 1 - \left(x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right) \cdot \left(x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right)} \cdot \left(1 - x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right) - x\right)\\ \end{array}\]
0.707110000000000016 \cdot \left(\frac{2.30753 + x \cdot 0.27061000000000002}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\right)
\begin{array}{l}
\mathbf{if}\;x \le -52744.7834560351694 \lor \neg \left(x \le 151481.646536922344\right):\\
\;\;\;\;0.707110000000000016 \cdot \left(6.0390537826378043 \cdot \frac{1}{x} - \left(82.235275116573689 \cdot \frac{1}{{x}^{2}} + x\right)\right)\\

\mathbf{else}:\\
\;\;\;\;0.707110000000000016 \cdot \left(\frac{2.30753 + x \cdot 0.27061000000000002}{1 \cdot 1 - \left(x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right) \cdot \left(x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right)} \cdot \left(1 - x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right) - x\right)\\

\end{array}
double code(double x) {
	return (0.70711 * (((2.30753 + (x * 0.27061)) / (1.0 + (x * (0.99229 + (x * 0.04481))))) - x));
}
double code(double x) {
	double VAR;
	if (((x <= -52744.78345603517) || !(x <= 151481.64653692234))) {
		VAR = (0.70711 * ((6.039053782637804 * (1.0 / x)) - ((82.23527511657369 * (1.0 / pow(x, 2.0))) + x)));
	} else {
		VAR = (0.70711 * ((((2.30753 + (x * 0.27061)) / ((1.0 * 1.0) - ((x * (0.99229 + (x * 0.04481))) * (x * (0.99229 + (x * 0.04481)))))) * (1.0 - (x * (0.99229 + (x * 0.04481))))) - x));
	}
	return VAR;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -52744.78345603517 or 151481.64653692234 < x

    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. Taylor expanded around inf 0.0

      \[\leadsto 0.707110000000000016 \cdot \color{blue}{\left(6.0390537826378043 \cdot \frac{1}{x} - \left(82.235275116573689 \cdot \frac{1}{{x}^{2}} + x\right)\right)}\]

    if -52744.78345603517 < x < 151481.64653692234

    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 flip-+0.0

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -52744.7834560351694 \lor \neg \left(x \le 151481.646536922344\right):\\ \;\;\;\;0.707110000000000016 \cdot \left(6.0390537826378043 \cdot \frac{1}{x} - \left(82.235275116573689 \cdot \frac{1}{{x}^{2}} + x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.707110000000000016 \cdot \left(\frac{2.30753 + x \cdot 0.27061000000000002}{1 \cdot 1 - \left(x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right) \cdot \left(x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right)} \cdot \left(1 - x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)\right) - x\right)\\ \end{array}\]

Reproduce

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