Jmat.Real.erf

?

Percentage Accurate: 78.9% → 99.3%
Time: 50.1s
Precision: binary64
Cost: 53576

?

\[1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + t_1 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(t_1 \cdot \left(\left(1.421413741 + t_1 \cdot \left(-1.453152027 + \frac{1.061405429}{t_0}\right)\right) \cdot \frac{-1}{t_0} - -0.284496736\right) - 0.254829592\right)\right)\\ \mathbf{elif}\;x \leq 0.00048:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;e^{\mathsf{log1p}\left(\frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\right)}\\ \end{array} \]
(FPCore (x)
 :precision binary64
 (-
  1.0
  (*
   (*
    (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
    (+
     0.254829592
     (*
      (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
      (+
       -0.284496736
       (*
        (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
        (+
         1.421413741
         (*
          (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
          (+
           -1.453152027
           (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) 1.061405429)))))))))
   (exp (- (* (fabs x) (fabs x)))))))
(FPCore (x)
 :precision binary64
 (let* ((t_0 (+ 1.0 (* (fabs x) 0.3275911))) (t_1 (/ 1.0 t_0)))
   (if (<= x -2.5e-17)
     (+
      1.0
      (*
       t_1
       (*
        (exp (* x (- x)))
        (-
         (*
          t_1
          (-
           (*
            (+ 1.421413741 (* t_1 (+ -1.453152027 (/ 1.061405429 t_0))))
            (/ -1.0 t_0))
           -0.284496736))
         0.254829592))))
     (if (<= x 0.00048)
       (+
        1e-9
        (+
         (* -0.00011824294398844343 (pow x 2.0))
         (+ (* -0.37545125292247583 (pow x 3.0)) (* x 1.128386358070218))))
       (exp
        (log1p
         (/
          (-
           -0.254829592
           (/
            (+
             -0.284496736
             (/
              (+
               1.421413741
               (/
                (+ -1.453152027 (/ 1.061405429 (fma 0.3275911 x 1.0)))
                (fma 0.3275911 x 1.0)))
              (fma 0.3275911 x 1.0)))
            (fma 0.3275911 x 1.0)))
          (* (fma 0.3275911 x 1.0) (exp (* x x))))))))))
double code(double x) {
	return 1.0 - (((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (0.254829592 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (-0.284496736 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (1.421413741 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (-1.453152027 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * 1.061405429))))))))) * exp(-(fabs(x) * fabs(x))));
}
double code(double x) {
	double t_0 = 1.0 + (fabs(x) * 0.3275911);
	double t_1 = 1.0 / t_0;
	double tmp;
	if (x <= -2.5e-17) {
		tmp = 1.0 + (t_1 * (exp((x * -x)) * ((t_1 * (((1.421413741 + (t_1 * (-1.453152027 + (1.061405429 / t_0)))) * (-1.0 / t_0)) - -0.284496736)) - 0.254829592)));
	} else if (x <= 0.00048) {
		tmp = 1e-9 + ((-0.00011824294398844343 * pow(x, 2.0)) + ((-0.37545125292247583 * pow(x, 3.0)) + (x * 1.128386358070218)));
	} else {
		tmp = exp(log1p(((-0.254829592 - ((-0.284496736 + ((1.421413741 + ((-1.453152027 + (1.061405429 / fma(0.3275911, x, 1.0))) / fma(0.3275911, x, 1.0))) / fma(0.3275911, x, 1.0))) / fma(0.3275911, x, 1.0))) / (fma(0.3275911, x, 1.0) * exp((x * x))))));
	}
	return tmp;
}
function code(x)
	return Float64(1.0 - Float64(Float64(Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x)))) * Float64(0.254829592 + Float64(Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x)))) * Float64(-0.284496736 + Float64(Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x)))) * Float64(1.421413741 + Float64(Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x)))) * Float64(-1.453152027 + Float64(Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x)))) * 1.061405429))))))))) * exp(Float64(-Float64(abs(x) * abs(x))))))
end
function code(x)
	t_0 = Float64(1.0 + Float64(abs(x) * 0.3275911))
	t_1 = Float64(1.0 / t_0)
	tmp = 0.0
	if (x <= -2.5e-17)
		tmp = Float64(1.0 + Float64(t_1 * Float64(exp(Float64(x * Float64(-x))) * Float64(Float64(t_1 * Float64(Float64(Float64(1.421413741 + Float64(t_1 * Float64(-1.453152027 + Float64(1.061405429 / t_0)))) * Float64(-1.0 / t_0)) - -0.284496736)) - 0.254829592))));
	elseif (x <= 0.00048)
		tmp = Float64(1e-9 + Float64(Float64(-0.00011824294398844343 * (x ^ 2.0)) + Float64(Float64(-0.37545125292247583 * (x ^ 3.0)) + Float64(x * 1.128386358070218))));
	else
		tmp = exp(log1p(Float64(Float64(-0.254829592 - Float64(Float64(-0.284496736 + Float64(Float64(1.421413741 + Float64(Float64(-1.453152027 + Float64(1.061405429 / fma(0.3275911, x, 1.0))) / fma(0.3275911, x, 1.0))) / fma(0.3275911, x, 1.0))) / fma(0.3275911, x, 1.0))) / Float64(fma(0.3275911, x, 1.0) * exp(Float64(x * x))))));
	end
	return tmp
