Logistic distribution

Percentage Accurate: 99.6% → 99.7%
Time: 13.3s
Alternatives: 17
Speedup: 1.5×

Specification

?
\[0 \leq s \land s \leq 1.0651631\]
\[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{\frac{-\left|x\right|}{s}}\\ t_1 := 1 + t\_0\\ \frac{t\_0}{\left(s \cdot t\_1\right) \cdot t\_1} \end{array} \end{array} \]
(FPCore (x s)
 :precision binary32
 (let* ((t_0 (exp (/ (- (fabs x)) s))) (t_1 (+ 1.0 t_0)))
   (/ t_0 (* (* s t_1) t_1))))
float code(float x, float s) {
	float t_0 = expf((-fabsf(x) / s));
	float t_1 = 1.0f + t_0;
	return t_0 / ((s * t_1) * t_1);
}
real(4) function code(x, s)
    real(4), intent (in) :: x
    real(4), intent (in) :: s
    real(4) :: t_0
    real(4) :: t_1
    t_0 = exp((-abs(x) / s))
    t_1 = 1.0e0 + t_0
    code = t_0 / ((s * t_1) * t_1)
end function
function code(x, s)
	t_0 = exp(Float32(Float32(-abs(x)) / s))
	t_1 = Float32(Float32(1.0) + t_0)
	return Float32(t_0 / Float32(Float32(s * t_1) * t_1))
end
function tmp = code(x, s)
	t_0 = exp((-abs(x) / s));
	t_1 = single(1.0) + t_0;
	tmp = t_0 / ((s * t_1) * t_1);
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := e^{\frac{-\left|x\right|}{s}}\\
t_1 := 1 + t\_0\\
\frac{t\_0}{\left(s \cdot t\_1\right) \cdot t\_1}
\end{array}
\end{array}

Sampling outcomes in binary32 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 17 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: 99.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{\frac{-\left|x\right|}{s}}\\ t_1 := 1 + t\_0\\ \frac{t\_0}{\left(s \cdot t\_1\right) \cdot t\_1} \end{array} \end{array} \]
(FPCore (x s)
 :precision binary32
 (let* ((t_0 (exp (/ (- (fabs x)) s))) (t_1 (+ 1.0 t_0)))
   (/ t_0 (* (* s t_1) t_1))))
float code(float x, float s) {
	float t_0 = expf((-fabsf(x) / s));
	float t_1 = 1.0f + t_0;
	return t_0 / ((s * t_1) * t_1);
}
real(4) function code(x, s)
    real(4), intent (in) :: x
    real(4), intent (in) :: s
    real(4) :: t_0
    real(4) :: t_1
    t_0 = exp((-abs(x) / s))
    t_1 = 1.0e0 + t_0
    code = t_0 / ((s * t_1) * t_1)
end function
function code(x, s)
	t_0 = exp(Float32(Float32(-abs(x)) / s))
	t_1 = Float32(Float32(1.0) + t_0)
	return Float32(t_0 / Float32(Float32(s * t_1) * t_1))
end
function tmp = code(x, s)
	t_0 = exp((-abs(x) / s));
	t_1 = single(1.0) + t_0;
	tmp = t_0 / ((s * t_1) * t_1);
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := e^{\frac{-\left|x\right|}{s}}\\
t_1 := 1 + t\_0\\
\frac{t\_0}{\left(s \cdot t\_1\right) \cdot t\_1}
\end{array}
\end{array}

Alternative 1: 99.7% accurate, 0.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := -0.5 \cdot \frac{\left|x\right|}{s}\\ \frac{e^{t\_0}}{s \cdot e^{2 \cdot \mathsf{log1p}\left(e^{\frac{\left|x\right|}{-s}}\right) - t\_0}} \end{array} \end{array} \]
(FPCore (x s)
 :precision binary32
 (let* ((t_0 (* -0.5 (/ (fabs x) s))))
   (/ (exp t_0) (* s (exp (- (* 2.0 (log1p (exp (/ (fabs x) (- s))))) t_0))))))
