Jmat.Real.erf

Percentage Accurate: 79.2% → 99.9%
Time: 13.8s
Alternatives: 14
Speedup: 9.0×

Specification

?
\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{1 + 0.3275911 \cdot \left|x\right|}\\ 1 - \left(t\_0 \cdot \left(0.254829592 + t\_0 \cdot \left(-0.284496736 + t\_0 \cdot \left(1.421413741 + t\_0 \cdot \left(-1.453152027 + t\_0 \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \end{array} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))))
   (-
    1.0
    (*
     (*
      t_0
      (+
       0.254829592
       (*
        t_0
        (+
         -0.284496736
         (*
          t_0
          (+ 1.421413741 (* t_0 (+ -1.453152027 (* t_0 1.061405429)))))))))
     (exp (- (* (fabs x) (fabs x))))))))
double code(double x) {
	double t_0 = 1.0 / (1.0 + (0.3275911 * fabs(x)));
	return 1.0 - ((t_0 * (0.254829592 + (t_0 * (-0.284496736 + (t_0 * (1.421413741 + (t_0 * (-1.453152027 + (t_0 * 1.061405429))))))))) * exp(-(fabs(x) * fabs(x))));
}
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 14 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.2% 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.0× speedup?

\[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.00052:\\ \;\;\;\;\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{\mathsf{fma}\left(-0.254829592, \mathsf{fma}\left(x\_m, 0.3275911, 1\right), \mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \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)} + 1.421413741}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)}\right)}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \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.00052)
   (fma
    (fma
     (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
     x_m
     1.128386358070218)
    x_m
    1e-9)
   (-
    1.0
    (*
     (/
      (fma
       -0.254829592
       (fma x_m 0.3275911 1.0)
       (*
        (fma -0.3275911 x_m -1.0)
        (/
         (+
          (/
           (+
            (/
             (+ (/ 1.061405429 (fma x_m 0.3275911 1.0)) -1.453152027)
             (fma x_m 0.3275911 1.0))
            1.421413741)
           (fma x_m 0.3275911 1.0))
          -0.284496736)
         (fma x_m 0.3275911 1.0))))
      (* (fma -0.3275911 x_m -1.0) (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.00052) {
		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	} else {
		tmp = 1.0 - ((fma(-0.254829592, fma(x_m, 0.3275911, 1.0), (fma(-0.3275911, x_m, -1.0) * (((((((1.061405429 / fma(x_m, 0.3275911, 1.0)) + -1.453152027) / fma(x_m, 0.3275911, 1.0)) + 1.421413741) / fma(x_m, 0.3275911, 1.0)) + -0.284496736) / fma(x_m, 0.3275911, 1.0)))) / (fma(-0.3275911, x_m, -1.0) * 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.00052)
		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(fma(-0.254829592, fma(x_m, 0.3275911, 1.0), Float64(fma(-0.3275911, x_m, -1.0) * Float64(Float64(Float64(Float64(Float64(Float64(Float64(1.061405429 / fma(x_m, 0.3275911, 1.0)) + -1.453152027) / fma(x_m, 0.3275911, 1.0)) + 1.421413741) / fma(x_m, 0.3275911, 1.0)) + -0.284496736) / fma(x_m, 0.3275911, 1.0)))) / Float64(fma(-0.3275911, x_m, -1.0) * 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.00052], 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[(-0.254829592 * N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision] + N[(N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision] * N[(N[(N[(N[(N[(N[(N[(1.061405429 / N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision] + -1.453152027), $MachinePrecision] / N[(x$95$m * 0.3275911 + 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]), $MachinePrecision]), $MachinePrecision] / N[(N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision] * N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision]), $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.00052:\\
\;\;\;\;\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{\mathsf{fma}\left(-0.254829592, \mathsf{fma}\left(x\_m, 0.3275911, 1\right), \mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \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)} + 1.421413741}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)} + -0.284496736}{\mathsf{fma}\left(x\_m, 0.3275911, 1\right)}\right)}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \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.19999999999999954e-4

    1. Initial program 72.6%

      \[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 rewrites71.2%

      \[\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 rewrites71.2%

      \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

        \[\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.9%

      \[\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.19999999999999954e-4 < 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{\mathsf{fma}\left(-0.254829592, \mathsf{fma}\left(x, 0.3275911, 1\right), \mathsf{fma}\left(-0.3275911, x, -1\right) \cdot \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)}\right)}{\mathsf{fma}\left(-0.3275911, x, -1\right) \cdot \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 simplification73.5%

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

Alternative 2: 99.9% accurate, 1.1× speedup?

\[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.00054:\\ \;\;\;\;\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{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x\_m \cdot x\_m, -1\right)}, \mathsf{fma}\left(0.3275911, x\_m, -1\right), -1.453152027\right)}{\mathsf{fma}\left(x\_m, 0.3275911, 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(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.00054)
   (fma
    (fma
     (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
     x_m
     1.128386358070218)
    x_m
    1e-9)
   (-
    1.0
    (*
     (/
      (+
       (/
        (+
         (/
          (+
           (/
            (fma
             (/ 1.061405429 (fma 0.10731592879921 (* x_m x_m) -1.0))
             (fma 0.3275911 x_m -1.0)
             -1.453152027)
            (fma x_m 0.3275911 1.0))
           1.421413741)
          (fma x_m 0.3275911 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.00054) {
		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	} else {
		tmp = 1.0 - ((((((((fma((1.061405429 / fma(0.10731592879921, (x_m * x_m), -1.0)), fma(0.3275911, x_m, -1.0), -1.453152027) / fma(x_m, 0.3275911, 1.0)) + 1.421413741) / fma(x_m, 0.3275911, 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.00054)
		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(fma(Float64(1.061405429 / fma(0.10731592879921, Float64(x_m * x_m), -1.0)), fma(0.3275911, x_m, -1.0), -1.453152027) / fma(x_m, 0.3275911, 1.0)) + 1.421413741) / fma(x_m, 0.3275911, 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.00054], 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[(0.10731592879921 * N[(x$95$m * x$95$m), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision] * N[(0.3275911 * x$95$m + -1.0), $MachinePrecision] + -1.453152027), $MachinePrecision] / N[(x$95$m * 0.3275911 + 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[(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.00054:\\
\;\;\;\;\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{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x\_m \cdot x\_m, -1\right)}, \mathsf{fma}\left(0.3275911, x\_m, -1\right), -1.453152027\right)}{\mathsf{fma}\left(x\_m, 0.3275911, 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(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.40000000000000007e-4

    1. Initial program 72.6%

      \[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 rewrites71.2%

      \[\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 rewrites71.2%

      \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

        \[\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.9%

      \[\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.40000000000000007e-4 < 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 - \frac{\frac{\frac{\frac{\color{blue}{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}}{\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|} \]
    5. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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^{-\color{blue}{\left|x\right| \cdot \left|x\right|}} \]
      2. lift-fabs.f64N/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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^{-\color{blue}{\left|x\right|} \cdot \left|x\right|} \]
      3. lift-fabs.f64N/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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 \color{blue}{\left|x\right|}} \]
      4. sqr-abs-revN/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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^{-\color{blue}{x \cdot x}} \]
      5. lift-*.f64100.0

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}{\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^{-\color{blue}{x \cdot x}} \]
    6. Applied rewrites100.0%

      \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}{\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^{-\color{blue}{x \cdot x}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification73.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 0.00054:\\ \;\;\;\;\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{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}{\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 x}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 99.9% accurate, 1.2× speedup?

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

\\
\begin{array}{l}
\mathbf{if}\;x\_m \leq 0.0006:\\
\;\;\;\;\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{e^{\left(-x\_m\right) \cdot x\_m} \cdot \left(\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)}}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)} + 0.254829592\right)}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)}\\


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

    1. Initial program 72.6%

      \[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 rewrites71.2%

      \[\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 rewrites71.2%

      \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

        \[\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.9%

      \[\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.99999999999999947e-4 < 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{e^{\left(-x\right) \cdot x} \cdot \left(\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592\right)}{\mathsf{fma}\left(0.3275911, x, 1\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 4: 99.9% accurate, 1.2× speedup?

\[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.0006:\\ \;\;\;\;\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.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)}}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x\_m, 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.0006)
   (fma
    (fma
     (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
     x_m
     1.128386358070218)
    x_m
    1e-9)
   (fma
    (/
     (+
      (/
       (+
        (/
         (-
          1.421413741
          (/
           (+ (/ 1.061405429 (fma 0.3275911 x_m 1.0)) -1.453152027)
           (fma -0.3275911 x_m -1.0)))
         (fma 0.3275911 x_m 1.0))
        -0.284496736)
       (fma 0.3275911 x_m 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.0006) {
		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	} else {
		tmp = fma(((((((1.421413741 - (((1.061405429 / fma(0.3275911, x_m, 1.0)) + -1.453152027) / fma(-0.3275911, x_m, -1.0))) / fma(0.3275911, x_m, 1.0)) + -0.284496736) / fma(0.3275911, x_m, 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.0006)
		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.421413741 - Float64(Float64(Float64(1.061405429 / fma(0.3275911, x_m, 1.0)) + -1.453152027) / fma(-0.3275911, x_m, -1.0))) / fma(0.3275911, x_m, 1.0)) + -0.284496736) / fma(0.3275911, x_m, 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.0006], 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.421413741 - N[(N[(N[(1.061405429 / N[(0.3275911 * x$95$m + 1.0), $MachinePrecision]), $MachinePrecision] + -1.453152027), $MachinePrecision] / N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(0.3275911 * x$95$m + 1.0), $MachinePrecision]), $MachinePrecision] + -0.284496736), $MachinePrecision] / N[(0.3275911 * x$95$m + 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.0006:\\
\;\;\;\;\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.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right)}}{\mathsf{fma}\left(0.3275911, x\_m, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x\_m, 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.99999999999999947e-4

    1. Initial program 72.6%

      \[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 rewrites71.2%

      \[\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 rewrites71.2%

      \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

        \[\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.9%

      \[\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.99999999999999947e-4 < 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 \color{blue}{\mathsf{fma}\left(\frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 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.8% accurate, 1.3× speedup?

\[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.6:\\ \;\;\;\;\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 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\_m\right|} \cdot \left(0.254829592 + \frac{\mathsf{fma}\left(-0.068461678448076, x\_m, 0.745170407\right)}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \left(\mathsf{fma}\left(x\_m, 0.3275911, 1\right) \cdot \mathsf{fma}\left(-0.3275911, x\_m, -1\right)\right)}\right)\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.6)
   (fma
    (fma
     (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
     x_m
     1.128386358070218)
    x_m
    1e-9)
   (-
    1.0
    (*
     (*
      (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x_m))))
      (+
       0.254829592
       (/
        (fma -0.068461678448076 x_m 0.745170407)
        (*
         (fma -0.3275911 x_m -1.0)
         (* (fma x_m 0.3275911 1.0) (fma -0.3275911 x_m -1.0))))))
     (exp (* (- x_m) x_m))))))
x_m = fabs(x);
double code(double x_m) {
	double tmp;
	if (x_m <= 0.6) {
		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	} else {
		tmp = 1.0 - (((1.0 / (1.0 + (0.3275911 * fabs(x_m)))) * (0.254829592 + (fma(-0.068461678448076, x_m, 0.745170407) / (fma(-0.3275911, x_m, -1.0) * (fma(x_m, 0.3275911, 1.0) * fma(-0.3275911, x_m, -1.0)))))) * exp((-x_m * x_m)));
	}
	return tmp;
}
x_m = abs(x)
function code(x_m)
	tmp = 0.0
	if (x_m <= 0.6)
		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(1.0 / Float64(1.0 + Float64(0.3275911 * abs(x_m)))) * Float64(0.254829592 + Float64(fma(-0.068461678448076, x_m, 0.745170407) / Float64(fma(-0.3275911, x_m, -1.0) * Float64(fma(x_m, 0.3275911, 1.0) * fma(-0.3275911, x_m, -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.6], 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[(1.0 / N[(1.0 + N[(0.3275911 * N[Abs[x$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(0.254829592 + N[(N[(-0.068461678448076 * x$95$m + 0.745170407), $MachinePrecision] / N[(N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision] * N[(N[(x$95$m * 0.3275911 + 1.0), $MachinePrecision] * N[(-0.3275911 * x$95$m + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $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.6:\\
\;\;\;\;\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 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\_m\right|} \cdot \left(0.254829592 + \frac{\mathsf{fma}\left(-0.068461678448076, x\_m, 0.745170407\right)}{\mathsf{fma}\left(-0.3275911, x\_m, -1\right) \cdot \left(\mathsf{fma}\left(x\_m, 0.3275911, 1\right) \cdot \mathsf{fma}\left(-0.3275911, x\_m, -1\right)\right)}\right)\right) \cdot e^{\left(-x\_m\right) \cdot x\_m}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < 0.599999999999999978

    1. Initial program 72.6%

      \[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 rewrites71.2%

      \[\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 rewrites71.2%

      \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

        \[\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.9%

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

    if 0.599999999999999978 < 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 rewrites52.6%

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

      \[\leadsto 1 - \left(\frac{1}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \left(\frac{31853699}{125000000} + \frac{\color{blue}{\frac{745170407}{1000000000} + \frac{-17115419612019}{250000000000000} \cdot x}}{\mathsf{fma}\left(\frac{-3275911}{10000000}, x, -1\right) \cdot \left(\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right) \cdot \mathsf{fma}\left(\frac{-3275911}{10000000}, x, -1\right)\right)}\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto 1 - \left(\frac{1}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \left(\frac{31853699}{125000000} + \frac{\color{blue}{\frac{-17115419612019}{250000000000000} \cdot x + \frac{745170407}{1000000000}}}{\mathsf{fma}\left(\frac{-3275911}{10000000}, x, -1\right) \cdot \left(\mathsf{fma}\left(x, \frac{3275911}{10000000}, 1\right) \cdot \mathsf{fma}\left(\frac{-3275911}{10000000}, x, -1\right)\right)}\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
      2. lower-fma.f64100.0

        \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{\color{blue}{\mathsf{fma}\left(-0.068461678448076, x, 0.745170407\right)}}{\mathsf{fma}\left(-0.3275911, x, -1\right) \cdot \left(\mathsf{fma}\left(x, 0.3275911, 1\right) \cdot \mathsf{fma}\left(-0.3275911, x, -1\right)\right)}\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
    6. Applied rewrites100.0%

      \[\leadsto 1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{\color{blue}{\mathsf{fma}\left(-0.068461678448076, x, 0.745170407\right)}}{\mathsf{fma}\left(-0.3275911, x, -1\right) \cdot \left(\mathsf{fma}\left(x, 0.3275911, 1\right) \cdot \mathsf{fma}\left(-0.3275911, x, -1\right)\right)}\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification73.5%

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

Alternative 6: 99.8% accurate, 1.5× speedup?

\[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.76:\\ \;\;\;\;\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{1.029667143}{\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(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.76)
   (fma
    (fma
     (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
     x_m
     1.128386358070218)
    x_m
    1e-9)
   (-
    1.0
    (*
     (/
      (+
       (/
        (+ (/ 1.029667143 (fma x_m 0.3275911 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.76) {
		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
	} else {
		tmp = 1.0 - ((((((1.029667143 / fma(x_m, 0.3275911, 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.76)
		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(1.029667143 / fma(x_m, 0.3275911, 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.76], 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[(1.029667143 / 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[(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.76:\\
\;\;\;\;\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{1.029667143}{\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(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 < 0.76000000000000001

    1. Initial program 72.6%

      \[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 rewrites71.2%

      \[\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 rewrites71.2%

      \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

        \[\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.9%

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

    if 0.76000000000000001 < 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 - \frac{\frac{\frac{\frac{\color{blue}{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}}{\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|} \]
    5. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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^{-\color{blue}{\left|x\right| \cdot \left|x\right|}} \]
      2. lift-fabs.f64N/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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^{-\color{blue}{\left|x\right|} \cdot \left|x\right|} \]
      3. lift-fabs.f64N/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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 \color{blue}{\left|x\right|}} \]
      4. sqr-abs-revN/A

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{\frac{1061405429}{1000000000}}{\mathsf{fma}\left(\frac{10731592879921}{100000000000000}, x \cdot x, -1\right)}, \mathsf{fma}\left(\frac{3275911}{10000000}, x, -1\right), \frac{-1453152027}{1000000000}\right)}{\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^{-\color{blue}{x \cdot x}} \]
      5. lift-*.f64100.0

        \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}{\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^{-\color{blue}{x \cdot x}} \]
    6. Applied rewrites100.0%

      \[\leadsto 1 - \frac{\frac{\frac{\frac{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}{\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^{-\color{blue}{x \cdot x}} \]
    7. Taylor expanded in x around 0

      \[\leadsto 1 - \frac{\frac{\frac{\color{blue}{\frac{1029667143}{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^{-x \cdot x} \]
    8. Step-by-step derivation
      1. Applied rewrites100.0%

        \[\leadsto 1 - \frac{\frac{\frac{\color{blue}{1.029667143}}{\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^{-x \cdot x} \]
    9. Recombined 2 regimes into one program.
    10. Final simplification73.5%

      \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 0.76:\\ \;\;\;\;\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{1.029667143}{\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 x}\\ \end{array} \]
    11. Add Preprocessing

    Alternative 7: 99.8% accurate, 1.9× speedup?

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

      1. Initial program 72.6%

        \[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 rewrites71.2%

        \[\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 rewrites71.2%

        \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

          \[\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.9%

        \[\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 < 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 rewrites52.6%

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

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

          \[\leadsto \color{blue}{1 - \frac{31853699}{125000000} \cdot \frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|}} \]
        2. *-commutativeN/A

          \[\leadsto 1 - \color{blue}{\frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000}} \]
        3. lower-*.f64N/A

          \[\leadsto 1 - \color{blue}{\frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000}} \]
        4. lower-/.f64N/A

          \[\leadsto 1 - \color{blue}{\frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|}} \cdot \frac{31853699}{125000000} \]
        5. lower-exp.f64N/A

          \[\leadsto 1 - \frac{\color{blue}{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        6. unpow2N/A

          \[\leadsto 1 - \frac{e^{\mathsf{neg}\left(\color{blue}{\left|x\right| \cdot \left|x\right|}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        7. sqr-abs-revN/A

          \[\leadsto 1 - \frac{e^{\mathsf{neg}\left(\color{blue}{x \cdot x}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        8. unpow2N/A

          \[\leadsto 1 - \frac{e^{\mathsf{neg}\left(\color{blue}{{x}^{2}}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        9. lower-neg.f64N/A

          \[\leadsto 1 - \frac{e^{\color{blue}{-{x}^{2}}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        10. unpow2N/A

          \[\leadsto 1 - \frac{e^{-\color{blue}{x \cdot x}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        11. lower-*.f64N/A

          \[\leadsto 1 - \frac{e^{-\color{blue}{x \cdot x}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        12. +-commutativeN/A

          \[\leadsto 1 - \frac{e^{-x \cdot x}}{\color{blue}{\frac{3275911}{10000000} \cdot \left|x\right| + 1}} \cdot \frac{31853699}{125000000} \]
        13. *-commutativeN/A

          \[\leadsto 1 - \frac{e^{-x \cdot x}}{\color{blue}{\left|x\right| \cdot \frac{3275911}{10000000}} + 1} \cdot \frac{31853699}{125000000} \]
        14. lower-fma.f64N/A

          \[\leadsto 1 - \frac{e^{-x \cdot x}}{\color{blue}{\mathsf{fma}\left(\left|x\right|, \frac{3275911}{10000000}, 1\right)}} \cdot \frac{31853699}{125000000} \]
        15. lower-fabs.f64100.0

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

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

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

    Alternative 8: 99.8% accurate, 2.0× speedup?

    \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 1.02:\\ \;\;\;\;\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(-0.7778892405807117, \frac{e^{\left(-x\_m\right) \cdot x\_m}}{x\_m}, 1\right)\\ \end{array} \end{array} \]
    x_m = (fabs.f64 x)
    (FPCore (x_m)
     :precision binary64
     (if (<= x_m 1.02)
       (fma
        (fma
         (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
         x_m
         1.128386358070218)
        x_m
        1e-9)
       (fma -0.7778892405807117 (/ (exp (* (- x_m) x_m)) x_m) 1.0)))
    x_m = fabs(x);
    double code(double x_m) {
    	double tmp;
    	if (x_m <= 1.02) {
    		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
    	} else {
    		tmp = fma(-0.7778892405807117, (exp((-x_m * x_m)) / x_m), 1.0);
    	}
    	return tmp;
    }
    
    x_m = abs(x)
    function code(x_m)
    	tmp = 0.0
    	if (x_m <= 1.02)
    		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
    	else
    		tmp = fma(-0.7778892405807117, Float64(exp(Float64(Float64(-x_m) * 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, 1.02], 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[(-0.7778892405807117 * N[(N[Exp[N[((-x$95$m) * x$95$m), $MachinePrecision]], $MachinePrecision] / x$95$m), $MachinePrecision] + 1.0), $MachinePrecision]]
    
    \begin{array}{l}
    x_m = \left|x\right|
    
    \\
    \begin{array}{l}
    \mathbf{if}\;x\_m \leq 1.02:\\
    \;\;\;\;\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(-0.7778892405807117, \frac{e^{\left(-x\_m\right) \cdot x\_m}}{x\_m}, 1\right)\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if x < 1.02

      1. Initial program 72.6%

        \[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 rewrites71.2%

        \[\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 rewrites71.2%

        \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

          \[\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.9%

        \[\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.02 < 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 inf

        \[\leadsto \color{blue}{1 + \frac{-63707398}{81897775} \cdot \frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{x}} \]
      5. Step-by-step derivation
        1. associate-*r/N/A

          \[\leadsto 1 + \color{blue}{\frac{\frac{-63707398}{81897775} \cdot e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{x}} \]
        2. +-commutativeN/A

          \[\leadsto \color{blue}{\frac{\frac{-63707398}{81897775} \cdot e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{x} + 1} \]
        3. associate-*r/N/A

          \[\leadsto \color{blue}{\frac{-63707398}{81897775} \cdot \frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{x}} + 1 \]
        4. lower-fma.f64N/A

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{-63707398}{81897775}, \frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{x}, 1\right)} \]
        5. lower-/.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{-63707398}{81897775}, \color{blue}{\frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{x}}, 1\right) \]
        6. lower-exp.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{-63707398}{81897775}, \frac{\color{blue}{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}}{x}, 1\right) \]
        7. unpow2N/A

          \[\leadsto \mathsf{fma}\left(\frac{-63707398}{81897775}, \frac{e^{\mathsf{neg}\left(\color{blue}{\left|x\right| \cdot \left|x\right|}\right)}}{x}, 1\right) \]
        8. sqr-abs-revN/A

          \[\leadsto \mathsf{fma}\left(\frac{-63707398}{81897775}, \frac{e^{\mathsf{neg}\left(\color{blue}{x \cdot x}\right)}}{x}, 1\right) \]
        9. unpow2N/A

          \[\leadsto \mathsf{fma}\left(\frac{-63707398}{81897775}, \frac{e^{\mathsf{neg}\left(\color{blue}{{x}^{2}}\right)}}{x}, 1\right) \]
        10. lower-neg.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{-63707398}{81897775}, \frac{e^{\color{blue}{-{x}^{2}}}}{x}, 1\right) \]
        11. unpow2N/A

          \[\leadsto \mathsf{fma}\left(\frac{-63707398}{81897775}, \frac{e^{-\color{blue}{x \cdot x}}}{x}, 1\right) \]
        12. lower-*.f64100.0

          \[\leadsto \mathsf{fma}\left(-0.7778892405807117, \frac{e^{-\color{blue}{x \cdot x}}}{x}, 1\right) \]
      6. Applied rewrites100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(-0.7778892405807117, \frac{e^{-x \cdot x}}{x}, 1\right)} \]
    3. Recombined 2 regimes into one program.
    4. Final simplification73.5%

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

    Alternative 9: 99.7% accurate, 2.2× speedup?

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

      1. Initial program 72.6%

        \[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 rewrites71.2%

        \[\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 rewrites71.2%

        \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

          \[\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.9%

        \[\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.1200000000000001 < 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 - \frac{\frac{\frac{\frac{\color{blue}{\mathsf{fma}\left(\frac{1.061405429}{\mathsf{fma}\left(0.10731592879921, x \cdot x, -1\right)}, \mathsf{fma}\left(0.3275911, x, -1\right), -1.453152027\right)}}{\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|} \]
      5. Taylor expanded in x around 0

        \[\leadsto \color{blue}{1 - \frac{999999999}{1000000000} \cdot e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}} \]
      6. Step-by-step derivation
        1. fp-cancel-sub-sign-invN/A

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{fma}\left(e^{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot x}}, \frac{-999999999}{1000000000}, 1\right) \]
        15. lower-neg.f64100.0

          \[\leadsto \mathsf{fma}\left(e^{\color{blue}{\left(-x\right)} \cdot x}, -0.999999999, 1\right) \]
      7. Applied rewrites100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, -0.999999999, 1\right)} \]
    3. Recombined 2 regimes into one program.
    4. Add Preprocessing

    Alternative 10: 98.7% accurate, 9.0× speedup?

    \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 0.83:\\ \;\;\;\;\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{0.254829592}{\mathsf{fma}\left(\left|x\_m\right|, 0.3275911, 1\right)}\\ \end{array} \end{array} \]
    x_m = (fabs.f64 x)
    (FPCore (x_m)
     :precision binary64
     (if (<= x_m 0.83)
       (fma
        (fma
         (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
         x_m
         1.128386358070218)
        x_m
        1e-9)
       (- 1.0 (/ 0.254829592 (fma (fabs x_m) 0.3275911 1.0)))))
    x_m = fabs(x);
    double code(double x_m) {
    	double tmp;
    	if (x_m <= 0.83) {
    		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 1.128386358070218), x_m, 1e-9);
    	} else {
    		tmp = 1.0 - (0.254829592 / fma(fabs(x_m), 0.3275911, 1.0));
    	}
    	return tmp;
    }
    
    x_m = abs(x)
    function code(x_m)
    	tmp = 0.0
    	if (x_m <= 0.83)
    		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.254829592 / fma(abs(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.83], 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.254829592 / N[(N[Abs[x$95$m], $MachinePrecision] * 0.3275911 + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
    
    \begin{array}{l}
    x_m = \left|x\right|
    
    \\
    \begin{array}{l}
    \mathbf{if}\;x\_m \leq 0.83:\\
    \;\;\;\;\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{0.254829592}{\mathsf{fma}\left(\left|x\_m\right|, 0.3275911, 1\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if x < 0.82999999999999996

      1. Initial program 72.6%

        \[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 rewrites71.2%

        \[\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 rewrites71.2%

        \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

          \[\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.9%

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

      if 0.82999999999999996 < 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 rewrites52.6%

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

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

          \[\leadsto \color{blue}{1 - \frac{31853699}{125000000} \cdot \frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|}} \]
        2. *-commutativeN/A

          \[\leadsto 1 - \color{blue}{\frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000}} \]
        3. lower-*.f64N/A

          \[\leadsto 1 - \color{blue}{\frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000}} \]
        4. lower-/.f64N/A

          \[\leadsto 1 - \color{blue}{\frac{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|}} \cdot \frac{31853699}{125000000} \]
        5. lower-exp.f64N/A

          \[\leadsto 1 - \frac{\color{blue}{e^{\mathsf{neg}\left({\left(\left|x\right|\right)}^{2}\right)}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        6. unpow2N/A

          \[\leadsto 1 - \frac{e^{\mathsf{neg}\left(\color{blue}{\left|x\right| \cdot \left|x\right|}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        7. sqr-abs-revN/A

          \[\leadsto 1 - \frac{e^{\mathsf{neg}\left(\color{blue}{x \cdot x}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        8. unpow2N/A

          \[\leadsto 1 - \frac{e^{\mathsf{neg}\left(\color{blue}{{x}^{2}}\right)}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        9. lower-neg.f64N/A

          \[\leadsto 1 - \frac{e^{\color{blue}{-{x}^{2}}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        10. unpow2N/A

          \[\leadsto 1 - \frac{e^{-\color{blue}{x \cdot x}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        11. lower-*.f64N/A

          \[\leadsto 1 - \frac{e^{-\color{blue}{x \cdot x}}}{1 + \frac{3275911}{10000000} \cdot \left|x\right|} \cdot \frac{31853699}{125000000} \]
        12. +-commutativeN/A

          \[\leadsto 1 - \frac{e^{-x \cdot x}}{\color{blue}{\frac{3275911}{10000000} \cdot \left|x\right| + 1}} \cdot \frac{31853699}{125000000} \]
        13. *-commutativeN/A

          \[\leadsto 1 - \frac{e^{-x \cdot x}}{\color{blue}{\left|x\right| \cdot \frac{3275911}{10000000}} + 1} \cdot \frac{31853699}{125000000} \]
        14. lower-fma.f64N/A

          \[\leadsto 1 - \frac{e^{-x \cdot x}}{\color{blue}{\mathsf{fma}\left(\left|x\right|, \frac{3275911}{10000000}, 1\right)}} \cdot \frac{31853699}{125000000} \]
        15. lower-fabs.f64100.0

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

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

        \[\leadsto 1 - \frac{\frac{31853699}{125000000}}{\color{blue}{1 + \frac{3275911}{10000000} \cdot \left|x\right|}} \]
      8. Step-by-step derivation
        1. Applied rewrites99.5%

          \[\leadsto 1 - \frac{0.254829592}{\color{blue}{\mathsf{fma}\left(\left|x\right|, 0.3275911, 1\right)}} \]
      9. Recombined 2 regimes into one program.
      10. Add Preprocessing

      Alternative 11: 55.2% accurate, 9.7× speedup?

      \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 1.72:\\ \;\;\;\;\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}:\\ \;\;\;\;10^{-9}\\ \end{array} \end{array} \]
      x_m = (fabs.f64 x)
      (FPCore (x_m)
       :precision binary64
       (if (<= x_m 1.72)
         (fma
          (fma
           (- (* -0.37545125292247583 x_m) 0.00011824294398844343)
           x_m
           1.128386358070218)
          x_m
          1e-9)
         1e-9))
      x_m = fabs(x);
      double code(double x_m) {
      	double tmp;
      	if (x_m <= 1.72) {
      		tmp = fma(fma(((-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 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 <= 1.72)
      		tmp = fma(fma(Float64(Float64(-0.37545125292247583 * x_m) - 0.00011824294398844343), x_m, 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, 1.72], 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], 1e-9]
      
      \begin{array}{l}
      x_m = \left|x\right|
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x\_m \leq 1.72:\\
      \;\;\;\;\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}:\\
      \;\;\;\;10^{-9}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < 1.71999999999999997

        1. Initial program 72.6%

          \[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 rewrites71.2%

          \[\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 rewrites71.2%

          \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.9

            \[\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.9%

          \[\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.71999999999999997 < 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 \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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 12: 55.0% accurate, 12.5× speedup?

        \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 9500:\\ \;\;\;\;\mathsf{fma}\left(-0.00011824294398844343, x\_m, 1.128386358070218\right) \cdot x\_m + 10^{-9}\\ \mathbf{else}:\\ \;\;\;\;10^{-9}\\ \end{array} \end{array} \]
        x_m = (fabs.f64 x)
        (FPCore (x_m)
         :precision binary64
         (if (<= x_m 9500.0)
           (+ (* (fma -0.00011824294398844343 x_m 1.128386358070218) x_m) 1e-9)
           1e-9))
        x_m = fabs(x);
        double code(double x_m) {
        	double tmp;
        	if (x_m <= 9500.0) {
        		tmp = (fma(-0.00011824294398844343, x_m, 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 <= 9500.0)
        		tmp = Float64(Float64(fma(-0.00011824294398844343, x_m, 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, 9500.0], N[(N[(N[(-0.00011824294398844343 * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m), $MachinePrecision] + 1e-9), $MachinePrecision], 1e-9]
        
        \begin{array}{l}
        x_m = \left|x\right|
        
        \\
        \begin{array}{l}
        \mathbf{if}\;x\_m \leq 9500:\\
        \;\;\;\;\mathsf{fma}\left(-0.00011824294398844343, x\_m, 1.128386358070218\right) \cdot x\_m + 10^{-9}\\
        
        \mathbf{else}:\\
        \;\;\;\;10^{-9}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if x < 9500

          1. Initial program 72.6%

            \[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 rewrites71.2%

            \[\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 rewrites71.2%

            \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.f6464.5

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

            \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(-0.00011824294398844343, x, 1.128386358070218\right), x, 10^{-9}\right)} \]
          8. Step-by-step derivation
            1. Applied rewrites64.5%

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

            if 9500 < 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 \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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 13: 55.0% accurate, 13.8× speedup?

            \[\begin{array}{l} x_m = \left|x\right| \\ \begin{array}{l} \mathbf{if}\;x\_m \leq 9500:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.00011824294398844343, x\_m, 1.128386358070218\right), 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 9500.0)
               (fma (fma -0.00011824294398844343 x_m 1.128386358070218) x_m 1e-9)
               1e-9))
            x_m = fabs(x);
            double code(double x_m) {
            	double tmp;
            	if (x_m <= 9500.0) {
            		tmp = fma(fma(-0.00011824294398844343, x_m, 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 <= 9500.0)
            		tmp = fma(fma(-0.00011824294398844343, x_m, 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, 9500.0], N[(N[(-0.00011824294398844343 * x$95$m + 1.128386358070218), $MachinePrecision] * x$95$m + 1e-9), $MachinePrecision], 1e-9]
            
            \begin{array}{l}
            x_m = \left|x\right|
            
            \\
            \begin{array}{l}
            \mathbf{if}\;x\_m \leq 9500:\\
            \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.00011824294398844343, x\_m, 1.128386358070218\right), x\_m, 10^{-9}\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;10^{-9}\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if x < 9500

              1. Initial program 72.6%

                \[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 rewrites71.2%

                \[\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 rewrites71.2%

                \[\leadsto \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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.f6464.5

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

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

              if 9500 < 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 \color{blue}{\frac{1 - {\left(e^{\left(-x\right) \cdot x} \cdot \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}\right)}^{2}}{\mathsf{fma}\left(e^{\left(-x\right) \cdot x}, \frac{\frac{\frac{1.421413741 - \frac{\frac{1.061405429}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -1.453152027}{\mathsf{fma}\left(-0.3275911, x, -1\right)}}{\mathsf{fma}\left(0.3275911, x, 1\right)} + -0.284496736}{\mathsf{fma}\left(0.3275911, x, 1\right)} + 0.254829592}{\mathsf{fma}\left(0.3275911, x, 1\right)}, 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 14: 53.1% 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 78.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 rewrites77.6%

                \[\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.6%

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

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

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

                Reproduce

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