Jmat.Real.erf

Percentage Accurate: 58.5% → 98.9%
Time: 1.3min
Alternatives: 4
Speedup: 856.0×

Specification

?
\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\right|}\\ 1 - \left(t_0 \cdot \left(0.254829592 + t_0 \cdot \left(-0.284496736 + t_0 \cdot \left(1.421413741 + t_0 \cdot \left(-1.453152027 + t_0 \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \end{array} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))))
   (-
    1.0
    (*
     (*
      t_0
      (+
       0.254829592
       (*
        t_0
        (+
         -0.284496736
         (*
          t_0
          (+ 1.421413741 (* t_0 (+ -1.453152027 (* t_0 1.061405429)))))))))
     (exp (- (* (fabs x) (fabs x))))))))
double code(double x) {
	double t_0 = 1.0 / (1.0 + (0.3275911 * fabs(x)));
	return 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * exp(-(fabs(x) * fabs(x))));
}
real(8) function code(x)
    real(8), intent (in) :: x
    real(8) :: t_0
    t_0 = 1.0d0 / (1.0d0 + (0.3275911d0 * abs(x)))
    code = 1.0d0 - ((t_0 * (0.254829592d0 + (t_0 * ((-0.284496736d0) + (t_0 * (1.421413741d0 + (t_0 * ((-1.453152027d0) + (t_0 * 1.061405429d0))))))))) * exp(-(abs(x) * abs(x))))
end function
public static double code(double x) {
	double t_0 = 1.0 / (1.0 + (0.3275911 * Math.abs(x)));
	return 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * Math.exp(-(Math.abs(x) * Math.abs(x))));
}
def code(x):
	t_0 = 1.0 / (1.0 + (0.3275911 * math.fabs(x)))
	return 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * math.exp(-(math.fabs(x) * math.fabs(x))))
function code(x)
	t_0 = Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x))))
	return Float64(1.0 - Float64(Float64(t_0 * Float64(0.254829592 + Float64(t_0 * Float64(-0.284496736 + Float64(t_0 * Float64(1.421413741 + Float64(t_0 * Float64(-1.453152027 + Float64(t_0 * 1.061405429))))))))) * exp(Float64(-Float64(abs(x) * abs(x))))))
end
function tmp = code(x)
	t_0 = 1.0 / (1.0 + (0.3275911 * abs(x)));
	tmp = 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * exp(-(abs(x) * abs(x))));
