Jmat.Real.erf

Percentage Accurate: 79.1% → 99.9%
Time: 12.0s
Alternatives: 10
Speedup: 8.4×

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))));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x)
use fmin_fmax_functions
    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 10 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: 79.1% 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))));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x)
use fmin_fmax_functions
    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: 99.9% accurate, 1.1× speedup?

\[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.00056:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;1 - \frac{\frac{\frac{\frac{-1.061405429}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 1.453152027}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right) \cdot \mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + \left(\frac{-1.421413741}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + -0.284496736\right)}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} \cdot e^{\left(-x\_m\right) \cdot x\_m}\\ \end{array} \end{array} \]
x_m = (fabs.f64 x)
(FPCore (x_m)
 :precision binary64
 (if (<= x_m 0.00056)
   (fma
    (fma
     (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
     x_m
     1.128386358070218)
    x_m
    1e-9)
   (-
    1.0
    (*
     (/
      (+
       (/
        (+
         (/
          (+ (/ -1.061405429 (fma x_m 0.3275911 1.0)) 1.453152027)
          (* (fma x_m 0.3275911 1.0) (fma -0.3275911 x_m -1.0)))
         (+ (/ -1.421413741 (fma -0.3275911 x_m -1.0)) -0.284496736))
        (fma x_m 0.3275911 1.0))
       0.254829592)
      (fma x_m 0.3275911 1.0))
     (exp (* (- x_m) x_m))))))
x_m = fabs(x);
double code(double x_m) {
	double tmp;
	if (x_m <= 0.00056) {
		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	} else {
		tmp = 1.0 - ((((((((-1.061405429 / fma(x_m, 0.3275911, 1.0)) + 1.453152027) / (fma(x_m, 0.3275911, 1.0) * fma(-0.3275911, x_m, -1.0))) + ((-1.421413741 / fma(-0.3275911, x_m, -1.0)) + -0.284496736)) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) / fma(x_m, 0.3275911, 1.0)) * exp((-x_m * x_m)));
	}
	return tmp;
}
x_m = abs(x)
function code(x_m)
	tmp = 0.0
	if (x_m <= 0.00056)
		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	else
		tmp = Float64(1.0 - Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-1.061405429 / fma(x_m, 0.3275911, 1.0)) + 1.453152027) / Float64(fma(x_m, 0.3275911, 1.0) * fma(-0.3275911, x_m, -1.0))) + Float64(Float64(-1.421413741 / fma(-0.3275911, x_m, -1.0)) + -0.284496736)) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) / fma(x_m, 0.3275911, 1.0)) * exp(Float64(Float64(-x_m) * x_m))));
	end
	return tmp