end
code[x_] := N[(1.0 - N[(N[(N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(0.254829592 + N[(N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(-0.284496736 + N[(N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.421413741 + N[(N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(-1.453152027 + N[(N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 1.061405429), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Exp[(-N[(N[Abs[x], $MachinePrecision] * N[Abs[x], $MachinePrecision]), $MachinePrecision])], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_] := Block[{t$95$0 = N[(1.0 + N[(N[Abs[x], $MachinePrecision] * 0.3275911), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(1.0 / t$95$0), $MachinePrecision]}, If[LessEqual[x, -2.5e-17], N[(1.0 + N[(t$95$1 * N[(N[Exp[N[(x * (-x)), $MachinePrecision]], $MachinePrecision] * N[(N[(t$95$1 * N[(N[(N[(1.421413741 + N[(t$95$1 * N[(-1.453152027 + N[(1.061405429 / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(-1.0 / t$95$0), $MachinePrecision]), $MachinePrecision] - -0.284496736), $MachinePrecision]), $MachinePrecision] - 0.254829592), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 0.00048], N[(1e-9 + N[(N[(-0.00011824294398844343 * N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision] + N[(N[(-0.37545125292247583 * N[Power[x, 3.0], $MachinePrecision]), $MachinePrecision] + N[(x * 1.128386358070218), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[Exp[N[Log[1 + N[(N[(-0.254829592 - N[(N[(-0.284496736 + N[(N[(1.421413741 + N[(N[(-1.453152027 + N[(1.061405429 / N[(0.3275911 * x + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.3275911 * x + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.3275911 * x + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.3275911 * x + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(0.3275911 * x + 1.0), $MachinePrecision] * N[Exp[N[(x * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]]]]]
1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}
\begin{array}{l}
t_0 := 1 + \left|x\right| \cdot 0.3275911\\
t_1 := \frac{1}{t_0}\\
\mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\
\;\;\;\;1 + t_1 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(t_1 \cdot \left(\left(1.421413741 + t_1 \cdot \left(-1.453152027 + \frac{1.061405429}{t_0}\right)\right) \cdot \frac{-1}{t_0} - -0.284496736\right) - 0.254829592\right)\right)\\

\mathbf{elif}\;x \leq 0.00048:\\
\;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\

\mathbf{else}:\\
\;\;\;\;e^{\mathsf{log1p}\left(\frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\right)}\\


\end{array}

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Herbie found 17 alternatives:

AlternativeAccuracySpeedup

Accuracy vs Speed

The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Bogosity?

Bogosity

Derivation?

  1. Split input into 3 regimes
  2. if x < -2.4999999999999999e-17

    1. Initial program 97.3%

      \[1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    2. Simplified97.3%

      \[\leadsto \color{blue}{1 - \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-x \cdot x}\right)} \]
      Step-by-step derivation

      [Start]97.3%

      \[ 1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]

      associate-*l* [=>]97.3%

      \[ 1 - \color{blue}{\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\right)} \]

    if -2.4999999999999999e-17 < x < 4.80000000000000012e-4

    1. Initial program 58.2%

      \[1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    2. Simplified58.2%

      \[\leadsto \color{blue}{1 - \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-x \cdot x}\right)} \]
      Step-by-step derivation

      [Start]58.2%

      \[ 1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]

      associate-*l* [=>]58.2%

      \[ 1 - \color{blue}{\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\right)} \]
    3. Applied egg-rr58.1%

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(-\frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right) \cdot {\left(e^{x}\right)}^{x}}\right)}} \]
      Step-by-step derivation

      [Start]58.2%

      \[ 1 - \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-x \cdot x}\right) \]

      associate-*l/ [=>]58.2%

      \[ 1 - \color{blue}{\frac{1 \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-x \cdot x}\right)}{1 + 0.3275911 \cdot \left|x\right|}} \]
    4. Simplified58.1%

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\right)}} \]
      Step-by-step derivation

      [Start]58.1%

      \[ e^{\mathsf{log1p}\left(-\frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right) \cdot {\left(e^{x}\right)}^{x}}\right)} \]

      distribute-neg-frac [=>]58.1%

      \[ e^{\mathsf{log1p}\left(\color{blue}{\frac{-\left(0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}\right)}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right) \cdot {\left(e^{x}\right)}^{x}}}\right)} \]
    5. Taylor expanded in x around 0 99.9%

      \[\leadsto \color{blue}{10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + 1.128386358070218 \cdot x\right)\right)} \]

    if 4.80000000000000012e-4 < x

    1. Initial program 99.7%

      \[1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    2. Simplified99.7%

      \[\leadsto \color{blue}{1 - \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-x \cdot x}\right)} \]
      Step-by-step derivation

      [Start]99.7%

      \[ 1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]

      associate-*l* [=>]99.7%

      \[ 1 - \color{blue}{\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\right)} \]
    3. Applied egg-rr99.7%

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(-\frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right) \cdot {\left(e^{x}\right)}^{x}}\right)}} \]
      Step-by-step derivation

      [Start]99.7%

      \[ 1 - \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-x \cdot x}\right) \]

      associate-*l/ [=>]99.7%

      \[ 1 - \color{blue}{\frac{1 \cdot \left(\left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-x \cdot x}\right)}{1 + 0.3275911 \cdot \left|x\right|}} \]
    4. Simplified99.7%

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\right)}} \]
      Step-by-step derivation

      [Start]99.7%

      \[ e^{\mathsf{log1p}\left(-\frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right) \cdot {\left(e^{x}\right)}^{x}}\right)} \]

      distribute-neg-frac [=>]99.7%

      \[ e^{\mathsf{log1p}\left(\color{blue}{\frac{-\left(0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}\right)}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right) \cdot {\left(e^{x}\right)}^{x}}}\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification99.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + \frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot \left(\left(1.421413741 + \frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot \left(-1.453152027 + \frac{1.061405429}{1 + \left|x\right| \cdot 0.3275911}\right)\right) \cdot \frac{-1}{1 + \left|x\right| \cdot 0.3275911} - -0.284496736\right) - 0.254829592\right)\right)\\ \mathbf{elif}\;x \leq 0.00048:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;e^{\mathsf{log1p}\left(\frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\right)}\\ \end{array} \]

Alternatives

Alternative 1
Accuracy99.3%
Cost53576
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + t_1 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(t_1 \cdot \left(\left(1.421413741 + t_1 \cdot \left(-1.453152027 + \frac{1.061405429}{t_0}\right)\right) \cdot \frac{-1}{t_0} - -0.284496736\right) - 0.254829592\right)\right)\\ \mathbf{elif}\;x \leq 0.00048:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;e^{\mathsf{log1p}\left(\frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\right)}\\ \end{array} \]
Alternative 2
Accuracy98.8%
Cost98308
\[\begin{array}{l} t_0 := \mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)\\ \mathbf{if}\;\left|x\right| \leq 0.0005:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{1 - \frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{t_0}}{t_0}}{t_0}}{t_0}}{t_0 \cdot {\left(e^{x}\right)}^{x}}}\right)\\ \end{array} \]
Alternative 3
Accuracy98.8%
Cost93380
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ t_2 := \sqrt[3]{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)}}\\ \mathbf{if}\;\left|x\right| \leq 0.0005:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1 + t_1 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(t_1 \cdot \left(t_1 \cdot \left(\mathsf{fma}\left({t_2}^{2}, t_2, -1.453152027\right) \cdot \frac{-1}{t_0} - 1.421413741\right) - -0.284496736\right) - 0.254829592\right)\right)\\ \end{array} \]
Alternative 4
Accuracy98.8%
Cost92036
\[\begin{array}{l} t_0 := \mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)\\ \mathbf{if}\;\left|x\right| \leq 0.001:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{1 - \frac{\left(0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{t_0}}{t_0}}{t_0}}{t_0}\right) \cdot e^{x \cdot \left(-x\right)}}{t_0}}\right)\\ \end{array} \]
Alternative 5
Accuracy98.8%
Cost60932
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ t_2 := \mathsf{fma}\left(0.3275911, \left|x\right|, 1\right)\\ \mathbf{if}\;\left|x\right| \leq 0.0005:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1 + t_1 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(t_1 \cdot \left(\left(-1 + \left(\frac{-1.453152027 + \frac{1.061405429}{t_2}}{t_2} + 2.421413741\right)\right) \cdot \frac{-1}{t_0} - -0.284496736\right) - 0.254829592\right)\right)\\ \end{array} \]
Alternative 6
Accuracy99.3%
Cost41988
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + t_1 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(t_1 \cdot \left(\left(1.421413741 + t_1 \cdot \left(-1.453152027 + \frac{1.061405429}{t_0}\right)\right) \cdot \frac{-1}{t_0} - -0.284496736\right) - 0.254829592\right)\right)\\ \mathbf{elif}\;x \leq 0.00048:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1 + \frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\\ \end{array} \]
Alternative 7
Accuracy98.7%
Cost41412
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ \mathbf{if}\;x \leq -2.45 \cdot 10^{-17}:\\ \;\;\;\;1 + t_1 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(\frac{\left(0.284496736 + t_1 \cdot 0.031738286\right) + 1.061405429 \cdot \frac{-1}{{t_0}^{2}}}{t_0} - 0.254829592\right)\right)\\ \mathbf{elif}\;x \leq 0.00048:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1 + \frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\\ \end{array} \]
Alternative 8
Accuracy98.7%
Cost40904
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + \left(e^{x \cdot \left(-x\right)} \cdot \left(0.254829592 + t_1 \cdot \left(-0.284496736 + t_1 \cdot \left(\frac{1.061405429}{t_0} - 0.031738286\right)\right)\right)\right) \cdot \frac{-1}{t_0}\\ \mathbf{elif}\;x \leq 0.00048:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1 + \frac{-0.254829592 - \frac{-0.284496736 + \frac{1.421413741 + \frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right) \cdot e^{x \cdot x}}\\ \end{array} \]
Alternative 9
Accuracy98.6%
Cost34948
\[\begin{array}{l} t_0 := 1 + \left|x\right| \cdot 0.3275911\\ t_1 := \frac{1}{t_0}\\ \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + \left(e^{x \cdot \left(-x\right)} \cdot \left(0.254829592 + t_1 \cdot \left(-0.284496736 + t_1 \cdot \left(\frac{1.061405429}{t_0} - 0.031738286\right)\right)\right)\right) \cdot \frac{-1}{t_0}\\ \mathbf{elif}\;x \leq 1.05:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 10
Accuracy98.6%
Cost29188
\[\begin{array}{l} t_0 := 1 + x \cdot 0.3275911\\ t_1 := 1 + \left|x\right| \cdot 0.3275911\\ t_2 := \frac{1}{t_1}\\ \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + t_2 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(\frac{1}{t_0} \cdot \left(t_2 \cdot \left(\left(-1.453152027 + \frac{1.061405429}{t_1}\right) \cdot \frac{-1}{t_0} - 1.421413741\right) - -0.284496736\right) - 0.254829592\right)\right)\\ \mathbf{elif}\;x \leq 1.05:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 11
Accuracy98.6%
Cost28676
\[\begin{array}{l} t_0 := \frac{1}{1 + \left|x\right| \cdot 0.3275911}\\ \mathbf{if}\;x \leq -2.5 \cdot 10^{-17}:\\ \;\;\;\;1 + t_0 \cdot \left(e^{x \cdot \left(-x\right)} \cdot \left(\frac{1}{1 + x \cdot 0.3275911} \cdot \left(t_0 \cdot \left(0.031738286 - 1.061405429 \cdot t_0\right) - -0.284496736\right) - 0.254829592\right)\right)\\ \mathbf{elif}\;x \leq 1.05:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 12
Accuracy98.5%
Cost14024
\[\begin{array}{l} \mathbf{if}\;x \leq -8.8 \cdot 10^{-10}:\\ \;\;\;\;1\\ \mathbf{elif}\;x \leq 1.05:\\ \;\;\;\;10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 13
Accuracy98.4%
Cost7240
\[\begin{array}{l} \mathbf{if}\;x \leq -8.8 \cdot 10^{-10}:\\ \;\;\;\;1\\ \mathbf{elif}\;x \leq 0.88:\\ \;\;\;\;10^{-9} + \mathsf{fma}\left(-0.00011824294398844343, x \cdot x, x \cdot 1.128386358070218\right)\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 14
Accuracy98.3%
Cost1096
\[\begin{array}{l} \mathbf{if}\;x \leq -8.8 \cdot 10^{-10}:\\ \;\;\;\;1\\ \mathbf{elif}\;x \leq 0.88:\\ \;\;\;\;\frac{10^{-18} - \left(x \cdot x\right) \cdot 1.2732557730789702}{10^{-9} - x \cdot 1.128386358070218}\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 15
Accuracy98.3%
Cost584
\[\begin{array}{l} \mathbf{if}\;x \leq -8.8 \cdot 10^{-10}:\\ \;\;\;\;1\\ \mathbf{elif}\;x \leq 0.88:\\ \;\;\;\;10^{-9} + x \cdot 1.128386358070218\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 16
Accuracy97.4%
Cost328
\[\begin{array}{l} \mathbf{if}\;x \leq -2.8 \cdot 10^{-5}:\\ \;\;\;\;1\\ \mathbf{elif}\;x \leq 2.8 \cdot 10^{-5}:\\ \;\;\;\;10^{-9}\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
Alternative 17
Accuracy53.5%
Cost64
\[10^{-9} \]

Reproduce?

herbie shell --seed 2023258 
(FPCore (x)
  :name "Jmat.Real.erf"
  :precision binary64
  (- 1.0 (* (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))