end
code[x_] := Block[{t$95$0 = N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(1.0 - N[(N[(t$95$0 * N[(0.254829592 + N[(t$95$0 * N[(-0.284496736 + N[(t$95$0 * N[(1.421413741 + N[(t$95$0 * N[(-1.453152027 + N[(t$95$0 * 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]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\right|}\\
1 - \left(t_0 \cdot \left(0.254829592 + t_0 \cdot \left(-0.284496736 + t_0 \cdot \left(1.421413741 + t_0 \cdot \left(-1.453152027 + t_0 \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}
\end{array}
\end{array}

Sampling outcomes in binary64 precision:

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.

Accuracy vs Speed?

Herbie found 4 alternatives:

AlternativeAccuracySpeedup
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.

Initial Program: 58.5% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\right|}\\ 1 - \left(t_0 \cdot \left(0.254829592 + t_0 \cdot \left(-0.284496736 + t_0 \cdot \left(1.421413741 + t_0 \cdot \left(-1.453152027 + t_0 \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \end{array} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))))
   (-
    1.0
    (*
     (*
      t_0
      (+
       0.254829592
       (*
        t_0
        (+
         -0.284496736
         (*
          t_0
          (+ 1.421413741 (* t_0 (+ -1.453152027 (* t_0 1.061405429)))))))))
     (exp (- (* (fabs x) (fabs x))))))))
double code(double x) {
	double t_0 = 1.0 / (1.0 + (0.3275911 * fabs(x)));
	return 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * exp(-(fabs(x) * fabs(x))));
}
real(8) function code(x)
    real(8), intent (in) :: x
    real(8) :: t_0
    t_0 = 1.0d0 / (1.0d0 + (0.3275911d0 * abs(x)))
    code = 1.0d0 - ((t_0 * (0.254829592d0 + (t_0 * ((-0.284496736d0) + (t_0 * (1.421413741d0 + (t_0 * ((-1.453152027d0) + (t_0 * 1.061405429d0))))))))) * exp(-(abs(x) * abs(x))))
end function
public static double code(double x) {
	double t_0 = 1.0 / (1.0 + (0.3275911 * Math.abs(x)));
	return 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * Math.exp(-(Math.abs(x) * Math.abs(x))));
}
def code(x):
	t_0 = 1.0 / (1.0 + (0.3275911 * math.fabs(x)))
	return 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * math.exp(-(math.fabs(x) * math.fabs(x))))
function code(x)
	t_0 = Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x))))
	return Float64(1.0 - Float64(Float64(t_0 * Float64(0.254829592 + Float64(t_0 * Float64(-0.284496736 + Float64(t_0 * Float64(1.421413741 + Float64(t_0 * Float64(-1.453152027 + Float64(t_0 * 1.061405429))))))))) * exp(Float64(-Float64(abs(x) * abs(x))))))
end
function tmp = code(x)
	t_0 = 1.0 / (1.0 + (0.3275911 * abs(x)));
	tmp = 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * exp(-(abs(x) * abs(x))));
end
code[x_] := Block[{t$95$0 = N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(1.0 - N[(N[(t$95$0 * N[(0.254829592 + N[(t$95$0 * N[(-0.284496736 + N[(t$95$0 * N[(1.421413741 + N[(t$95$0 * N[(-1.453152027 + N[(t$95$0 * 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]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\right|}\\
1 - \left(t_0 \cdot \left(0.254829592 + t_0 \cdot \left(-0.284496736 + t_0 \cdot \left(1.421413741 + t_0 \cdot \left(-1.453152027 + t_0 \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}
\end{array}
\end{array}

Alternative 1: 98.9% accurate, 7.4× speedup?

\[\begin{array}{l} x = |x|\\ \\ 10^{-9} + \left(x \cdot \left(x \cdot -0.00011824294398844343\right) + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right) \end{array} \]
NOTE: x should be positive before calling this function
(FPCore (x)
 :precision binary64
 (+
  1e-9
  (+
   (* x (* x -0.00011824294398844343))
   (+ (* -0.37545125292247583 (pow x 3.0)) (* x 1.128386358070218)))))
x = abs(x);
double code(double x) {
	return 1e-9 + ((x * (x * -0.00011824294398844343)) + ((-0.37545125292247583 * pow(x, 3.0)) + (x * 1.128386358070218)));
}
NOTE: x should be positive before calling this function
real(8) function code(x)
    real(8), intent (in) :: x
    code = 1d-9 + ((x * (x * (-0.00011824294398844343d0))) + (((-0.37545125292247583d0) * (x ** 3.0d0)) + (x * 1.128386358070218d0)))
end function
x = Math.abs(x);
public static double code(double x) {
	return 1e-9 + ((x * (x * -0.00011824294398844343)) + ((-0.37545125292247583 * Math.pow(x, 3.0)) + (x * 1.128386358070218)));
}
x = abs(x)
def code(x):
	return 1e-9 + ((x * (x * -0.00011824294398844343)) + ((-0.37545125292247583 * math.pow(x, 3.0)) + (x * 1.128386358070218)))
x = abs(x)
function code(x)
	return Float64(1e-9 + Float64(Float64(x * Float64(x * -0.00011824294398844343)) + Float64(Float64(-0.37545125292247583 * (x ^ 3.0)) + Float64(x * 1.128386358070218))))
end
x = abs(x)
function tmp = code(x)
	tmp = 1e-9 + ((x * (x * -0.00011824294398844343)) + ((-0.37545125292247583 * (x ^ 3.0)) + (x * 1.128386358070218)));
end
NOTE: x should be positive before calling this function
code[x_] := N[(1e-9 + N[(N[(x * N[(x * -0.00011824294398844343), $MachinePrecision]), $MachinePrecision] + N[(N[(-0.37545125292247583 * N[Power[x, 3.0], $MachinePrecision]), $MachinePrecision] + N[(x * 1.128386358070218), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
x = |x|\\
\\
10^{-9} + \left(x \cdot \left(x \cdot -0.00011824294398844343\right) + \left(-0.37545125292247583 \cdot {x}^{3} + x \cdot 1.128386358070218\right)\right)
\end{array}
Derivation
  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. Step-by-step derivation
    1. associate-*l*58.2%

      \[\leadsto 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. 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)} \]
  4. Applied egg-rr58.3%

    \[\leadsto \color{blue}{\frac{1 - {\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}^{3}}{1 + \mathsf{fma}\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}} \]
  5. Simplified56.8%

    \[\leadsto \color{blue}{\frac{1 - {\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 {\left(e^{x}\right)}^{x}}\right)}^{3}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}}} \]
  6. Taylor expanded in x around 0 96.8%

    \[\leadsto \frac{\color{blue}{-3.820122044248399 \cdot {x}^{2} + \left(2.999999997 \cdot 10^{-9} + \left(3.385159067440336 \cdot x + 0.3111712305105463 \cdot {x}^{3}\right)\right)}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}} \]
  7. Taylor expanded in x around 0 96.9%

    \[\leadsto \color{blue}{10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + 1.128386358070218 \cdot x\right)\right)} \]
  8. Step-by-step derivation
    1. pow196.9%

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

      \[\leadsto 10^{-9} + \left({\left(-0.00011824294398844343 \cdot \color{blue}{\left(x \cdot x\right)}\right)}^{1} + \left(-0.37545125292247583 \cdot {x}^{3} + 1.128386358070218 \cdot x\right)\right) \]
  9. Applied egg-rr96.9%

    \[\leadsto 10^{-9} + \left(\color{blue}{{\left(-0.00011824294398844343 \cdot \left(x \cdot x\right)\right)}^{1}} + \left(-0.37545125292247583 \cdot {x}^{3} + 1.128386358070218 \cdot x\right)\right) \]
  10. Step-by-step derivation
    1. unpow196.9%

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

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

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

      \[\leadsto 10^{-9} + \left(\color{blue}{\left(x \cdot x\right)} \cdot -0.00011824294398844343 + \left(-0.37545125292247583 \cdot {x}^{3} + 1.128386358070218 \cdot x\right)\right) \]
    5. associate-*l*96.9%

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

    \[\leadsto 10^{-9} + \left(\color{blue}{x \cdot \left(x \cdot -0.00011824294398844343\right)} + \left(-0.37545125292247583 \cdot {x}^{3} + 1.128386358070218 \cdot x\right)\right) \]
  12. Final simplification96.9%

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

Alternative 2: 98.5% accurate, 95.1× speedup?

\[\begin{array}{l} x = |x|\\ \\ 10^{-9} + x \cdot \left(1.128386358070218 + x \cdot -0.00011824294398844343\right) \end{array} \]
NOTE: x should be positive before calling this function
(FPCore (x)
 :precision binary64
 (+ 1e-9 (* x (+ 1.128386358070218 (* x -0.00011824294398844343)))))
x = abs(x);
double code(double x) {
	return 1e-9 + (x * (1.128386358070218 + (x * -0.00011824294398844343)));
}
NOTE: x should be positive before calling this function
real(8) function code(x)
    real(8), intent (in) :: x
    code = 1d-9 + (x * (1.128386358070218d0 + (x * (-0.00011824294398844343d0))))
end function
x = Math.abs(x);
public static double code(double x) {
	return 1e-9 + (x * (1.128386358070218 + (x * -0.00011824294398844343)));
}
x = abs(x)
def code(x):
	return 1e-9 + (x * (1.128386358070218 + (x * -0.00011824294398844343)))
x = abs(x)
function code(x)
	return Float64(1e-9 + Float64(x * Float64(1.128386358070218 + Float64(x * -0.00011824294398844343))))
end
x = abs(x)
function tmp = code(x)
	tmp = 1e-9 + (x * (1.128386358070218 + (x * -0.00011824294398844343)));
end
NOTE: x should be positive before calling this function
code[x_] := N[(1e-9 + N[(x * N[(1.128386358070218 + N[(x * -0.00011824294398844343), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
x = |x|\\
\\
10^{-9} + x \cdot \left(1.128386358070218 + x \cdot -0.00011824294398844343\right)
\end{array}
Derivation
  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. Step-by-step derivation
    1. associate-*l*58.2%

      \[\leadsto 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. 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)} \]
  4. Applied egg-rr58.3%

    \[\leadsto \color{blue}{\frac{1 - {\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}^{3}}{1 + \mathsf{fma}\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}} \]
  5. Simplified56.8%

    \[\leadsto \color{blue}{\frac{1 - {\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 {\left(e^{x}\right)}^{x}}\right)}^{3}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}}} \]
  6. Taylor expanded in x around 0 96.8%

    \[\leadsto \frac{\color{blue}{-3.820122044248399 \cdot {x}^{2} + \left(2.999999997 \cdot 10^{-9} + \left(3.385159067440336 \cdot x + 0.3111712305105463 \cdot {x}^{3}\right)\right)}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}} \]
  7. Taylor expanded in x around 0 96.9%

    \[\leadsto \color{blue}{10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + \left(-0.37545125292247583 \cdot {x}^{3} + 1.128386358070218 \cdot x\right)\right)} \]
  8. Taylor expanded in x around 0 96.7%

    \[\leadsto \color{blue}{10^{-9} + \left(-0.00011824294398844343 \cdot {x}^{2} + 1.128386358070218 \cdot x\right)} \]
  9. Step-by-step derivation
    1. +-commutative96.7%

      \[\leadsto 10^{-9} + \color{blue}{\left(1.128386358070218 \cdot x + -0.00011824294398844343 \cdot {x}^{2}\right)} \]
    2. unpow296.7%

      \[\leadsto 10^{-9} + \left(1.128386358070218 \cdot x + -0.00011824294398844343 \cdot \color{blue}{\left(x \cdot x\right)}\right) \]
    3. associate-*r*96.7%

      \[\leadsto 10^{-9} + \left(1.128386358070218 \cdot x + \color{blue}{\left(-0.00011824294398844343 \cdot x\right) \cdot x}\right) \]
    4. distribute-rgt-out96.7%

      \[\leadsto 10^{-9} + \color{blue}{x \cdot \left(1.128386358070218 + -0.00011824294398844343 \cdot x\right)} \]
  10. Simplified96.7%

    \[\leadsto \color{blue}{10^{-9} + x \cdot \left(1.128386358070218 + -0.00011824294398844343 \cdot x\right)} \]
  11. Final simplification96.7%

    \[\leadsto 10^{-9} + x \cdot \left(1.128386358070218 + x \cdot -0.00011824294398844343\right) \]

Alternative 3: 98.2% accurate, 171.2× speedup?

\[\begin{array}{l} x = |x|\\ \\ 10^{-9} + x \cdot 1.128386358070218 \end{array} \]
NOTE: x should be positive before calling this function
(FPCore (x) :precision binary64 (+ 1e-9 (* x 1.128386358070218)))
x = abs(x);
double code(double x) {
	return 1e-9 + (x * 1.128386358070218);
}
NOTE: x should be positive before calling this function
real(8) function code(x)
    real(8), intent (in) :: x
    code = 1d-9 + (x * 1.128386358070218d0)
end function
x = Math.abs(x);
public static double code(double x) {
	return 1e-9 + (x * 1.128386358070218);
}
x = abs(x)
def code(x):
	return 1e-9 + (x * 1.128386358070218)
x = abs(x)
function code(x)
	return Float64(1e-9 + Float64(x * 1.128386358070218))
end
x = abs(x)
function tmp = code(x)
	tmp = 1e-9 + (x * 1.128386358070218);
end
NOTE: x should be positive before calling this function
code[x_] := N[(1e-9 + N[(x * 1.128386358070218), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
x = |x|\\
\\
10^{-9} + x \cdot 1.128386358070218
\end{array}
Derivation
  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. Step-by-step derivation
    1. associate-*l*58.2%

      \[\leadsto 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. 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)} \]
  4. Applied egg-rr58.3%

    \[\leadsto \color{blue}{\frac{1 - {\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}^{3}}{1 + \mathsf{fma}\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}} \]
  5. Simplified56.8%

    \[\leadsto \color{blue}{\frac{1 - {\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 {\left(e^{x}\right)}^{x}}\right)}^{3}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}}} \]
  6. Taylor expanded in x around 0 96.8%

    \[\leadsto \frac{\color{blue}{-3.820122044248399 \cdot {x}^{2} + \left(2.999999997 \cdot 10^{-9} + \left(3.385159067440336 \cdot x + 0.3111712305105463 \cdot {x}^{3}\right)\right)}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}} \]
  7. Taylor expanded in x around 0 96.7%

    \[\leadsto \color{blue}{10^{-9} + 1.128386358070218 \cdot x} \]
  8. Step-by-step derivation
    1. *-commutative96.7%

      \[\leadsto 10^{-9} + \color{blue}{x \cdot 1.128386358070218} \]
  9. Simplified96.7%

    \[\leadsto \color{blue}{10^{-9} + x \cdot 1.128386358070218} \]
  10. Final simplification96.7%

    \[\leadsto 10^{-9} + x \cdot 1.128386358070218 \]

Alternative 4: 94.9% accurate, 856.0× speedup?

\[\begin{array}{l} x = |x|\\ \\ 10^{-9} \end{array} \]
NOTE: x should be positive before calling this function
(FPCore (x) :precision binary64 1e-9)
x = abs(x);
double code(double x) {
	return 1e-9;
}
NOTE: x should be positive before calling this function
real(8) function code(x)
    real(8), intent (in) :: x
    code = 1d-9
end function
x = Math.abs(x);
public static double code(double x) {
	return 1e-9;
}
x = abs(x)
def code(x):
	return 1e-9
x = abs(x)
function code(x)
	return 1e-9
end
x = abs(x)
function tmp = code(x)
	tmp = 1e-9;
end
NOTE: x should be positive before calling this function
code[x_] := 1e-9
\begin{array}{l}
x = |x|\\
\\
10^{-9}
\end{array}
Derivation
  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. Step-by-step derivation
    1. associate-*l*58.2%

      \[\leadsto 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. 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)} \]
  4. Applied egg-rr58.3%

    \[\leadsto \color{blue}{\frac{1 - {\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}^{3}}{1 + \mathsf{fma}\left(\frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}, \frac{e^{x \cdot \left(-x\right)} \cdot \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)}\right)}} \]
  5. Simplified56.8%

    \[\leadsto \color{blue}{\frac{1 - {\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 {\left(e^{x}\right)}^{x}}\right)}^{3}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}}} \]
  6. Taylor expanded in x around 0 96.8%

    \[\leadsto \frac{\color{blue}{-3.820122044248399 \cdot {x}^{2} + \left(2.999999997 \cdot 10^{-9} + \left(3.385159067440336 \cdot x + 0.3111712305105463 \cdot {x}^{3}\right)\right)}}{1 + \left(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 {\left(e^{x}\right)}^{x}}\right) \cdot \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 {\left(e^{x}\right)}^{x}}} \]
  7. Taylor expanded in x around 0 95.6%

    \[\leadsto \color{blue}{10^{-9}} \]
  8. Final simplification95.6%

    \[\leadsto 10^{-9} \]

Reproduce

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