end
x_m = N[Abs[x], $MachinePrecision]
code[x$95$m_] := If[LessEqual[x$95$m, 0.00056], N[(N[(N[(N[(-0.37545125292247583 * x$95$m), $MachinePrecision] - 0.00011824294398844343), $MachinePrecision] * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision], N[(1.0 - N[(N[(N[(N[(N[(N[(N[(N[(-1.061405429 / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + 1.453152027), $MachinePrecision] / N[(N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision] * N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(-1.421413741 / N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision] + -0.284496736), $MachinePrecision]), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + 0.254829592), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] * N[Exp[N[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
x_m = \left|x\right|

\\
\begin{array}{l}
\mathbf{if}\;x\_m \leq 0.00056:\\
\;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < 5.5999999999999995e-4

    1. Initial program 72.0%

      \[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. Add Preprocessing
    3. Applied rewrites69.3%

      \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    4. Applied rewrites69.3%

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

      \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) + \frac{1}{1000000000}} \]
      2. *-commutativeN/A

        \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) \cdot x} + \frac{1}{1000000000} \]
      3. lower-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right), x, \frac{1}{1000000000}\right)} \]
      4. +-commutativeN/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
      5. *-commutativeN/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) \cdot x} + \frac{564193179035109}{500000000000000}, x, \frac{1}{1000000000}\right) \]
      6. lower-fma.f64N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}, x, \frac{564193179035109}{500000000000000}\right)}, x, \frac{1}{1000000000}\right) \]
      7. lower--.f64N/A

        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}}, x, \frac{564193179035109}{500000000000000}\right), x, \frac{1}{1000000000}\right) \]
      8. lower-*.f6465.3

        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{-0.37545125292247583 \cdot x} - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right) \]
    7. Applied rewrites65.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]

    if 5.5999999999999995e-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. Add Preprocessing
    3. Applied rewrites99.7%

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

        \[\leadsto 1 - \frac{\frac{\color{blue}{\frac{\frac{\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-1453152027}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{1421413741}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-8890523}{31250000}}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{31853699}{125000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
      2. lift-/.f64N/A

        \[\leadsto 1 - \frac{\frac{\color{blue}{\frac{\frac{\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-1453152027}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{1421413741}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)}} + \frac{-8890523}{31250000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{31853699}{125000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
      3. lift-+.f64N/A

        \[\leadsto 1 - \frac{\frac{\frac{\color{blue}{\frac{\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-1453152027}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{1421413741}{1000000000}}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-8890523}{31250000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{31853699}{125000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
      4. div-addN/A

        \[\leadsto 1 - \frac{\frac{\color{blue}{\left(\frac{\frac{\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-1453152027}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{\frac{1421413741}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)}\right)} + \frac{-8890523}{31250000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{31853699}{125000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
      5. associate-+l+N/A

        \[\leadsto 1 - \frac{\frac{\color{blue}{\frac{\frac{\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-1453152027}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \left(\frac{\frac{1421413741}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-8890523}{31250000}\right)}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{31853699}{125000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
      6. lower-+.f64N/A

        \[\leadsto 1 - \frac{\frac{\color{blue}{\frac{\frac{\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-1453152027}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \left(\frac{\frac{1421413741}{1000000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{-8890523}{31250000}\right)}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} + \frac{31853699}{125000000}}{\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right)} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    5. Applied rewrites99.7%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 0.00056:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;1 - \frac{\frac{\frac{\frac{-1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right) \cdot \mathsf{fma}\left(-0.3275911, x, -1\right)} + \left(\frac{-1.421413741}{\mathsf{fma}\left(-0.3275911, x, -1\right)} + -0.284496736\right)}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)} \cdot e^{\left(-x\right) \cdot x}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 55.3% accurate, 0.9× speedup?

\[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\_m\right|}\\ \mathbf{if}\;\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\_m\right) \cdot x\_m} \leq 2 \cdot 10^{-176}:\\ \;\;\;\;10^{-9}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \end{array} \end{array} \]
x_m = (fabs.f64 x)
(FPCore (x_m)
 :precision binary64
 (let* ((t_0 (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x_m))))))
   (if (<=
        (*
         (*
          t_0
          (+
           0.254829592
           (*
            t_0
            (+
             -0.284496736
             (*
              t_0
              (+ 1.421413741 (* t_0 (+ -1.453152027 (* t_0 1.061405429)))))))))
         (exp (* (- x_m) x_m)))
        2e-176)
     1e-9
     (fma
      (fma
       (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
       x_m
       1.128386358070218)
      x_m
      1e-9))))
x_m = fabs(x);
double code(double x_m) {
	double t_0 = 1.0 / (1.0 + (0.3275911 * fabs(x_m)));
	double tmp;
	if (((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * exp((-x_m * x_m))) <= 2e-176) {
		tmp = 1e-9;
	} else {
		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	}
	return tmp;
}
x_m = abs(x)
function code(x_m)
	t_0 = Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x_m))))
	tmp = 0.0
	if (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(-x_m) * x_m))) <= 2e-176)
		tmp = 1e-9;
	else
		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	end
	return tmp
end
x_m = N[Abs[x], $MachinePrecision]
code[x$95$m_] := Block[{t$95$0 = N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[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[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2e-176], 1e-9, N[(N[(N[(N[(-0.37545125292247583 * x$95$m), $MachinePrecision] - 0.00011824294398844343), $MachinePrecision] * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision]]]
\begin{array}{l}
x_m = \left|x\right|

\\
\begin{array}{l}
t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\_m\right|}\\
\mathbf{if}\;\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\_m\right) \cdot x\_m} \leq 2 \cdot 10^{-176}:\\
\;\;\;\;10^{-9}\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 31853699/125000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -8890523/31250000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 1421413741/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -1453152027/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) #s(literal 1061405429/1000000000 binary64)))))))))) (exp.f64 (neg.f64 (*.f64 (fabs.f64 x) (fabs.f64 x))))) < 2e-176

    1. Initial program 100.0%

      \[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. Add Preprocessing
    3. Applied rewrites100.0%

      \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    4. Applied rewrites100.0%

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

      \[\leadsto \color{blue}{\frac{1}{1000000000}} \]
    6. Step-by-step derivation
      1. Applied rewrites11.1%

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

      if 2e-176 < (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 31853699/125000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -8890523/31250000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 1421413741/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -1453152027/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) #s(literal 1061405429/1000000000 binary64)))))))))) (exp.f64 (neg.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)))))

      1. Initial program 59.0%

        \[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. Add Preprocessing
      3. Applied rewrites55.1%

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

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

        \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right)} \]
      6. Step-by-step derivation
        1. +-commutativeN/A

          \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) + \frac{1}{1000000000}} \]
        2. *-commutativeN/A

          \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) \cdot x} + \frac{1}{1000000000} \]
        3. lower-fma.f64N/A

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right), x, \frac{1}{1000000000}\right)} \]
        4. +-commutativeN/A

          \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
        5. *-commutativeN/A

          \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) \cdot x} + \frac{564193179035109}{500000000000000}, x, \frac{1}{1000000000}\right) \]
        6. lower-fma.f64N/A

          \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}, x, \frac{564193179035109}{500000000000000}\right)}, x, \frac{1}{1000000000}\right) \]
        7. lower--.f64N/A

          \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}}, x, \frac{564193179035109}{500000000000000}\right), x, \frac{1}{1000000000}\right) \]
        8. lower-*.f6494.1

          \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{-0.37545125292247583 \cdot x} - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right) \]
      7. Applied rewrites94.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]
    7. Recombined 2 regimes into one program.
    8. Final simplification53.6%

      \[\leadsto \begin{array}{l} \mathbf{if}\;\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 x} \leq 2 \cdot 10^{-176}:\\ \;\;\;\;10^{-9}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)\\ \end{array} \]
    9. Add Preprocessing

    Alternative 3: 55.1% accurate, 1.0× speedup?

    \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\_m\right|}\\ \mathbf{if}\;\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\_m\right) \cdot x\_m} \leq 0:\\ \;\;\;\;10^{-9}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \end{array} \end{array} \]
    x_m = (fabs.f64 x)
    (FPCore (x_m)
     :precision binary64
     (let* ((t_0 (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x_m))))))
       (if (<=
            (*
             (*
              t_0
              (+
               0.254829592
               (*
                t_0
                (+
                 -0.284496736
                 (*
                  t_0
                  (+ 1.421413741 (* t_0 (+ -1.453152027 (* t_0 1.061405429)))))))))
             (exp (* (- x_m) x_m)))
            0.0)
         1e-9
         (fma (fma -0.00011824294398844343 x_m 1.128386358070218) x_m 1e-9))))
    x_m = fabs(x);
    double code(double x_m) {
    	double t_0 = 1.0 / (1.0 + (0.3275911 * fabs(x_m)));
    	double tmp;
    	if (((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * exp((-x_m * x_m))) <= 0.0) {
    		tmp = 1e-9;
    	} else {
    		tmp = fma(fma(-0.00011824294398844343, x_m, 1.128386358070218), x_m, 1e-9);
    	}
    	return tmp;
    }
    
    x_m = abs(x)
    function code(x_m)
    	t_0 = Float64(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x_m))))
    	tmp = 0.0
    	if (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(-x_m) * x_m))) <= 0.0)
    		tmp = 1e-9;
    	else
    		tmp = fma(fma(-0.00011824294398844343, x_m, 1.128386358070218), x_m, 1e-9);
    	end
    	return tmp
    end
    
    x_m = N[Abs[x], $MachinePrecision]
    code[x$95$m_] := Block[{t$95$0 = N[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[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[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 0.0], 1e-9, N[(N[(-0.00011824294398844343 * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision]]]
    
    \begin{array}{l}
    x_m = \left|x\right|
    
    \\
    \begin{array}{l}
    t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\_m\right|}\\
    \mathbf{if}\;\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\_m\right) \cdot x\_m} \leq 0:\\
    \;\;\;\;10^{-9}\\
    
    \mathbf{else}:\\
    \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 31853699/125000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -8890523/31250000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 1421413741/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -1453152027/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) #s(literal 1061405429/1000000000 binary64)))))))))) (exp.f64 (neg.f64 (*.f64 (fabs.f64 x) (fabs.f64 x))))) < 0.0

      1. Initial program 100.0%

        \[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. Add Preprocessing
      3. Applied rewrites100.0%

        \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
      4. Applied rewrites100.0%

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

        \[\leadsto \color{blue}{\frac{1}{1000000000}} \]
      6. Step-by-step derivation
        1. Applied rewrites11.1%

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

        if 0.0 < (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 31853699/125000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -8890523/31250000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal 1421413741/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) (+.f64 #s(literal -1453152027/1000000000 binary64) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3275911/10000000 binary64) (fabs.f64 x)))) #s(literal 1061405429/1000000000 binary64)))))))))) (exp.f64 (neg.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)))))

        1. Initial program 59.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. Add Preprocessing
        3. Applied rewrites55.4%

          \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites55.5%

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

          \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + \frac{-2364858879768868679}{20000000000000000000000} \cdot x\right)} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + \frac{-2364858879768868679}{20000000000000000000000} \cdot x\right) + \frac{1}{1000000000}} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + \frac{-2364858879768868679}{20000000000000000000000} \cdot x\right) \cdot x} + \frac{1}{1000000000} \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + \frac{-2364858879768868679}{20000000000000000000000} \cdot x, x, \frac{1}{1000000000}\right)} \]
          4. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{-2364858879768868679}{20000000000000000000000} \cdot x + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
          5. lower-fma.f6493.2

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(-0.00011824294398844343, x, 1.128386358070218\right)}, x, 10^{-9}\right) \]
        7. Applied rewrites93.2%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]
      7. Recombined 2 regimes into one program.
      8. Final simplification53.4%

        \[\leadsto \begin{array}{l} \mathbf{if}\;\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 x} \leq 0:\\ \;\;\;\;10^{-9}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)\\ \end{array} \]
      9. Add Preprocessing

      Alternative 4: 99.9% accurate, 1.1× speedup?

      \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.00055:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{\frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)}}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + \left(\frac{-1.421413741}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + -0.284496736\right)}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)}, e^{\left(-x\_m\right) \cdot x\_m}, 1\right)\\ \end{array} \end{array} \]
      x_m = (fabs.f64 x)
      (FPCore (x_m)
       :precision binary64
       (if (<= x_m 0.00055)
         (fma
          (fma
           (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
           x_m
           1.128386358070218)
          x_m
          1e-9)
         (fma
          (/
           (+
            (/
             (+
              (/
               (+ -1.453152027 (/ 1.061405429 (fma 0.3275911 x_m 1.0)))
               (* (fma -0.3275911 x_m -1.0) (fma -0.3275911 x_m -1.0)))
              (+ (/ -1.421413741 (fma -0.3275911 x_m -1.0)) -0.284496736))
             (fma x_m 0.3275911 1.0))
            0.254829592)
           (fma -0.3275911 x_m -1.0))
          (exp (* (- x_m) x_m))
          1.0)))
      x_m = fabs(x);
      double code(double x_m) {
      	double tmp;
      	if (x_m <= 0.00055) {
      		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	} else {
      		tmp = fma(((((((-1.453152027 + (1.061405429 / fma(0.3275911, x_m, 1.0))) / (fma(-0.3275911, x_m, -1.0) * fma(-0.3275911, x_m, -1.0))) + ((-1.421413741 / fma(-0.3275911, x_m, -1.0)) + -0.284496736)) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) / fma(-0.3275911, x_m, -1.0)), exp((-x_m * x_m)), 1.0);
      	}
      	return tmp;
      }
      
      x_m = abs(x)
      function code(x_m)
      	tmp = 0.0
      	if (x_m <= 0.00055)
      		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	else
      		tmp = fma(Float64(Float64(Float64(Float64(Float64(Float64(-1.453152027 + Float64(1.061405429 / fma(0.3275911, x_m, 1.0))) / Float64(fma(-0.3275911, x_m, -1.0) * fma(-0.3275911, x_m, -1.0))) + Float64(Float64(-1.421413741 / fma(-0.3275911, x_m, -1.0)) + -0.284496736)) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) / fma(-0.3275911, x_m, -1.0)), exp(Float64(Float64(-x_m) * x_m)), 1.0);
      	end
      	return tmp
      end
      
      x_m = N[Abs[x], $MachinePrecision]
      code[x$95$m_] := If[LessEqual[x$95$m, 0.00055], N[(N[(N[(N[(-0.37545125292247583 * x$95$m), $MachinePrecision] - 0.00011824294398844343), $MachinePrecision] * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision], N[(N[(N[(N[(N[(N[(N[(-1.453152027 + N[(1.061405429 / N[(0.3275911 * x$95$m + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision] * N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(-1.421413741 / N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision] + -0.284496736), $MachinePrecision]), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + 0.254829592), $MachinePrecision] / N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision] * N[Exp[N[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]]
      
      \begin{array}{l}
      x_m = \left|x\right|
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x\_m \leq 0.00055:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;\mathsf{fma}\left(\frac{\frac{\frac{-1.453152027 + \frac{1.061405429}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)}}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + \left(\frac{-1.421413741}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + -0.284496736\right)}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)}, e^{\left(-x\_m\right) \cdot x\_m}, 1\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < 5.50000000000000033e-4

        1. Initial program 72.0%

          \[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. Add Preprocessing
        3. Applied rewrites69.3%

          \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites69.3%

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

          \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right)} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) + \frac{1}{1000000000}} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) \cdot x} + \frac{1}{1000000000} \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right), x, \frac{1}{1000000000}\right)} \]
          4. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
          5. *-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) \cdot x} + \frac{564193179035109}{500000000000000}, x, \frac{1}{1000000000}\right) \]
          6. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}, x, \frac{564193179035109}{500000000000000}\right)}, x, \frac{1}{1000000000}\right) \]
          7. lower--.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}}, x, \frac{564193179035109}{500000000000000}\right), x, \frac{1}{1000000000}\right) \]
          8. lower-*.f6465.3

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{-0.37545125292247583 \cdot x} - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right) \]
        7. Applied rewrites65.3%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]

        if 5.50000000000000033e-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. Add Preprocessing
        3. Applied rewrites99.7%

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

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{\frac{\frac{\frac{-1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(-0.3275911, x, -1\right)}, e^{\left(-x\right) \cdot x}, 1\right)} \]
        5. Applied rewrites99.7%

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

      Alternative 5: 99.9% accurate, 1.2× speedup?

      \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.00055:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;1 - \frac{\left(\frac{\frac{\frac{\frac{-1.061405429}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 1.453152027}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + 1.421413741}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 0.254829592\right) \cdot e^{\left(-x\_m\right) \cdot x\_m}}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)}\\ \end{array} \end{array} \]
      x_m = (fabs.f64 x)
      (FPCore (x_m)
       :precision binary64
       (if (<= x_m 0.00055)
         (fma
          (fma
           (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
           x_m
           1.128386358070218)
          x_m
          1e-9)
         (-
          1.0
          (/
           (*
            (+
             (/
              (+
               (/
                (+
                 (/
                  (+ (/ -1.061405429 (fma x_m 0.3275911 1.0)) 1.453152027)
                  (fma -0.3275911 x_m -1.0))
                 1.421413741)
                (fma x_m 0.3275911 1.0))
               -0.284496736)
              (fma x_m 0.3275911 1.0))
             0.254829592)
            (exp (* (- x_m) x_m)))
           (fma x_m 0.3275911 1.0)))))
      x_m = fabs(x);
      double code(double x_m) {
      	double tmp;
      	if (x_m <= 0.00055) {
      		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	} else {
      		tmp = 1.0 - ((((((((((-1.061405429 / fma(x_m, 0.3275911, 1.0)) + 1.453152027) / fma(-0.3275911, x_m, -1.0)) + 1.421413741) / fma(x_m, 0.3275911, 1.0)) + -0.284496736) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) * exp((-x_m * x_m))) / fma(x_m, 0.3275911, 1.0));
      	}
      	return tmp;
      }
      
      x_m = abs(x)
      function code(x_m)
      	tmp = 0.0
      	if (x_m <= 0.00055)
      		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	else
      		tmp = Float64(1.0 - Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-1.061405429 / fma(x_m, 0.3275911, 1.0)) + 1.453152027) / fma(-0.3275911, x_m, -1.0)) + 1.421413741) / fma(x_m, 0.3275911, 1.0)) + -0.284496736) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) * exp(Float64(Float64(-x_m) * x_m))) / fma(x_m, 0.3275911, 1.0)));
      	end
      	return tmp
      end
      
      x_m = N[Abs[x], $MachinePrecision]
      code[x$95$m_] := If[LessEqual[x$95$m, 0.00055], N[(N[(N[(N[(-0.37545125292247583 * x$95$m), $MachinePrecision] - 0.00011824294398844343), $MachinePrecision] * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision], N[(1.0 - N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(-1.061405429 / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + 1.453152027), $MachinePrecision] / N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision] + 1.421413741), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + -0.284496736), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + 0.254829592), $MachinePrecision] * N[Exp[N[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
      
      \begin{array}{l}
      x_m = \left|x\right|
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x\_m \leq 0.00055:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;1 - \frac{\left(\frac{\frac{\frac{\frac{-1.061405429}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 1.453152027}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + 1.421413741}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 0.254829592\right) \cdot e^{\left(-x\_m\right) \cdot x\_m}}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < 5.50000000000000033e-4

        1. Initial program 72.0%

          \[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. Add Preprocessing
        3. Applied rewrites69.3%

          \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites69.3%

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

          \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right)} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) + \frac{1}{1000000000}} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) \cdot x} + \frac{1}{1000000000} \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right), x, \frac{1}{1000000000}\right)} \]
          4. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
          5. *-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) \cdot x} + \frac{564193179035109}{500000000000000}, x, \frac{1}{1000000000}\right) \]
          6. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}, x, \frac{564193179035109}{500000000000000}\right)}, x, \frac{1}{1000000000}\right) \]
          7. lower--.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}}, x, \frac{564193179035109}{500000000000000}\right), x, \frac{1}{1000000000}\right) \]
          8. lower-*.f6465.3

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{-0.37545125292247583 \cdot x} - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right) \]
        7. Applied rewrites65.3%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]

        if 5.50000000000000033e-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. Add Preprocessing
        3. Applied rewrites99.7%

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

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

      Alternative 6: 99.9% accurate, 1.2× speedup?

      \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.00055:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{\frac{\frac{\frac{-1.061405429}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 1.453152027}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + 1.421413741}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)}, e^{\left(-x\_m\right) \cdot x\_m}, 1\right)\\ \end{array} \end{array} \]
      x_m = (fabs.f64 x)
      (FPCore (x_m)
       :precision binary64
       (if (<= x_m 0.00055)
         (fma
          (fma
           (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
           x_m
           1.128386358070218)
          x_m
          1e-9)
         (fma
          (/
           (+
            (/
             (+
              (/
               (+
                (/
                 (+ (/ -1.061405429 (fma x_m 0.3275911 1.0)) 1.453152027)
                 (fma -0.3275911 x_m -1.0))
                1.421413741)
               (fma x_m 0.3275911 1.0))
              -0.284496736)
             (fma x_m 0.3275911 1.0))
            0.254829592)
           (fma -0.3275911 x_m -1.0))
          (exp (* (- x_m) x_m))
          1.0)))
      x_m = fabs(x);
      double code(double x_m) {
      	double tmp;
      	if (x_m <= 0.00055) {
      		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	} else {
      		tmp = fma((((((((((-1.061405429 / fma(x_m, 0.3275911, 1.0)) + 1.453152027) / fma(-0.3275911, x_m, -1.0)) + 1.421413741) / fma(x_m, 0.3275911, 1.0)) + -0.284496736) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) / fma(-0.3275911, x_m, -1.0)), exp((-x_m * x_m)), 1.0);
      	}
      	return tmp;
      }
      
      x_m = abs(x)
      function code(x_m)
      	tmp = 0.0
      	if (x_m <= 0.00055)
      		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	else
      		tmp = fma(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-1.061405429 / fma(x_m, 0.3275911, 1.0)) + 1.453152027) / fma(-0.3275911, x_m, -1.0)) + 1.421413741) / fma(x_m, 0.3275911, 1.0)) + -0.284496736) / fma(x_m, 0.3275911, 1.0)) + 0.254829592) / fma(-0.3275911, x_m, -1.0)), exp(Float64(Float64(-x_m) * x_m)), 1.0);
      	end
      	return tmp
      end
      
      x_m = N[Abs[x], $MachinePrecision]
      code[x$95$m_] := If[LessEqual[x$95$m, 0.00055], N[(N[(N[(N[(-0.37545125292247583 * x$95$m), $MachinePrecision] - 0.00011824294398844343), $MachinePrecision] * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision], N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(-1.061405429 / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + 1.453152027), $MachinePrecision] / N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision] + 1.421413741), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + -0.284496736), $MachinePrecision] / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + 0.254829592), $MachinePrecision] / N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision] * N[Exp[N[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]]
      
      \begin{array}{l}
      x_m = \left|x\right|
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x\_m \leq 0.00055:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;\mathsf{fma}\left(\frac{\frac{\frac{\frac{\frac{-1.061405429}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 1.453152027}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)} + 1.421413741}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)}, e^{\left(-x\_m\right) \cdot x\_m}, 1\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < 5.50000000000000033e-4

        1. Initial program 72.0%

          \[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. Add Preprocessing
        3. Applied rewrites69.3%

          \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites69.3%

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

          \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right)} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) + \frac{1}{1000000000}} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) \cdot x} + \frac{1}{1000000000} \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right), x, \frac{1}{1000000000}\right)} \]
          4. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
          5. *-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) \cdot x} + \frac{564193179035109}{500000000000000}, x, \frac{1}{1000000000}\right) \]
          6. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}, x, \frac{564193179035109}{500000000000000}\right)}, x, \frac{1}{1000000000}\right) \]
          7. lower--.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}}, x, \frac{564193179035109}{500000000000000}\right), x, \frac{1}{1000000000}\right) \]
          8. lower-*.f6465.3

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{-0.37545125292247583 \cdot x} - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right) \]
        7. Applied rewrites65.3%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]

        if 5.50000000000000033e-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. Add Preprocessing
        3. Applied rewrites99.7%

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

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

      Alternative 7: 99.7% accurate, 2.1× speedup?

      \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 1.15:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;1 - 0.999999999 \cdot e^{\left(-x\_m\right) \cdot x\_m}\\ \end{array} \end{array} \]
      x_m = (fabs.f64 x)
      (FPCore (x_m)
       :precision binary64
       (if (<= x_m 1.15)
         (fma
          (fma
           (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
           x_m
           1.128386358070218)
          x_m
          1e-9)
         (- 1.0 (* 0.999999999 (exp (* (- x_m) x_m))))))
      x_m = fabs(x);
      double code(double x_m) {
      	double tmp;
      	if (x_m <= 1.15) {
      		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	} else {
      		tmp = 1.0 - (0.999999999 * exp((-x_m * x_m)));
      	}
      	return tmp;
      }
      
      x_m = abs(x)
      function code(x_m)
      	tmp = 0.0
      	if (x_m <= 1.15)
      		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	else
      		tmp = Float64(1.0 - Float64(0.999999999 * exp(Float64(Float64(-x_m) * x_m))));
      	end
      	return tmp
      end
      
      x_m = N[Abs[x], $MachinePrecision]
      code[x$95$m_] := If[LessEqual[x$95$m, 1.15], N[(N[(N[(N[(-0.37545125292247583 * x$95$m), $MachinePrecision] - 0.00011824294398844343), $MachinePrecision] * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision], N[(1.0 - N[(0.999999999 * N[Exp[N[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
      
      \begin{array}{l}
      x_m = \left|x\right|
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x\_m \leq 1.15:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;1 - 0.999999999 \cdot e^{\left(-x\_m\right) \cdot x\_m}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < 1.1499999999999999

        1. Initial program 72.0%

          \[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. Add Preprocessing
        3. Applied rewrites69.3%

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

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

          \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right)} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) + \frac{1}{1000000000}} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) \cdot x} + \frac{1}{1000000000} \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right), x, \frac{1}{1000000000}\right)} \]
          4. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
          5. *-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) \cdot x} + \frac{564193179035109}{500000000000000}, x, \frac{1}{1000000000}\right) \]
          6. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}, x, \frac{564193179035109}{500000000000000}\right)}, x, \frac{1}{1000000000}\right) \]
          7. lower--.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}}, x, \frac{564193179035109}{500000000000000}\right), x, \frac{1}{1000000000}\right) \]
          8. lower-*.f6465.4

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{-0.37545125292247583 \cdot x} - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right) \]
        7. Applied rewrites65.4%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]

        if 1.1499999999999999 < x

        1. Initial program 100.0%

          \[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. Add Preprocessing
        3. Applied rewrites100.0%

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

          \[\leadsto 1 - \color{blue}{\frac{999999999}{1000000000} \cdot e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}} \]
        5. Step-by-step derivation
          1. lower-*.f64N/A

            \[\leadsto 1 - \color{blue}{\frac{999999999}{1000000000} \cdot e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}} \]
          2. mul-1-negN/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{\color{blue}{-1 \cdot {\left(\left|x\right|\right)}^{2}}} \]
          3. unpow2N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{-1 \cdot \color{blue}{\left(\left|x\right| \cdot \left|x\right|\right)}} \]
          4. sqr-abs-revN/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{-1 \cdot \color{blue}{\left(x \cdot x\right)}} \]
          5. unpow2N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{-1 \cdot \color{blue}{{x}^{2}}} \]
          6. lower-exp.f64N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot \color{blue}{e^{-1 \cdot {x}^{2}}} \]
          7. unpow2N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{-1 \cdot \color{blue}{\left(x \cdot x\right)}} \]
          8. sqr-abs-revN/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{-1 \cdot \color{blue}{\left(\left|x\right| \cdot \left|x\right|\right)}} \]
          9. unpow2N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{-1 \cdot \color{blue}{{\left(\left|x\right|\right)}^{2}}} \]
          10. mul-1-negN/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{\color{blue}{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}} \]
          11. unpow2N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{\mathsf{neg}\left(\color{blue}{\left|x\right| \cdot \left|x\right|}\right)} \]
          12. sqr-abs-revN/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{\mathsf{neg}\left(\color{blue}{x \cdot x}\right)} \]
          13. unpow2N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{\mathsf{neg}\left(\color{blue}{{x}^{2}}\right)} \]
          14. lower-neg.f64N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{\color{blue}{-{x}^{2}}} \]
          15. unpow2N/A

            \[\leadsto 1 - \frac{999999999}{1000000000} \cdot e^{-\color{blue}{x \cdot x}} \]
          16. lower-*.f64100.0

            \[\leadsto 1 - 0.999999999 \cdot e^{-\color{blue}{x \cdot x}} \]
        6. Applied rewrites100.0%

          \[\leadsto 1 - \color{blue}{0.999999999 \cdot e^{-x \cdot x}} \]
      3. Recombined 2 regimes into one program.
      4. Final simplification74.0%

        \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 1.15:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;1 - 0.999999999 \cdot e^{\left(-x\right) \cdot x}\\ \end{array} \]
      5. Add Preprocessing

      Alternative 8: 98.6% accurate, 8.4× speedup?

      \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 1.55:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{0.999999999}{-0.3275911 \cdot \left|x\_m\right| - 1} + 1\\ \end{array} \end{array} \]
      x_m = (fabs.f64 x)
      (FPCore (x_m)
       :precision binary64
       (if (<= x_m 1.55)
         (fma
          (fma
           (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
           x_m
           1.128386358070218)
          x_m
          1e-9)
         (+ (/ 0.999999999 (- (* -0.3275911 (fabs x_m)) 1.0)) 1.0)))
      x_m = fabs(x);
      double code(double x_m) {
      	double tmp;
      	if (x_m <= 1.55) {
      		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	} else {
      		tmp = (0.999999999 / ((-0.3275911 * fabs(x_m)) - 1.0)) + 1.0;
      	}
      	return tmp;
      }
      
      x_m = abs(x)
      function code(x_m)
      	tmp = 0.0
      	if (x_m <= 1.55)
      		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
      	else
      		tmp = Float64(Float64(0.999999999 / Float64(Float64(-0.3275911 * abs(x_m)) - 1.0)) + 1.0);
      	end
      	return tmp
      end
      
      x_m = N[Abs[x], $MachinePrecision]
      code[x$95$m_] := If[LessEqual[x$95$m, 1.55], N[(N[(N[(N[(-0.37545125292247583 * x$95$m), $MachinePrecision] - 0.00011824294398844343), $MachinePrecision] * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision], N[(N[(0.999999999 / N[(N[(-0.3275911 * N[Abs[x$95$m], $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]]
      
      \begin{array}{l}
      x_m = \left|x\right|
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x\_m \leq 1.55:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x\_m - 0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;\frac{0.999999999}{-0.3275911 \cdot \left|x\_m\right| - 1} + 1\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < 1.55000000000000004

        1. Initial program 72.0%

          \[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. Add Preprocessing
        3. Applied rewrites69.3%

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

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

          \[\leadsto \color{blue}{\frac{1}{1000000000} + x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right)} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{x \cdot \left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) + \frac{1}{1000000000}} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right)\right) \cdot x} + \frac{1}{1000000000} \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{564193179035109}{500000000000000} + x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right), x, \frac{1}{1000000000}\right)} \]
          4. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) + \frac{564193179035109}{500000000000000}}, x, \frac{1}{1000000000}\right) \]
          5. *-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}\right) \cdot x} + \frac{564193179035109}{500000000000000}, x, \frac{1}{1000000000}\right) \]
          6. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}, x, \frac{564193179035109}{500000000000000}\right)}, x, \frac{1}{1000000000}\right) \]
          7. lower--.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-375451252922475856043509345477}{1000000000000000000000000000000} \cdot x - \frac{2364858879768868679}{20000000000000000000000}}, x, \frac{564193179035109}{500000000000000}\right), x, \frac{1}{1000000000}\right) \]
          8. lower-*.f6465.4

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{-0.37545125292247583 \cdot x} - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right) \]
        7. Applied rewrites65.4%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.37545125292247583 \cdot x - 0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]

        if 1.55000000000000004 < x

        1. Initial program 100.0%

          \[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. Add Preprocessing
        3. Applied rewrites100.0%

          \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \color{blue}{\frac{\mathsf{fma}\left(\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)}, \mathsf{fma}\left(-0.3275911, x, -1\right), \mathsf{fma}\left(x, 0.3275911, 1\right) \cdot 0.284496736\right)}{\mathsf{fma}\left(x, 0.3275911, 1\right) \cdot \mathsf{fma}\left(-0.3275911, x, -1\right)}}\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites100.0%

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

          \[\leadsto \color{blue}{1 + \frac{999999999}{1000000000} \cdot \frac{1}{\frac{-3275911}{10000000} \cdot \left|x\right| - 1}} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{999999999}{1000000000} \cdot \frac{1}{\frac{-3275911}{10000000} \cdot \left|x\right| - 1} + 1} \]
          2. lower-+.f64N/A

            \[\leadsto \color{blue}{\frac{999999999}{1000000000} \cdot \frac{1}{\frac{-3275911}{10000000} \cdot \left|x\right| - 1} + 1} \]
          3. associate-*r/N/A

            \[\leadsto \color{blue}{\frac{\frac{999999999}{1000000000} \cdot 1}{\frac{-3275911}{10000000} \cdot \left|x\right| - 1}} + 1 \]
          4. metadata-evalN/A

            \[\leadsto \frac{\color{blue}{\frac{999999999}{1000000000}}}{\frac{-3275911}{10000000} \cdot \left|x\right| - 1} + 1 \]
          5. lower-/.f64N/A

            \[\leadsto \color{blue}{\frac{\frac{999999999}{1000000000}}{\frac{-3275911}{10000000} \cdot \left|x\right| - 1}} + 1 \]
          6. lower--.f64N/A

            \[\leadsto \frac{\frac{999999999}{1000000000}}{\color{blue}{\frac{-3275911}{10000000} \cdot \left|x\right| - 1}} + 1 \]
          7. lower-*.f64N/A

            \[\leadsto \frac{\frac{999999999}{1000000000}}{\color{blue}{\frac{-3275911}{10000000} \cdot \left|x\right|} - 1} + 1 \]
          8. lower-fabs.f6496.1

            \[\leadsto \frac{0.999999999}{-0.3275911 \cdot \color{blue}{\left|x\right|} - 1} + 1 \]
        7. Applied rewrites96.1%

          \[\leadsto \color{blue}{\frac{0.999999999}{-0.3275911 \cdot \left|x\right| - 1} + 1} \]
      3. Recombined 2 regimes into one program.
      4. Add Preprocessing

      Alternative 9: 55.0% accurate, 20.1× speedup?

      \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 920000000:\\ \;\;\;\;\mathsf{fma}\left(1.128386358070218, x\_m, 10^{-9}\right)\\ \mathbf{else}:\\ \;\;\;\;10^{-9}\\ \end{array} \end{array} \]
      x_m = (fabs.f64 x)
      (FPCore (x_m)
       :precision binary64
       (if (<= x_m 920000000.0) (fma 1.128386358070218 x_m 1e-9) 1e-9))
      x_m = fabs(x);
      double code(double x_m) {
      	double tmp;
      	if (x_m <= 920000000.0) {
      		tmp = fma(1.128386358070218, x_m, 1e-9);
      	} else {
      		tmp = 1e-9;
      	}
      	return tmp;
      }
      
      x_m = abs(x)
      function code(x_m)
      	tmp = 0.0
      	if (x_m <= 920000000.0)
      		tmp = fma(1.128386358070218, x_m, 1e-9);
      	else
      		tmp = 1e-9;
      	end
      	return tmp
      end
      
      x_m = N[Abs[x], $MachinePrecision]
      code[x$95$m_] := If[LessEqual[x$95$m, 920000000.0], N[(1.128386358070218 * x$95$m + 1e-9), $MachinePrecision], 1e-9]
      
      \begin{array}{l}
      x_m = \left|x\right|
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x\_m \leq 920000000:\\
      \;\;\;\;\mathsf{fma}\left(1.128386358070218, x\_m, 10^{-9}\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;10^{-9}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < 9.2e8

        1. Initial program 72.4%

          \[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. Add Preprocessing
        3. Applied rewrites69.8%

          \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites69.9%

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

          \[\leadsto \color{blue}{\frac{1}{1000000000} + \frac{564193179035109}{500000000000000} \cdot x} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{564193179035109}{500000000000000} \cdot x + \frac{1}{1000000000}} \]
          2. lower-fma.f6463.4

            \[\leadsto \color{blue}{\mathsf{fma}\left(1.128386358070218, x, 10^{-9}\right)} \]
        7. Applied rewrites63.4%

          \[\leadsto \color{blue}{\mathsf{fma}\left(1.128386358070218, x, 10^{-9}\right)} \]

        if 9.2e8 < x

        1. Initial program 100.0%

          \[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. Add Preprocessing
        3. Applied rewrites100.0%

          \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites100.0%

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

          \[\leadsto \color{blue}{\frac{1}{1000000000}} \]
        6. Step-by-step derivation
          1. Applied rewrites11.1%

            \[\leadsto \color{blue}{10^{-9}} \]
        7. Recombined 2 regimes into one program.
        8. Add Preprocessing

        Alternative 10: 53.4% accurate, 262.0× speedup?

        \[\begin{array}{l} x_m = \left|x\right| \\ 10^{-9} \end{array} \]
        x_m = (fabs.f64 x)
        (FPCore (x_m) :precision binary64 1e-9)
        x_m = fabs(x);
        double code(double x_m) {
        	return 1e-9;
        }
        
        x_m =     private
        module fmin_fmax_functions
            implicit none
            private
            public fmax
            public fmin
        
            interface fmax
                module procedure fmax88
                module procedure fmax44
                module procedure fmax84
                module procedure fmax48
            end interface
            interface fmin
                module procedure fmin88
                module procedure fmin44
                module procedure fmin84
                module procedure fmin48
            end interface
        contains
            real(8) function fmax88(x, y) result (res)
                real(8), intent (in) :: x
                real(8), intent (in) :: y
                res = merge(y, merge(x, max(x, y), y /= y), x /= x)
            end function
            real(4) function fmax44(x, y) result (res)
                real(4), intent (in) :: x
                real(4), intent (in) :: y
                res = merge(y, merge(x, max(x, y), y /= y), x /= x)
            end function
            real(8) function fmax84(x, y) result(res)
                real(8), intent (in) :: x
                real(4), intent (in) :: y
                res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
            end function
            real(8) function fmax48(x, y) result(res)
                real(4), intent (in) :: x
                real(8), intent (in) :: y
                res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
            end function
            real(8) function fmin88(x, y) result (res)
                real(8), intent (in) :: x
                real(8), intent (in) :: y
                res = merge(y, merge(x, min(x, y), y /= y), x /= x)
            end function
            real(4) function fmin44(x, y) result (res)
                real(4), intent (in) :: x
                real(4), intent (in) :: y
                res = merge(y, merge(x, min(x, y), y /= y), x /= x)
            end function
            real(8) function fmin84(x, y) result(res)
                real(8), intent (in) :: x
                real(4), intent (in) :: y
                res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
            end function
            real(8) function fmin48(x, y) result(res)
                real(4), intent (in) :: x
                real(8), intent (in) :: y
                res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
            end function
        end module
        
        real(8) function code(x_m)
        use fmin_fmax_functions
            real(8), intent (in) :: x_m
            code = 1d-9
        end function
        
        x_m = Math.abs(x);
        public static double code(double x_m) {
        	return 1e-9;
        }
        
        x_m = math.fabs(x)
        def code(x_m):
        	return 1e-9
        
        x_m = abs(x)
        function code(x_m)
        	return 1e-9
        end
        
        x_m = abs(x);
        function tmp = code(x_m)
        	tmp = 1e-9;
        end
        
        x_m = N[Abs[x], $MachinePrecision]
        code[x$95$m_] := 1e-9
        
        \begin{array}{l}
        x_m = \left|x\right|
        
        \\
        10^{-9}
        \end{array}
        
        Derivation
        1. Initial program 79.0%

          \[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. Add Preprocessing
        3. Applied rewrites77.0%

          \[\leadsto 1 - \color{blue}{\frac{\frac{\frac{\frac{\frac{1.061405429}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -1.453152027}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 1.421413741}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x, 0.3275911, 1\right)} + 0.254829592}{\mathsf{fma}\left(x, 0.3275911, 1\right)}} \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
        4. Applied rewrites77.0%

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

          \[\leadsto \color{blue}{\frac{1}{1000000000}} \]
        6. Step-by-step derivation
          1. Applied rewrites52.4%

            \[\leadsto \color{blue}{10^{-9}} \]
          2. Add Preprocessing

          Reproduce

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