float code(float x, float s) {
	float t_0 = -0.5f * (fabsf(x) / s);
	return expf(t_0) / (s * expf(((2.0f * log1pf(expf((fabsf(x) / -s)))) - t_0)));
}
function code(x, s)
	t_0 = Float32(Float32(-0.5) * Float32(abs(x) / s))
	return Float32(exp(t_0) / Float32(s * exp(Float32(Float32(Float32(2.0) * log1p(exp(Float32(abs(x) / Float32(-s))))) - t_0))))
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := -0.5 \cdot \frac{\left|x\right|}{s}\\
\frac{e^{t\_0}}{s \cdot e^{2 \cdot \mathsf{log1p}\left(e^{\frac{\left|x\right|}{-s}}\right) - t\_0}}
\end{array}
\end{array}
Derivation
  1. Initial program 99.5%

    \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift-*.f32N/A

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

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

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} + 1\right)}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    4. distribute-rgt-inN/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + 1 \cdot s\right)} \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    5. *-lft-identityN/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + \color{blue}{s}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    6. lower-fma.f3299.5

      \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{\frac{-\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
    7. lift-/.f32N/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    8. lift-neg.f32N/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\frac{\color{blue}{\mathsf{neg}\left(\left|x\right|\right)}}{s}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    9. distribute-frac-negN/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    10. lower-neg.f32N/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    11. lower-/.f3299.5

      \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\mathsf{fma}\left(e^{-\color{blue}{\frac{\left|x\right|}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  4. Applied rewrites99.5%

    \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  5. Step-by-step derivation
    1. lift-exp.f32N/A

      \[\leadsto \frac{\color{blue}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    2. lift-/.f32N/A

      \[\leadsto \frac{e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    3. lift-neg.f32N/A

      \[\leadsto \frac{e^{\frac{\color{blue}{\mathsf{neg}\left(\left|x\right|\right)}}{s}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    4. distribute-frac-negN/A

      \[\leadsto \frac{e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    5. lift-/.f32N/A

      \[\leadsto \frac{e^{\mathsf{neg}\left(\color{blue}{\frac{\left|x\right|}{s}}\right)}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    6. neg-mul-1N/A

      \[\leadsto \frac{e^{\color{blue}{-1 \cdot \frac{\left|x\right|}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    7. exp-prodN/A

      \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    8. lower-pow.f32N/A

      \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    9. lower-exp.f3299.5

      \[\leadsto \frac{{\color{blue}{\left(e^{-1}\right)}}^{\left(\frac{\left|x\right|}{s}\right)}}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  6. Applied rewrites99.5%

    \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  7. Applied rewrites99.7%

    \[\leadsto \color{blue}{e^{-1 \cdot \frac{\left|x\right|}{2 \cdot s}} \cdot \frac{e^{-1 \cdot \frac{\left|x\right|}{2 \cdot s}}}{s \cdot {\left(1 + e^{\frac{\left|x\right|}{-s}}\right)}^{2}}} \]
  8. Applied rewrites99.7%

    \[\leadsto \color{blue}{\frac{e^{-0.5 \cdot \frac{\left|x\right|}{s}}}{s \cdot e^{2 \cdot \mathsf{log1p}\left(e^{-\frac{\left|x\right|}{s}}\right) - -0.5 \cdot \frac{\left|x\right|}{s}}}} \]
  9. Final simplification99.7%

    \[\leadsto \frac{e^{-0.5 \cdot \frac{\left|x\right|}{s}}}{s \cdot e^{2 \cdot \mathsf{log1p}\left(e^{\frac{\left|x\right|}{-s}}\right) - -0.5 \cdot \frac{\left|x\right|}{s}}} \]
  10. Add Preprocessing

Alternative 2: 99.6% accurate, 0.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{\frac{\left|x\right|}{-s}}\\ \frac{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}{\mathsf{fma}\left(t\_0, s, s\right) \cdot \left(t\_0 + 1\right)} \end{array} \end{array} \]
(FPCore (x s)
 :precision binary32
 (let* ((t_0 (exp (/ (fabs x) (- s)))))
   (/ (pow (exp -1.0) (/ (fabs x) s)) (* (fma t_0 s s) (+ t_0 1.0)))))
float code(float x, float s) {
	float t_0 = expf((fabsf(x) / -s));
	return powf(expf(-1.0f), (fabsf(x) / s)) / (fmaf(t_0, s, s) * (t_0 + 1.0f));
}
function code(x, s)
	t_0 = exp(Float32(abs(x) / Float32(-s)))
	return Float32((exp(Float32(-1.0)) ^ Float32(abs(x) / s)) / Float32(fma(t_0, s, s) * Float32(t_0 + Float32(1.0))))
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := e^{\frac{\left|x\right|}{-s}}\\
\frac{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}{\mathsf{fma}\left(t\_0, s, s\right) \cdot \left(t\_0 + 1\right)}
\end{array}
\end{array}
Derivation
  1. Initial program 99.5%

    \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift-*.f32N/A

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

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

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} + 1\right)}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    4. distribute-rgt-inN/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + 1 \cdot s\right)} \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    5. *-lft-identityN/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + \color{blue}{s}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    6. lower-fma.f3299.5

      \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{\frac{-\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
    7. lift-/.f32N/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    8. lift-neg.f32N/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\frac{\color{blue}{\mathsf{neg}\left(\left|x\right|\right)}}{s}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    9. distribute-frac-negN/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    10. lower-neg.f32N/A

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    11. lower-/.f3299.5

      \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\mathsf{fma}\left(e^{-\color{blue}{\frac{\left|x\right|}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  4. Applied rewrites99.5%

    \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  5. Step-by-step derivation
    1. lift-exp.f32N/A

      \[\leadsto \frac{\color{blue}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    2. lift-/.f32N/A

      \[\leadsto \frac{e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    3. lift-neg.f32N/A

      \[\leadsto \frac{e^{\frac{\color{blue}{\mathsf{neg}\left(\left|x\right|\right)}}{s}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    4. distribute-frac-negN/A

      \[\leadsto \frac{e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    5. lift-/.f32N/A

      \[\leadsto \frac{e^{\mathsf{neg}\left(\color{blue}{\frac{\left|x\right|}{s}}\right)}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    6. neg-mul-1N/A

      \[\leadsto \frac{e^{\color{blue}{-1 \cdot \frac{\left|x\right|}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    7. exp-prodN/A

      \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    8. lower-pow.f32N/A

      \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
    9. lower-exp.f3299.5

      \[\leadsto \frac{{\color{blue}{\left(e^{-1}\right)}}^{\left(\frac{\left|x\right|}{s}\right)}}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  6. Applied rewrites99.5%

    \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
  7. Final simplification99.5%

    \[\leadsto \frac{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}{\mathsf{fma}\left(e^{\frac{\left|x\right|}{-s}}, s, s\right) \cdot \left(e^{\frac{\left|x\right|}{-s}} + 1\right)} \]
  8. Add Preprocessing

Alternative 3: 83.1% accurate, 0.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{\frac{\left|x\right|}{-s}}\\ t_1 := t\_0 + 1\\ \mathbf{if}\;\frac{t\_0}{t\_1 \cdot \left(s \cdot t\_1\right)} \leq 0:\\ \;\;\;\;\frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{0.5}{s \cdot s}, 2\right)}}{s}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s}\\ \end{array} \end{array} \]
(FPCore (x s)
 :precision binary32
 (let* ((t_0 (exp (/ (fabs x) (- s)))) (t_1 (+ t_0 1.0)))
   (if (<= (/ t_0 (* t_1 (* s t_1))) 0.0)
     (/ (/ (/ 1.0 (+ (/ (fabs x) s) (fma (* x x) (/ 0.5 (* s s)) 2.0))) s) 2.0)
     (/ (fma (/ x s) (/ (* x -0.0625) s) 0.25) s))))
float code(float x, float s) {
	float t_0 = expf((fabsf(x) / -s));
	float t_1 = t_0 + 1.0f;
	float tmp;
	if ((t_0 / (t_1 * (s * t_1))) <= 0.0f) {
		tmp = ((1.0f / ((fabsf(x) / s) + fmaf((x * x), (0.5f / (s * s)), 2.0f))) / s) / 2.0f;
	} else {
		tmp = fmaf((x / s), ((x * -0.0625f) / s), 0.25f) / s;
	}
	return tmp;
}
function code(x, s)
	t_0 = exp(Float32(abs(x) / Float32(-s)))
	t_1 = Float32(t_0 + Float32(1.0))
	tmp = Float32(0.0)
	if (Float32(t_0 / Float32(t_1 * Float32(s * t_1))) <= Float32(0.0))
		tmp = Float32(Float32(Float32(Float32(1.0) / Float32(Float32(abs(x) / s) + fma(Float32(x * x), Float32(Float32(0.5) / Float32(s * s)), Float32(2.0)))) / s) / Float32(2.0));
	else
		tmp = Float32(fma(Float32(x / s), Float32(Float32(x * Float32(-0.0625)) / s), Float32(0.25)) / s);
	end
	return tmp
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := e^{\frac{\left|x\right|}{-s}}\\
t_1 := t\_0 + 1\\
\mathbf{if}\;\frac{t\_0}{t\_1 \cdot \left(s \cdot t\_1\right)} \leq 0:\\
\;\;\;\;\frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{0.5}{s \cdot s}, 2\right)}}{s}}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 (*.f32 s (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))))) < 0.0

    1. Initial program 99.5%

      \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
    2. Add Preprocessing
    3. Taylor expanded in s around inf

      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
    4. Step-by-step derivation
      1. Applied rewrites99.5%

        \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
      2. Applied rewrites99.5%

        \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
      3. Taylor expanded in s around inf

        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 + \left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + \frac{\left|x\right|}{s}\right)}}}{s}}{2} \]
      4. Step-by-step derivation
        1. associate-+r+N/A

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

          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}}{s}}{2} \]
        3. lower-+.f32N/A

          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}}{s}}{2} \]
        4. lower-/.f32N/A

          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s}} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}{s}}{2} \]
        5. lower-fabs.f32N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\color{blue}{\left|x\right|}}{s} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}{s}}{2} \]
        6. +-commutativeN/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \color{blue}{\left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + 2\right)}}}{s}}{2} \]
        7. associate-*r/N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \left(\color{blue}{\frac{\frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{{s}^{2}}} + 2\right)}}{s}}{2} \]
        8. *-commutativeN/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \left(\frac{\color{blue}{{\left(\left|x\right|\right)}^{2} \cdot \frac{1}{2}}}{{s}^{2}} + 2\right)}}{s}}{2} \]
        9. associate-/l*N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \left(\color{blue}{{\left(\left|x\right|\right)}^{2} \cdot \frac{\frac{1}{2}}{{s}^{2}}} + 2\right)}}{s}}{2} \]
        10. lower-fma.f32N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \color{blue}{\mathsf{fma}\left({\left(\left|x\right|\right)}^{2}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}}{s}}{2} \]
        11. unpow2N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(\color{blue}{\left|x\right| \cdot \left|x\right|}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}{s}}{2} \]
        12. sqr-absN/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}{s}}{2} \]
        13. lower-*.f32N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}{s}}{2} \]
        14. lower-/.f32N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \color{blue}{\frac{\frac{1}{2}}{{s}^{2}}}, 2\right)}}{s}}{2} \]
        15. unpow2N/A

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{\frac{1}{2}}{\color{blue}{s \cdot s}}, 2\right)}}{s}}{2} \]
        16. lower-*.f3277.6

          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{0.5}{\color{blue}{s \cdot s}}, 2\right)}}{s}}{2} \]
      5. Applied rewrites77.6%

        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{0.5}{s \cdot s}, 2\right)}}}{s}}{2} \]

      if 0.0 < (/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 (*.f32 s (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))))

      1. Initial program 99.4%

        \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      2. Add Preprocessing
      3. Taylor expanded in s around inf

        \[\leadsto \color{blue}{\frac{\left(\frac{1}{4} + \frac{1}{8} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right) - \frac{1}{16} \cdot \frac{2 \cdot {\left(\left|x\right|\right)}^{2} + {\left(\left|x\right|\right)}^{2}}{{s}^{2}}}{s}} \]
      4. Step-by-step derivation
        1. lower-/.f32N/A

          \[\leadsto \color{blue}{\frac{\left(\frac{1}{4} + \frac{1}{8} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right) - \frac{1}{16} \cdot \frac{2 \cdot {\left(\left|x\right|\right)}^{2} + {\left(\left|x\right|\right)}^{2}}{{s}^{2}}}{s}} \]
      5. Applied rewrites67.5%

        \[\leadsto \color{blue}{\frac{0.25 + \frac{\left(x \cdot x\right) \cdot -0.0625}{s \cdot s}}{s}} \]
      6. Step-by-step derivation
        1. Applied rewrites90.7%

          \[\leadsto \frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s} \]
      7. Recombined 2 regimes into one program.
      8. Final simplification80.9%

        \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{e^{\frac{\left|x\right|}{-s}}}{\left(e^{\frac{\left|x\right|}{-s}} + 1\right) \cdot \left(s \cdot \left(e^{\frac{\left|x\right|}{-s}} + 1\right)\right)} \leq 0:\\ \;\;\;\;\frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{0.5}{s \cdot s}, 2\right)}}{s}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s}\\ \end{array} \]
      9. Add Preprocessing

      Alternative 4: 99.6% accurate, 1.0× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{\frac{\left|x\right|}{-s}}\\ \frac{t\_0}{\mathsf{fma}\left(t\_0, s, s\right) \cdot \left(t\_0 + 1\right)} \end{array} \end{array} \]
      (FPCore (x s)
       :precision binary32
       (let* ((t_0 (exp (/ (fabs x) (- s))))) (/ t_0 (* (fma t_0 s s) (+ t_0 1.0)))))
      float code(float x, float s) {
      	float t_0 = expf((fabsf(x) / -s));
      	return t_0 / (fmaf(t_0, s, s) * (t_0 + 1.0f));
      }
      
      function code(x, s)
      	t_0 = exp(Float32(abs(x) / Float32(-s)))
      	return Float32(t_0 / Float32(fma(t_0, s, s) * Float32(t_0 + Float32(1.0))))
      end
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := e^{\frac{\left|x\right|}{-s}}\\
      \frac{t\_0}{\mathsf{fma}\left(t\_0, s, s\right) \cdot \left(t\_0 + 1\right)}
      \end{array}
      \end{array}
      
      Derivation
      1. Initial program 99.5%

        \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      2. Add Preprocessing
      3. Step-by-step derivation
        1. lift-*.f32N/A

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

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

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} + 1\right)}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        4. distribute-rgt-inN/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + 1 \cdot s\right)} \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        5. *-lft-identityN/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + \color{blue}{s}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        6. lower-fma.f3299.5

          \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{\frac{-\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
        7. lift-/.f32N/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        8. lift-neg.f32N/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\frac{\color{blue}{\mathsf{neg}\left(\left|x\right|\right)}}{s}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        9. distribute-frac-negN/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        10. lower-neg.f32N/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        11. lower-/.f3299.5

          \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\mathsf{fma}\left(e^{-\color{blue}{\frac{\left|x\right|}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      4. Applied rewrites99.5%

        \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      5. Final simplification99.5%

        \[\leadsto \frac{e^{\frac{\left|x\right|}{-s}}}{\mathsf{fma}\left(e^{\frac{\left|x\right|}{-s}}, s, s\right) \cdot \left(e^{\frac{\left|x\right|}{-s}} + 1\right)} \]
      6. Add Preprocessing

      Alternative 5: 99.7% accurate, 1.5× speedup?

      \[\begin{array}{l} \\ \frac{-1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{s}}, s\right) \cdot \left(-1 - e^{\frac{\left|x\right|}{-s}}\right)} \end{array} \]
      (FPCore (x s)
       :precision binary32
       (/ -1.0 (* (fma s (exp (/ (fabs x) s)) s) (- -1.0 (exp (/ (fabs x) (- s)))))))
      float code(float x, float s) {
      	return -1.0f / (fmaf(s, expf((fabsf(x) / s)), s) * (-1.0f - expf((fabsf(x) / -s))));
      }
      
      function code(x, s)
      	return Float32(Float32(-1.0) / Float32(fma(s, exp(Float32(abs(x) / s)), s) * Float32(Float32(-1.0) - exp(Float32(abs(x) / Float32(-s))))))
      end
      
      \begin{array}{l}
      
      \\
      \frac{-1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{s}}, s\right) \cdot \left(-1 - e^{\frac{\left|x\right|}{-s}}\right)}
      \end{array}
      
      Derivation
      1. Initial program 99.5%

        \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      2. Add Preprocessing
      3. Step-by-step derivation
        1. lift-*.f32N/A

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

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

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} + 1\right)}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        4. distribute-rgt-inN/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\color{blue}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + 1 \cdot s\right)} \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        5. *-lft-identityN/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}} \cdot s + \color{blue}{s}\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        6. lower-fma.f3299.5

          \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{\frac{-\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
        7. lift-/.f32N/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        8. lift-neg.f32N/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\frac{\color{blue}{\mathsf{neg}\left(\left|x\right|\right)}}{s}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        9. distribute-frac-negN/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        10. lower-neg.f32N/A

          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\mathsf{fma}\left(e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        11. lower-/.f3299.5

          \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\mathsf{fma}\left(e^{-\color{blue}{\frac{\left|x\right|}{s}}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      4. Applied rewrites99.5%

        \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right)} \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      5. Step-by-step derivation
        1. lift-exp.f32N/A

          \[\leadsto \frac{\color{blue}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        2. lift-/.f32N/A

          \[\leadsto \frac{e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        3. lift-neg.f32N/A

          \[\leadsto \frac{e^{\frac{\color{blue}{\mathsf{neg}\left(\left|x\right|\right)}}{s}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        4. distribute-frac-negN/A

          \[\leadsto \frac{e^{\color{blue}{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        5. lift-/.f32N/A

          \[\leadsto \frac{e^{\mathsf{neg}\left(\color{blue}{\frac{\left|x\right|}{s}}\right)}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        6. neg-mul-1N/A

          \[\leadsto \frac{e^{\color{blue}{-1 \cdot \frac{\left|x\right|}{s}}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        7. exp-prodN/A

          \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        8. lower-pow.f32N/A

          \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}, s, s\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)} \]
        9. lower-exp.f3299.5

          \[\leadsto \frac{{\color{blue}{\left(e^{-1}\right)}}^{\left(\frac{\left|x\right|}{s}\right)}}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      6. Applied rewrites99.5%

        \[\leadsto \frac{\color{blue}{{\left(e^{-1}\right)}^{\left(\frac{\left|x\right|}{s}\right)}}}{\mathsf{fma}\left(e^{-\frac{\left|x\right|}{s}}, s, s\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      7. Applied rewrites99.5%

        \[\leadsto \color{blue}{\frac{1}{\left(1 + e^{\frac{\left|x\right|}{-s}}\right) \cdot \mathsf{fma}\left(s, e^{\frac{\left|x\right|}{s}}, s\right)}} \]
      8. Final simplification99.5%

        \[\leadsto \frac{-1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{s}}, s\right) \cdot \left(-1 - e^{\frac{\left|x\right|}{-s}}\right)} \]
      9. Add Preprocessing

      Alternative 6: 99.6% accurate, 1.5× speedup?

      \[\begin{array}{l} \\ \frac{-1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{-s}}, s\right) \cdot \left(-1 - e^{\frac{\left|x\right|}{s}}\right)} \end{array} \]
      (FPCore (x s)
       :precision binary32
       (/ -1.0 (* (fma s (exp (/ (fabs x) (- s))) s) (- -1.0 (exp (/ (fabs x) s))))))
      float code(float x, float s) {
      	return -1.0f / (fmaf(s, expf((fabsf(x) / -s)), s) * (-1.0f - expf((fabsf(x) / s))));
      }
      
      function code(x, s)
      	return Float32(Float32(-1.0) / Float32(fma(s, exp(Float32(abs(x) / Float32(-s))), s) * Float32(Float32(-1.0) - exp(Float32(abs(x) / s)))))
      end
      
      \begin{array}{l}
      
      \\
      \frac{-1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{-s}}, s\right) \cdot \left(-1 - e^{\frac{\left|x\right|}{s}}\right)}
      \end{array}
      
      Derivation
      1. Initial program 99.5%

        \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      2. Add Preprocessing
      3. Step-by-step derivation
        1. lift-/.f32N/A

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

          \[\leadsto \color{blue}{\frac{1}{\frac{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}} \]
        3. lift-*.f32N/A

          \[\leadsto \frac{1}{\frac{\color{blue}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}} \]
        4. associate-/l*N/A

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

          \[\leadsto \color{blue}{\frac{\frac{1}{s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}}{\frac{1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}} \]
        6. lower-/.f32N/A

          \[\leadsto \color{blue}{\frac{\frac{1}{s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}}{\frac{1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}} \]
      4. Applied rewrites99.4%

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

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

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

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

          \[\leadsto \frac{\color{blue}{\frac{\frac{1}{e^{\frac{\left|x\right|}{s}}}}{s}}}{{\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right)}^{2}} \]
        4. exp-negN/A

          \[\leadsto \frac{\frac{\color{blue}{e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}}{s}}{{\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right)}^{2}} \]
        5. neg-mul-1N/A

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

          \[\leadsto \frac{\frac{e^{-1 \cdot \frac{\left|x\right|}{s}}}{s}}{\color{blue}{\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right) \cdot \left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right)}} \]
        7. neg-mul-1N/A

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

          \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\left|x\right|}{s}}}{s \cdot \left(\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right) \cdot \left(1 + e^{-1 \cdot \frac{\left|x\right|}{s}}\right)\right)}} \]
      7. Applied rewrites99.5%

        \[\leadsto \color{blue}{\frac{1}{\left(1 + e^{\frac{\left|x\right|}{s}}\right) \cdot \mathsf{fma}\left(s, e^{-\frac{\left|x\right|}{s}}, s\right)}} \]
      8. Final simplification99.5%

        \[\leadsto \frac{-1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{-s}}, s\right) \cdot \left(-1 - e^{\frac{\left|x\right|}{s}}\right)} \]
      9. Add Preprocessing

      Alternative 7: 95.3% accurate, 2.2× speedup?

      \[\begin{array}{l} \\ \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{s - 0}{s \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \end{array} \]
      (FPCore (x s)
       :precision binary32
       (/ (/ (/ 1.0 (fma 1.0 (exp (/ (- s 0.0) (* s (/ s (fabs x))))) 1.0)) s) 2.0))
      float code(float x, float s) {
      	return ((1.0f / fmaf(1.0f, expf(((s - 0.0f) / (s * (s / fabsf(x))))), 1.0f)) / s) / 2.0f;
      }
      
      function code(x, s)
      	return Float32(Float32(Float32(Float32(1.0) / fma(Float32(1.0), exp(Float32(Float32(s - Float32(0.0)) / Float32(s * Float32(s / abs(x))))), Float32(1.0))) / s) / Float32(2.0))
      end
      
      \begin{array}{l}
      
      \\
      \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{s - 0}{s \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2}
      \end{array}
      
      Derivation
      1. Initial program 99.5%

        \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
      2. Add Preprocessing
      3. Taylor expanded in s around inf

        \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
      4. Step-by-step derivation
        1. Applied rewrites94.8%

          \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
        2. Applied rewrites94.9%

          \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
        3. Step-by-step derivation
          1. lift-/.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{\left|x\right|}{s}}}, 1\right)}}{s}}{2} \]
          2. frac-2negN/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{\mathsf{neg}\left(\left|x\right|\right)}{\mathsf{neg}\left(s\right)}}}, 1\right)}}{s}}{2} \]
          3. neg-sub0N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\color{blue}{0 - \left|x\right|}}{\mathsf{neg}\left(s\right)}}, 1\right)}}{s}}{2} \]
          4. div-subN/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{0}{\mathsf{neg}\left(s\right)} - \frac{\left|x\right|}{\mathsf{neg}\left(s\right)}}}, 1\right)}}{s}}{2} \]
          5. distribute-neg-frac2N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0}{\mathsf{neg}\left(s\right)} - \color{blue}{\left(\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)\right)}}, 1\right)}}{s}}{2} \]
          6. clear-numN/A

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

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0}{\mathsf{neg}\left(s\right)} - \color{blue}{\frac{\mathsf{neg}\left(1\right)}{\frac{s}{\left|x\right|}}}}, 1\right)}}{s}}{2} \]
          8. metadata-evalN/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0}{\mathsf{neg}\left(s\right)} - \frac{\color{blue}{-1}}{\frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          9. frac-subN/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{0 \cdot \frac{s}{\left|x\right|} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}}, 1\right)}}{s}}{2} \]
          10. lower-/.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{0 \cdot \frac{s}{\left|x\right|} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}}, 1\right)}}{s}}{2} \]
          11. lower--.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\color{blue}{0 \cdot \frac{s}{\left|x\right|} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          12. lower-*.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\color{blue}{0 \cdot \frac{s}{\left|x\right|}} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          13. lower-/.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0 \cdot \color{blue}{\frac{s}{\left|x\right|}} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          14. lower-*.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0 \cdot \frac{s}{\left|x\right|} - \color{blue}{\left(\mathsf{neg}\left(s\right)\right) \cdot -1}}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          15. lower-neg.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0 \cdot \frac{s}{\left|x\right|} - \color{blue}{\left(\mathsf{neg}\left(s\right)\right)} \cdot -1}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          16. lower-*.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0 \cdot \frac{s}{\left|x\right|} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}{\color{blue}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}}, 1\right)}}{s}}{2} \]
          17. lower-neg.f32N/A

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0 \cdot \frac{s}{\left|x\right|} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}{\color{blue}{\left(\mathsf{neg}\left(s\right)\right)} \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          18. lower-/.f3294.9

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{0 \cdot \frac{s}{\left|x\right|} - \left(-s\right) \cdot -1}{\left(-s\right) \cdot \color{blue}{\frac{s}{\left|x\right|}}}}, 1\right)}}{s}}{2} \]
        4. Applied rewrites94.9%

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

          \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\color{blue}{0} - \left(\mathsf{neg}\left(s\right)\right) \cdot -1}{\left(\mathsf{neg}\left(s\right)\right) \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
        6. Step-by-step derivation
          1. Applied rewrites94.9%

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\color{blue}{0} - \left(-s\right) \cdot -1}{\left(-s\right) \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          2. Final simplification94.9%

            \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{s - 0}{s \cdot \frac{s}{\left|x\right|}}}, 1\right)}}{s}}{2} \]
          3. Add Preprocessing

          Alternative 8: 95.3% accurate, 2.4× speedup?

          \[\begin{array}{l} \\ \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\left|x\right| \cdot \frac{1}{s}}, 1\right)}}{s}}{2} \end{array} \]
          (FPCore (x s)
           :precision binary32
           (/ (/ (/ 1.0 (fma 1.0 (exp (* (fabs x) (/ 1.0 s))) 1.0)) s) 2.0))
          float code(float x, float s) {
          	return ((1.0f / fmaf(1.0f, expf((fabsf(x) * (1.0f / s))), 1.0f)) / s) / 2.0f;
          }
          
          function code(x, s)
          	return Float32(Float32(Float32(Float32(1.0) / fma(Float32(1.0), exp(Float32(abs(x) * Float32(Float32(1.0) / s))), Float32(1.0))) / s) / Float32(2.0))
          end
          
          \begin{array}{l}
          
          \\
          \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\left|x\right| \cdot \frac{1}{s}}, 1\right)}}{s}}{2}
          \end{array}
          
          Derivation
          1. Initial program 99.5%

            \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
          2. Add Preprocessing
          3. Taylor expanded in s around inf

            \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
          4. Step-by-step derivation
            1. Applied rewrites94.8%

              \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
            2. Applied rewrites94.9%

              \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
            3. Step-by-step derivation
              1. lift-/.f32N/A

                \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{\left|x\right|}{s}}}, 1\right)}}{s}}{2} \]
              2. clear-numN/A

                \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{1}{\frac{s}{\left|x\right|}}}}, 1\right)}}{s}}{2} \]
              3. associate-/r/N/A

                \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{1}{s} \cdot \left|x\right|}}, 1\right)}}{s}}{2} \]
              4. lower-*.f32N/A

                \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{1}{s} \cdot \left|x\right|}}, 1\right)}}{s}}{2} \]
              5. lower-/.f3294.9

                \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{1}{s}} \cdot \left|x\right|}, 1\right)}}{s}}{2} \]
            4. Applied rewrites94.9%

              \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\color{blue}{\frac{1}{s} \cdot \left|x\right|}}, 1\right)}}{s}}{2} \]
            5. Final simplification94.9%

              \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\left|x\right| \cdot \frac{1}{s}}, 1\right)}}{s}}{2} \]
            6. Add Preprocessing

            Alternative 9: 95.3% accurate, 2.6× speedup?

            \[\begin{array}{l} \\ \frac{\frac{-1}{-1 - e^{\frac{\left|x\right|}{s}}}}{s \cdot 2} \end{array} \]
            (FPCore (x s)
             :precision binary32
             (/ (/ -1.0 (- -1.0 (exp (/ (fabs x) s)))) (* s 2.0)))
            float code(float x, float s) {
            	return (-1.0f / (-1.0f - expf((fabsf(x) / s)))) / (s * 2.0f);
            }
            
            real(4) function code(x, s)
                real(4), intent (in) :: x
                real(4), intent (in) :: s
                code = ((-1.0e0) / ((-1.0e0) - exp((abs(x) / s)))) / (s * 2.0e0)
            end function
            
            function code(x, s)
            	return Float32(Float32(Float32(-1.0) / Float32(Float32(-1.0) - exp(Float32(abs(x) / s)))) / Float32(s * Float32(2.0)))
            end
            
            function tmp = code(x, s)
            	tmp = (single(-1.0) / (single(-1.0) - exp((abs(x) / s)))) / (s * single(2.0));
            end
            
            \begin{array}{l}
            
            \\
            \frac{\frac{-1}{-1 - e^{\frac{\left|x\right|}{s}}}}{s \cdot 2}
            \end{array}
            
            Derivation
            1. Initial program 99.5%

              \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
            2. Add Preprocessing
            3. Taylor expanded in s around inf

              \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
            4. Step-by-step derivation
              1. Applied rewrites94.8%

                \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
              2. Applied rewrites94.9%

                \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
              3. Step-by-step derivation
                1. lift-/.f32N/A

                  \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
                2. lift-/.f32N/A

                  \[\leadsto \frac{\color{blue}{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}}{2} \]
                3. associate-/l/N/A

                  \[\leadsto \color{blue}{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{2 \cdot s}} \]
                4. lower-/.f32N/A

                  \[\leadsto \color{blue}{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{2 \cdot s}} \]
                5. lift-fma.f32N/A

                  \[\leadsto \frac{\frac{1}{\color{blue}{1 \cdot e^{\frac{\left|x\right|}{s}} + 1}}}{2 \cdot s} \]
                6. *-lft-identityN/A

                  \[\leadsto \frac{\frac{1}{\color{blue}{e^{\frac{\left|x\right|}{s}}} + 1}}{2 \cdot s} \]
                7. +-commutativeN/A

                  \[\leadsto \frac{\frac{1}{\color{blue}{1 + e^{\frac{\left|x\right|}{s}}}}}{2 \cdot s} \]
                8. lift-+.f32N/A

                  \[\leadsto \frac{\frac{1}{\color{blue}{1 + e^{\frac{\left|x\right|}{s}}}}}{2 \cdot s} \]
                9. *-commutativeN/A

                  \[\leadsto \frac{\frac{1}{1 + e^{\frac{\left|x\right|}{s}}}}{\color{blue}{s \cdot 2}} \]
                10. lower-*.f3294.9

                  \[\leadsto \frac{\frac{1}{1 + e^{\frac{\left|x\right|}{s}}}}{\color{blue}{s \cdot 2}} \]
              4. Applied rewrites94.9%

                \[\leadsto \color{blue}{\frac{\frac{1}{1 + e^{\frac{\left|x\right|}{s}}}}{s \cdot 2}} \]
              5. Final simplification94.9%

                \[\leadsto \frac{\frac{-1}{-1 - e^{\frac{\left|x\right|}{s}}}}{s \cdot 2} \]
              6. Add Preprocessing

              Alternative 10: 95.3% accurate, 2.7× speedup?

              \[\begin{array}{l} \\ \frac{1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{s}}, s\right) \cdot 2} \end{array} \]
              (FPCore (x s)
               :precision binary32
               (/ 1.0 (* (fma s (exp (/ (fabs x) s)) s) 2.0)))
              float code(float x, float s) {
              	return 1.0f / (fmaf(s, expf((fabsf(x) / s)), s) * 2.0f);
              }
              
              function code(x, s)
              	return Float32(Float32(1.0) / Float32(fma(s, exp(Float32(abs(x) / s)), s) * Float32(2.0)))
              end
              
              \begin{array}{l}
              
              \\
              \frac{1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{s}}, s\right) \cdot 2}
              \end{array}
              
              Derivation
              1. Initial program 99.5%

                \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
              2. Add Preprocessing
              3. Taylor expanded in s around inf

                \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
              4. Step-by-step derivation
                1. Applied rewrites94.8%

                  \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
                2. Applied rewrites94.9%

                  \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
                3. Step-by-step derivation
                  1. lift-/.f32N/A

                    \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
                  2. div-invN/A

                    \[\leadsto \color{blue}{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s} \cdot \frac{1}{2}} \]
                  3. lift-/.f32N/A

                    \[\leadsto \color{blue}{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}} \cdot \frac{1}{2} \]
                  4. lift-/.f32N/A

                    \[\leadsto \frac{\color{blue}{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}}{s} \cdot \frac{1}{2} \]
                  5. associate-/l/N/A

                    \[\leadsto \color{blue}{\frac{1}{s \cdot \mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}} \cdot \frac{1}{2} \]
                  6. lift-fma.f32N/A

                    \[\leadsto \frac{1}{s \cdot \color{blue}{\left(1 \cdot e^{\frac{\left|x\right|}{s}} + 1\right)}} \cdot \frac{1}{2} \]
                  7. *-lft-identityN/A

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

                    \[\leadsto \frac{1}{s \cdot \color{blue}{\left(1 + e^{\frac{\left|x\right|}{s}}\right)}} \cdot \frac{1}{2} \]
                  9. lift-+.f32N/A

                    \[\leadsto \frac{1}{s \cdot \color{blue}{\left(1 + e^{\frac{\left|x\right|}{s}}\right)}} \cdot \frac{1}{2} \]
                  10. frac-timesN/A

                    \[\leadsto \color{blue}{\frac{1 \cdot 1}{\left(s \cdot \left(1 + e^{\frac{\left|x\right|}{s}}\right)\right) \cdot 2}} \]
                  11. metadata-evalN/A

                    \[\leadsto \frac{\color{blue}{1}}{\left(s \cdot \left(1 + e^{\frac{\left|x\right|}{s}}\right)\right) \cdot 2} \]
                4. Applied rewrites94.8%

                  \[\leadsto \color{blue}{\frac{1}{\mathsf{fma}\left(s, e^{\frac{\left|x\right|}{s}}, s\right) \cdot 2}} \]
                5. Add Preprocessing

                Alternative 11: 95.0% accurate, 2.8× speedup?

                \[\begin{array}{l} \\ \frac{e^{\frac{\left|x\right|}{-s}}}{s \cdot 4} \end{array} \]
                (FPCore (x s) :precision binary32 (/ (exp (/ (fabs x) (- s))) (* s 4.0)))
                float code(float x, float s) {
                	return expf((fabsf(x) / -s)) / (s * 4.0f);
                }
                
                real(4) function code(x, s)
                    real(4), intent (in) :: x
                    real(4), intent (in) :: s
                    code = exp((abs(x) / -s)) / (s * 4.0e0)
                end function
                
                function code(x, s)
                	return Float32(exp(Float32(abs(x) / Float32(-s))) / Float32(s * Float32(4.0)))
                end
                
                function tmp = code(x, s)
                	tmp = exp((abs(x) / -s)) / (s * single(4.0));
                end
                
                \begin{array}{l}
                
                \\
                \frac{e^{\frac{\left|x\right|}{-s}}}{s \cdot 4}
                \end{array}
                
                Derivation
                1. Initial program 99.5%

                  \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                2. Add Preprocessing
                3. Taylor expanded in s around inf

                  \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\color{blue}{4 \cdot s}} \]
                4. Step-by-step derivation
                  1. *-commutativeN/A

                    \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\color{blue}{s \cdot 4}} \]
                  2. lower-*.f3294.5

                    \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{s \cdot 4}} \]
                5. Applied rewrites94.5%

                  \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\color{blue}{s \cdot 4}} \]
                6. Final simplification94.5%

                  \[\leadsto \frac{e^{\frac{\left|x\right|}{-s}}}{s \cdot 4} \]
                7. Add Preprocessing

                Alternative 12: 87.0% accurate, 3.0× speedup?

                \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{\left|x\right|}{s}\\ t_1 := -\left|x\right|\\ t_2 := \frac{0.5}{s \cdot s}\\ \mathbf{if}\;t\_1 \leq -2.20000002915631 \cdot 10^{-14}:\\ \;\;\;\;\frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, t\_2, t\_0\right) + \mathsf{fma}\left(\frac{\left|x\right| \cdot \left(x \cdot x\right)}{s \cdot \left(s \cdot s\right)}, 0.16666666666666666, 2\right)}}{s}}{2}\\ \mathbf{elif}\;t\_1 \leq -4.00000012549758 \cdot 10^{-22}:\\ \;\;\;\;\frac{\frac{\frac{1}{t\_0 + \mathsf{fma}\left(x \cdot x, t\_2, 2\right)}}{s}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s}\\ \end{array} \end{array} \]
                (FPCore (x s)
                 :precision binary32
                 (let* ((t_0 (/ (fabs x) s)) (t_1 (- (fabs x))) (t_2 (/ 0.5 (* s s))))
                   (if (<= t_1 -2.20000002915631e-14)
                     (/
                      (/
                       (/
                        1.0
                        (+
                         (fma (* x x) t_2 t_0)
                         (fma (/ (* (fabs x) (* x x)) (* s (* s s))) 0.16666666666666666 2.0)))
                       s)
                      2.0)
                     (if (<= t_1 -4.00000012549758e-22)
                       (/ (/ (/ 1.0 (+ t_0 (fma (* x x) t_2 2.0))) s) 2.0)
                       (/ (fma (/ x s) (/ (* x -0.0625) s) 0.25) s)))))
                float code(float x, float s) {
                	float t_0 = fabsf(x) / s;
                	float t_1 = -fabsf(x);
                	float t_2 = 0.5f / (s * s);
                	float tmp;
                	if (t_1 <= -2.20000002915631e-14f) {
                		tmp = ((1.0f / (fmaf((x * x), t_2, t_0) + fmaf(((fabsf(x) * (x * x)) / (s * (s * s))), 0.16666666666666666f, 2.0f))) / s) / 2.0f;
                	} else if (t_1 <= -4.00000012549758e-22f) {
                		tmp = ((1.0f / (t_0 + fmaf((x * x), t_2, 2.0f))) / s) / 2.0f;
                	} else {
                		tmp = fmaf((x / s), ((x * -0.0625f) / s), 0.25f) / s;
                	}
                	return tmp;
                }
                
                function code(x, s)
                	t_0 = Float32(abs(x) / s)
                	t_1 = Float32(-abs(x))
                	t_2 = Float32(Float32(0.5) / Float32(s * s))
                	tmp = Float32(0.0)
                	if (t_1 <= Float32(-2.20000002915631e-14))
                		tmp = Float32(Float32(Float32(Float32(1.0) / Float32(fma(Float32(x * x), t_2, t_0) + fma(Float32(Float32(abs(x) * Float32(x * x)) / Float32(s * Float32(s * s))), Float32(0.16666666666666666), Float32(2.0)))) / s) / Float32(2.0));
                	elseif (t_1 <= Float32(-4.00000012549758e-22))
                		tmp = Float32(Float32(Float32(Float32(1.0) / Float32(t_0 + fma(Float32(x * x), t_2, Float32(2.0)))) / s) / Float32(2.0));
                	else
                		tmp = Float32(fma(Float32(x / s), Float32(Float32(x * Float32(-0.0625)) / s), Float32(0.25)) / s);
                	end
                	return tmp
                end
                
                \begin{array}{l}
                
                \\
                \begin{array}{l}
                t_0 := \frac{\left|x\right|}{s}\\
                t_1 := -\left|x\right|\\
                t_2 := \frac{0.5}{s \cdot s}\\
                \mathbf{if}\;t\_1 \leq -2.20000002915631 \cdot 10^{-14}:\\
                \;\;\;\;\frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, t\_2, t\_0\right) + \mathsf{fma}\left(\frac{\left|x\right| \cdot \left(x \cdot x\right)}{s \cdot \left(s \cdot s\right)}, 0.16666666666666666, 2\right)}}{s}}{2}\\
                
                \mathbf{elif}\;t\_1 \leq -4.00000012549758 \cdot 10^{-22}:\\
                \;\;\;\;\frac{\frac{\frac{1}{t\_0 + \mathsf{fma}\left(x \cdot x, t\_2, 2\right)}}{s}}{2}\\
                
                \mathbf{else}:\\
                \;\;\;\;\frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s}\\
                
                
                \end{array}
                \end{array}
                
                Derivation
                1. Split input into 3 regimes
                2. if (neg.f32 (fabs.f32 x)) < -2.20000003e-14

                  1. Initial program 99.9%

                    \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                  2. Add Preprocessing
                  3. Taylor expanded in s around inf

                    \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
                  4. Step-by-step derivation
                    1. Applied rewrites97.4%

                      \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
                    2. Applied rewrites97.4%

                      \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
                    3. Taylor expanded in s around inf

                      \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 + \left(\frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}} + \left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + \frac{\left|x\right|}{s}\right)\right)}}}{s}}{2} \]
                    4. Step-by-step derivation
                      1. associate-+r+N/A

                        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right) + \left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + \frac{\left|x\right|}{s}\right)}}}{s}}{2} \]
                      2. +-commutativeN/A

                        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}}{s}}{2} \]
                      3. lower-+.f32N/A

                        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}}{s}}{2} \]
                      4. associate-*r/N/A

                        \[\leadsto \frac{\frac{\frac{1}{\left(\color{blue}{\frac{\frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{{s}^{2}}} + \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      5. *-commutativeN/A

                        \[\leadsto \frac{\frac{\frac{1}{\left(\frac{\color{blue}{{\left(\left|x\right|\right)}^{2} \cdot \frac{1}{2}}}{{s}^{2}} + \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      6. associate-/l*N/A

                        \[\leadsto \frac{\frac{\frac{1}{\left(\color{blue}{{\left(\left|x\right|\right)}^{2} \cdot \frac{\frac{1}{2}}{{s}^{2}}} + \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      7. lower-fma.f32N/A

                        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\mathsf{fma}\left({\left(\left|x\right|\right)}^{2}, \frac{\frac{1}{2}}{{s}^{2}}, \frac{\left|x\right|}{s}\right)} + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      8. unpow2N/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(\color{blue}{\left|x\right| \cdot \left|x\right|}, \frac{\frac{1}{2}}{{s}^{2}}, \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      9. sqr-absN/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{\frac{1}{2}}{{s}^{2}}, \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      10. lower-*.f32N/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{\frac{1}{2}}{{s}^{2}}, \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      11. lower-/.f32N/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, \color{blue}{\frac{\frac{1}{2}}{{s}^{2}}}, \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      12. unpow2N/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, \frac{\frac{1}{2}}{\color{blue}{s \cdot s}}, \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      13. lower-*.f32N/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, \frac{\frac{1}{2}}{\color{blue}{s \cdot s}}, \frac{\left|x\right|}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      14. lower-/.f32N/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, \frac{\frac{1}{2}}{s \cdot s}, \color{blue}{\frac{\left|x\right|}{s}}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      15. lower-fabs.f32N/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, \frac{\frac{1}{2}}{s \cdot s}, \frac{\color{blue}{\left|x\right|}}{s}\right) + \left(2 + \frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}}\right)}}{s}}{2} \]
                      16. +-commutativeN/A

                        \[\leadsto \frac{\frac{\frac{1}{\mathsf{fma}\left(x \cdot x, \frac{\frac{1}{2}}{s \cdot s}, \frac{\left|x\right|}{s}\right) + \color{blue}{\left(\frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{{s}^{3}} + 2\right)}}}{s}}{2} \]
                    5. Applied rewrites88.4%

                      \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\mathsf{fma}\left(x \cdot x, \frac{0.5}{s \cdot s}, \frac{\left|x\right|}{s}\right) + \mathsf{fma}\left(\frac{\left|x\right| \cdot \left(x \cdot x\right)}{s \cdot \left(s \cdot s\right)}, 0.16666666666666666, 2\right)}}}{s}}{2} \]

                    if -2.20000003e-14 < (neg.f32 (fabs.f32 x)) < -4.00000013e-22

                    1. Initial program 99.6%

                      \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                    2. Add Preprocessing
                    3. Taylor expanded in s around inf

                      \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
                    4. Step-by-step derivation
                      1. Applied rewrites90.4%

                        \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
                      2. Applied rewrites90.6%

                        \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
                      3. Taylor expanded in s around inf

                        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 + \left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + \frac{\left|x\right|}{s}\right)}}}{s}}{2} \]
                      4. Step-by-step derivation
                        1. associate-+r+N/A

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

                          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}}{s}}{2} \]
                        3. lower-+.f32N/A

                          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}}{s}}{2} \]
                        4. lower-/.f32N/A

                          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s}} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}{s}}{2} \]
                        5. lower-fabs.f32N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\color{blue}{\left|x\right|}}{s} + \left(2 + \frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right)}}{s}}{2} \]
                        6. +-commutativeN/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \color{blue}{\left(\frac{1}{2} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}} + 2\right)}}}{s}}{2} \]
                        7. associate-*r/N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \left(\color{blue}{\frac{\frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{{s}^{2}}} + 2\right)}}{s}}{2} \]
                        8. *-commutativeN/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \left(\frac{\color{blue}{{\left(\left|x\right|\right)}^{2} \cdot \frac{1}{2}}}{{s}^{2}} + 2\right)}}{s}}{2} \]
                        9. associate-/l*N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \left(\color{blue}{{\left(\left|x\right|\right)}^{2} \cdot \frac{\frac{1}{2}}{{s}^{2}}} + 2\right)}}{s}}{2} \]
                        10. lower-fma.f32N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \color{blue}{\mathsf{fma}\left({\left(\left|x\right|\right)}^{2}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}}{s}}{2} \]
                        11. unpow2N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(\color{blue}{\left|x\right| \cdot \left|x\right|}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}{s}}{2} \]
                        12. sqr-absN/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}{s}}{2} \]
                        13. lower-*.f32N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{\frac{1}{2}}{{s}^{2}}, 2\right)}}{s}}{2} \]
                        14. lower-/.f32N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \color{blue}{\frac{\frac{1}{2}}{{s}^{2}}}, 2\right)}}{s}}{2} \]
                        15. unpow2N/A

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{\frac{1}{2}}{\color{blue}{s \cdot s}}, 2\right)}}{s}}{2} \]
                        16. lower-*.f3290.7

                          \[\leadsto \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{0.5}{\color{blue}{s \cdot s}}, 2\right)}}{s}}{2} \]
                      5. Applied rewrites90.7%

                        \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + \mathsf{fma}\left(x \cdot x, \frac{0.5}{s \cdot s}, 2\right)}}}{s}}{2} \]

                      if -4.00000013e-22 < (neg.f32 (fabs.f32 x))

                      1. Initial program 97.8%

                        \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                      2. Add Preprocessing
                      3. Taylor expanded in s around inf

                        \[\leadsto \color{blue}{\frac{\left(\frac{1}{4} + \frac{1}{8} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right) - \frac{1}{16} \cdot \frac{2 \cdot {\left(\left|x\right|\right)}^{2} + {\left(\left|x\right|\right)}^{2}}{{s}^{2}}}{s}} \]
                      4. Step-by-step derivation
                        1. lower-/.f32N/A

                          \[\leadsto \color{blue}{\frac{\left(\frac{1}{4} + \frac{1}{8} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right) - \frac{1}{16} \cdot \frac{2 \cdot {\left(\left|x\right|\right)}^{2} + {\left(\left|x\right|\right)}^{2}}{{s}^{2}}}{s}} \]
                      5. Applied rewrites47.3%

                        \[\leadsto \color{blue}{\frac{0.25 + \frac{\left(x \cdot x\right) \cdot -0.0625}{s \cdot s}}{s}} \]
                      6. Step-by-step derivation
                        1. Applied rewrites78.7%

                          \[\leadsto \frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s} \]
                      7. Recombined 3 regimes into one program.
                      8. Add Preprocessing

                      Alternative 13: 81.4% accurate, 3.6× speedup?

                      \[\begin{array}{l} \\ \frac{\frac{\frac{1}{2 + \frac{\left|x\right| + \frac{\mathsf{fma}\left(0.16666666666666666, \left|x\right| \cdot \frac{x \cdot x}{s}, \left(x \cdot x\right) \cdot 0.5\right)}{s}}{s}}}{s}}{2} \end{array} \]
                      (FPCore (x s)
                       :precision binary32
                       (/
                        (/
                         (/
                          1.0
                          (+
                           2.0
                           (/
                            (+
                             (fabs x)
                             (/
                              (fma 0.16666666666666666 (* (fabs x) (/ (* x x) s)) (* (* x x) 0.5))
                              s))
                            s)))
                         s)
                        2.0))
                      float code(float x, float s) {
                      	return ((1.0f / (2.0f + ((fabsf(x) + (fmaf(0.16666666666666666f, (fabsf(x) * ((x * x) / s)), ((x * x) * 0.5f)) / s)) / s))) / s) / 2.0f;
                      }
                      
                      function code(x, s)
                      	return Float32(Float32(Float32(Float32(1.0) / Float32(Float32(2.0) + Float32(Float32(abs(x) + Float32(fma(Float32(0.16666666666666666), Float32(abs(x) * Float32(Float32(x * x) / s)), Float32(Float32(x * x) * Float32(0.5))) / s)) / s))) / s) / Float32(2.0))
                      end
                      
                      \begin{array}{l}
                      
                      \\
                      \frac{\frac{\frac{1}{2 + \frac{\left|x\right| + \frac{\mathsf{fma}\left(0.16666666666666666, \left|x\right| \cdot \frac{x \cdot x}{s}, \left(x \cdot x\right) \cdot 0.5\right)}{s}}{s}}}{s}}{2}
                      \end{array}
                      
                      Derivation
                      1. Initial program 99.5%

                        \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                      2. Add Preprocessing
                      3. Taylor expanded in s around inf

                        \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
                      4. Step-by-step derivation
                        1. Applied rewrites94.8%

                          \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
                        2. Applied rewrites94.9%

                          \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
                        3. Taylor expanded in s around -inf

                          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 + -1 \cdot \frac{-1 \cdot \left|x\right| + -1 \cdot \frac{\frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{s} + \frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{s}}{s}}}}{s}}{2} \]
                        4. Step-by-step derivation
                          1. mul-1-negN/A

                            \[\leadsto \frac{\frac{\frac{1}{2 + \color{blue}{\left(\mathsf{neg}\left(\frac{-1 \cdot \left|x\right| + -1 \cdot \frac{\frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{s} + \frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{s}}{s}\right)\right)}}}{s}}{2} \]
                          2. unsub-negN/A

                            \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 - \frac{-1 \cdot \left|x\right| + -1 \cdot \frac{\frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{s} + \frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{s}}{s}}}}{s}}{2} \]
                          3. lower--.f32N/A

                            \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 - \frac{-1 \cdot \left|x\right| + -1 \cdot \frac{\frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{s} + \frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{s}}{s}}}}{s}}{2} \]
                          4. lower-/.f32N/A

                            \[\leadsto \frac{\frac{\frac{1}{2 - \color{blue}{\frac{-1 \cdot \left|x\right| + -1 \cdot \frac{\frac{1}{6} \cdot \frac{{\left(\left|x\right|\right)}^{3}}{s} + \frac{1}{2} \cdot {\left(\left|x\right|\right)}^{2}}{s}}{s}}}}{s}}{2} \]
                        5. Applied rewrites79.3%

                          \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 - \frac{\left(-\left|x\right|\right) - \frac{\mathsf{fma}\left(0.16666666666666666, \left|x\right| \cdot \frac{x \cdot x}{s}, \left(x \cdot x\right) \cdot 0.5\right)}{s}}{s}}}}{s}}{2} \]
                        6. Final simplification79.3%

                          \[\leadsto \frac{\frac{\frac{1}{2 + \frac{\left|x\right| + \frac{\mathsf{fma}\left(0.16666666666666666, \left|x\right| \cdot \frac{x \cdot x}{s}, \left(x \cdot x\right) \cdot 0.5\right)}{s}}{s}}}{s}}{2} \]
                        7. Add Preprocessing

                        Alternative 14: 51.0% accurate, 7.5× speedup?

                        \[\begin{array}{l} \\ \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + 2}}{s}}{2} \end{array} \]
                        (FPCore (x s) :precision binary32 (/ (/ (/ 1.0 (+ (/ (fabs x) s) 2.0)) s) 2.0))
                        float code(float x, float s) {
                        	return ((1.0f / ((fabsf(x) / s) + 2.0f)) / s) / 2.0f;
                        }
                        
                        real(4) function code(x, s)
                            real(4), intent (in) :: x
                            real(4), intent (in) :: s
                            code = ((1.0e0 / ((abs(x) / s) + 2.0e0)) / s) / 2.0e0
                        end function
                        
                        function code(x, s)
                        	return Float32(Float32(Float32(Float32(1.0) / Float32(Float32(abs(x) / s) + Float32(2.0))) / s) / Float32(2.0))
                        end
                        
                        function tmp = code(x, s)
                        	tmp = ((single(1.0) / ((abs(x) / s) + single(2.0))) / s) / single(2.0);
                        end
                        
                        \begin{array}{l}
                        
                        \\
                        \frac{\frac{\frac{1}{\frac{\left|x\right|}{s} + 2}}{s}}{2}
                        \end{array}
                        
                        Derivation
                        1. Initial program 99.5%

                          \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                        2. Add Preprocessing
                        3. Taylor expanded in s around inf

                          \[\leadsto \frac{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \color{blue}{2}} \]
                        4. Step-by-step derivation
                          1. Applied rewrites94.8%

                            \[\leadsto \frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \color{blue}{2}} \]
                          2. Applied rewrites94.9%

                            \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\mathsf{fma}\left(1, e^{\frac{\left|x\right|}{s}}, 1\right)}}{s}}{2}} \]
                          3. Taylor expanded in s around inf

                            \[\leadsto \frac{\frac{\frac{1}{\color{blue}{2 + \frac{\left|x\right|}{s}}}}{s}}{2} \]
                          4. Step-by-step derivation
                            1. +-commutativeN/A

                              \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + 2}}}{s}}{2} \]
                            2. lower-+.f32N/A

                              \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + 2}}}{s}}{2} \]
                            3. lower-/.f32N/A

                              \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s}} + 2}}{s}}{2} \]
                            4. lower-fabs.f3248.9

                              \[\leadsto \frac{\frac{\frac{1}{\frac{\color{blue}{\left|x\right|}}{s} + 2}}{s}}{2} \]
                          5. Applied rewrites48.9%

                            \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\left|x\right|}{s} + 2}}}{s}}{2} \]
                          6. Add Preprocessing

                          Alternative 15: 75.7% accurate, 7.9× speedup?

                          \[\begin{array}{l} \\ \frac{1}{s \cdot \left(\frac{\frac{x \cdot x}{s}}{s} - -4\right)} \end{array} \]
                          (FPCore (x s) :precision binary32 (/ 1.0 (* s (- (/ (/ (* x x) s) s) -4.0))))
                          float code(float x, float s) {
                          	return 1.0f / (s * ((((x * x) / s) / s) - -4.0f));
                          }
                          
                          real(4) function code(x, s)
                              real(4), intent (in) :: x
                              real(4), intent (in) :: s
                              code = 1.0e0 / (s * ((((x * x) / s) / s) - (-4.0e0)))
                          end function
                          
                          function code(x, s)
                          	return Float32(Float32(1.0) / Float32(s * Float32(Float32(Float32(Float32(x * x) / s) / s) - Float32(-4.0))))
                          end
                          
                          function tmp = code(x, s)
                          	tmp = single(1.0) / (s * ((((x * x) / s) / s) - single(-4.0)));
                          end
                          
                          \begin{array}{l}
                          
                          \\
                          \frac{1}{s \cdot \left(\frac{\frac{x \cdot x}{s}}{s} - -4\right)}
                          \end{array}
                          
                          Derivation
                          1. Initial program 99.5%

                            \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                          2. Add Preprocessing
                          3. Step-by-step derivation
                            1. lift-/.f32N/A

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

                              \[\leadsto \color{blue}{\frac{1}{\frac{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}} \]
                            3. lift-*.f32N/A

                              \[\leadsto \frac{1}{\frac{\color{blue}{\left(s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)\right) \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}} \]
                            4. associate-/l*N/A

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

                              \[\leadsto \color{blue}{\frac{\frac{1}{s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}}{\frac{1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}} \]
                            6. lower-/.f32N/A

                              \[\leadsto \color{blue}{\frac{\frac{1}{s \cdot \left(1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}\right)}}{\frac{1 + e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}{e^{\frac{\mathsf{neg}\left(\left|x\right|\right)}{s}}}}} \]
                          4. Applied rewrites99.4%

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

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

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

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

                              \[\leadsto \frac{\color{blue}{\frac{\frac{1}{e^{\frac{\left|x\right|}{s}}}}{s}}}{{\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right)}^{2}} \]
                            4. exp-negN/A

                              \[\leadsto \frac{\frac{\color{blue}{e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}}}{s}}{{\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right)}^{2}} \]
                            5. neg-mul-1N/A

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

                              \[\leadsto \frac{\frac{e^{-1 \cdot \frac{\left|x\right|}{s}}}{s}}{\color{blue}{\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right) \cdot \left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right)}} \]
                            7. neg-mul-1N/A

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

                              \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\left|x\right|}{s}}}{s \cdot \left(\left(1 + e^{\mathsf{neg}\left(\frac{\left|x\right|}{s}\right)}\right) \cdot \left(1 + e^{-1 \cdot \frac{\left|x\right|}{s}}\right)\right)}} \]
                          7. Applied rewrites99.5%

                            \[\leadsto \color{blue}{\frac{1}{\left(1 + e^{\frac{\left|x\right|}{s}}\right) \cdot \mathsf{fma}\left(s, e^{-\frac{\left|x\right|}{s}}, s\right)}} \]
                          8. Taylor expanded in s around -inf

                            \[\leadsto \frac{1}{-1 \cdot \color{blue}{\left(s \cdot \left(-1 \cdot \frac{-2 \cdot \left|x\right| + \left(-1 \cdot \frac{-2 \cdot {\left(\left|x\right|\right)}^{2} + {\left(\left|x\right|\right)}^{2}}{s} + 2 \cdot \left|x\right|\right)}{s} - 4\right)\right)}} \]
                          9. Step-by-step derivation
                            1. Applied rewrites73.2%

                              \[\leadsto \frac{1}{\left(-4 + \left(-\frac{\frac{x \cdot x}{s} + 0}{s}\right)\right) \cdot \color{blue}{\left(-s\right)}} \]
                            2. Final simplification73.2%

                              \[\leadsto \frac{1}{s \cdot \left(\frac{\frac{x \cdot x}{s}}{s} - -4\right)} \]
                            3. Add Preprocessing

                            Alternative 16: 27.1% accurate, 8.3× speedup?

                            \[\begin{array}{l} \\ \frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s} \end{array} \]
                            (FPCore (x s) :precision binary32 (/ (fma (/ x s) (/ (* x -0.0625) s) 0.25) s))
                            float code(float x, float s) {
                            	return fmaf((x / s), ((x * -0.0625f) / s), 0.25f) / s;
                            }
                            
                            function code(x, s)
                            	return Float32(fma(Float32(x / s), Float32(Float32(x * Float32(-0.0625)) / s), Float32(0.25)) / s)
                            end
                            
                            \begin{array}{l}
                            
                            \\
                            \frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s}
                            \end{array}
                            
                            Derivation
                            1. Initial program 99.5%

                              \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                            2. Add Preprocessing
                            3. Taylor expanded in s around inf

                              \[\leadsto \color{blue}{\frac{\left(\frac{1}{4} + \frac{1}{8} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right) - \frac{1}{16} \cdot \frac{2 \cdot {\left(\left|x\right|\right)}^{2} + {\left(\left|x\right|\right)}^{2}}{{s}^{2}}}{s}} \]
                            4. Step-by-step derivation
                              1. lower-/.f32N/A

                                \[\leadsto \color{blue}{\frac{\left(\frac{1}{4} + \frac{1}{8} \cdot \frac{{\left(\left|x\right|\right)}^{2}}{{s}^{2}}\right) - \frac{1}{16} \cdot \frac{2 \cdot {\left(\left|x\right|\right)}^{2} + {\left(\left|x\right|\right)}^{2}}{{s}^{2}}}{s}} \]
                            5. Applied rewrites19.2%

                              \[\leadsto \color{blue}{\frac{0.25 + \frac{\left(x \cdot x\right) \cdot -0.0625}{s \cdot s}}{s}} \]
                            6. Step-by-step derivation
                              1. Applied rewrites25.1%

                                \[\leadsto \frac{\mathsf{fma}\left(\frac{x}{s}, \frac{x \cdot -0.0625}{s}, 0.25\right)}{s} \]
                              2. Add Preprocessing

                              Alternative 17: 27.4% accurate, 31.1× speedup?

                              \[\begin{array}{l} \\ \frac{0.25}{s} \end{array} \]
                              (FPCore (x s) :precision binary32 (/ 0.25 s))
                              float code(float x, float s) {
                              	return 0.25f / s;
                              }
                              
                              real(4) function code(x, s)
                                  real(4), intent (in) :: x
                                  real(4), intent (in) :: s
                                  code = 0.25e0 / s
                              end function
                              
                              function code(x, s)
                              	return Float32(Float32(0.25) / s)
                              end
                              
                              function tmp = code(x, s)
                              	tmp = single(0.25) / s;
                              end
                              
                              \begin{array}{l}
                              
                              \\
                              \frac{0.25}{s}
                              \end{array}
                              
                              Derivation
                              1. Initial program 99.5%

                                \[\frac{e^{\frac{-\left|x\right|}{s}}}{\left(s \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)\right) \cdot \left(1 + e^{\frac{-\left|x\right|}{s}}\right)} \]
                              2. Add Preprocessing
                              3. Taylor expanded in s around inf

                                \[\leadsto \color{blue}{\frac{\frac{1}{4}}{s}} \]
                              4. Step-by-step derivation
                                1. lower-/.f3225.1

                                  \[\leadsto \color{blue}{\frac{0.25}{s}} \]
                              5. Applied rewrites25.1%

                                \[\leadsto \color{blue}{\frac{0.25}{s}} \]
                              6. Add Preprocessing

                              Reproduce

                              ?
                              herbie shell --seed 2024232 
                              (FPCore (x s)
                                :name "Logistic distribution"
                                :precision binary32
                                :pre (and (<= 0.0 s) (<= s 1.0651631))
                                (/ (exp (/ (- (fabs x)) s)) (* (* s (+ 1.0 (exp (/ (- (fabs x)) s)))) (+ 1.0 (exp (/ (- (fabs x)) s))))))