Logistic function from Lakshay Garg

Percentage Accurate: 54.7% → 99.3%
Time: 7.7s
Alternatives: 8
Speedup: 0.9×

Specification

?
\[\begin{array}{l} \\ \frac{2}{1 + e^{-2 \cdot x}} - 1 \end{array} \]
(FPCore (x y) :precision binary64 (- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))
double code(double x, double y) {
	return (2.0 / (1.0 + exp((-2.0 * x)))) - 1.0;
}
real(8) function code(x, y)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    code = (2.0d0 / (1.0d0 + exp(((-2.0d0) * x)))) - 1.0d0
end function
public static double code(double x, double y) {
	return (2.0 / (1.0 + Math.exp((-2.0 * x)))) - 1.0;
}
def code(x, y):
	return (2.0 / (1.0 + math.exp((-2.0 * x)))) - 1.0
function code(x, y)
	return Float64(Float64(2.0 / Float64(1.0 + exp(Float64(-2.0 * x)))) - 1.0)
end
function tmp = code(x, y)
	tmp = (2.0 / (1.0 + exp((-2.0 * x)))) - 1.0;
end
code[x_, y_] := N[(N[(2.0 / N[(1.0 + N[Exp[N[(-2.0 * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{1 + e^{-2 \cdot x}} - 1
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

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

Accuracy vs Speed?

Herbie found 8 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: 54.7% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{2}{1 + e^{-2 \cdot x}} - 1 \end{array} \]
(FPCore (x y) :precision binary64 (- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))
double code(double x, double y) {
	return (2.0 / (1.0 + exp((-2.0 * x)))) - 1.0;
}
real(8) function code(x, y)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    code = (2.0d0 / (1.0d0 + exp(((-2.0d0) * x)))) - 1.0d0
end function
public static double code(double x, double y) {
	return (2.0 / (1.0 + Math.exp((-2.0 * x)))) - 1.0;
}
def code(x, y):
	return (2.0 / (1.0 + math.exp((-2.0 * x)))) - 1.0
function code(x, y)
	return Float64(Float64(2.0 / Float64(1.0 + exp(Float64(-2.0 * x)))) - 1.0)
end
function tmp = code(x, y)
	tmp = (2.0 / (1.0 + exp((-2.0 * x)))) - 1.0;
end
code[x_, y_] := N[(N[(2.0 / N[(1.0 + N[Exp[N[(-2.0 * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{1 + e^{-2 \cdot x}} - 1
\end{array}

Alternative 1: 99.3% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{x \cdot -2} + 1\\ t_1 := \frac{2}{t\_0}\\ t_2 := t\_1 - -1\\ \mathbf{if}\;x \cdot -2 \leq -5000:\\ \;\;\;\;t\_1 - 1\\ \mathbf{elif}\;x \cdot -2 \leq 2 \cdot 10^{-13}:\\ \;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, -0.3333333333333333, x\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{t\_2} \cdot \left(-1 - \frac{-2}{t\_0}\right)\right) \cdot t\_2\\ \end{array} \end{array} \]
(FPCore (x y)
 :precision binary64
 (let* ((t_0 (+ (exp (* x -2.0)) 1.0)) (t_1 (/ 2.0 t_0)) (t_2 (- t_1 -1.0)))
   (if (<= (* x -2.0) -5000.0)
     (- t_1 1.0)
     (if (<= (* x -2.0) 2e-13)
       (fma (* (* x x) x) -0.3333333333333333 x)
       (* (* (/ 1.0 t_2) (- -1.0 (/ -2.0 t_0))) t_2)))))
double code(double x, double y) {
	double t_0 = exp((x * -2.0)) + 1.0;
	double t_1 = 2.0 / t_0;
	double t_2 = t_1 - -1.0;
	double tmp;
	if ((x * -2.0) <= -5000.0) {
		tmp = t_1 - 1.0;
	} else if ((x * -2.0) <= 2e-13) {
		tmp = fma(((x * x) * x), -0.3333333333333333, x);
	} else {
		tmp = ((1.0 / t_2) * (-1.0 - (-2.0 / t_0))) * t_2;
	}
	return tmp;
}
function code(x, y)
	t_0 = Float64(exp(Float64(x * -2.0)) + 1.0)
	t_1 = Float64(2.0 / t_0)
	t_2 = Float64(t_1 - -1.0)
	tmp = 0.0
	if (Float64(x * -2.0) <= -5000.0)
		tmp = Float64(t_1 - 1.0);
	elseif (Float64(x * -2.0) <= 2e-13)
		tmp = fma(Float64(Float64(x * x) * x), -0.3333333333333333, x);
	else
		tmp = Float64(Float64(Float64(1.0 / t_2) * Float64(-1.0 - Float64(-2.0 / t_0))) * t_2);
	end
	return tmp
end
code[x_, y_] := Block[{t$95$0 = N[(N[Exp[N[(x * -2.0), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]}, Block[{t$95$1 = N[(2.0 / t$95$0), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 - -1.0), $MachinePrecision]}, If[LessEqual[N[(x * -2.0), $MachinePrecision], -5000.0], N[(t$95$1 - 1.0), $MachinePrecision], If[LessEqual[N[(x * -2.0), $MachinePrecision], 2e-13], N[(N[(N[(x * x), $MachinePrecision] * x), $MachinePrecision] * -0.3333333333333333 + x), $MachinePrecision], N[(N[(N[(1.0 / t$95$2), $MachinePrecision] * N[(-1.0 - N[(-2.0 / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := e^{x \cdot -2} + 1\\
t_1 := \frac{2}{t\_0}\\
t_2 := t\_1 - -1\\
\mathbf{if}\;x \cdot -2 \leq -5000:\\
\;\;\;\;t\_1 - 1\\

\mathbf{elif}\;x \cdot -2 \leq 2 \cdot 10^{-13}:\\
\;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, -0.3333333333333333, x\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{t\_2} \cdot \left(-1 - \frac{-2}{t\_0}\right)\right) \cdot t\_2\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (*.f64 #s(literal -2 binary64) x) < -5e3

    1. Initial program 100.0%

      \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
    2. Add Preprocessing

    if -5e3 < (*.f64 #s(literal -2 binary64) x) < 2.0000000000000001e-13

    1. Initial program 6.8%

      \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0

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

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

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

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

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

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

        \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{3}, 1\right) \cdot x \]
      7. lower-*.f64100.0

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(x \cdot x, -0.3333333333333333, 1\right) \cdot x} \]
    6. Step-by-step derivation
      1. Applied rewrites100.0%

        \[\leadsto \mathsf{fma}\left(1, \color{blue}{x}, \left(-0.3333333333333333 \cdot \left(x \cdot x\right)\right) \cdot x\right) \]
      2. Step-by-step derivation
        1. Applied rewrites100.0%

          \[\leadsto \mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \color{blue}{-0.3333333333333333}, x\right) \]

        if 2.0000000000000001e-13 < (*.f64 #s(literal -2 binary64) x)

        1. Initial program 100.0%

          \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. lift--.f64N/A

            \[\leadsto \color{blue}{\frac{2}{1 + e^{-2 \cdot x}} - 1} \]
          2. flip--N/A

            \[\leadsto \color{blue}{\frac{\frac{2}{1 + e^{-2 \cdot x}} \cdot \frac{2}{1 + e^{-2 \cdot x}} - 1 \cdot 1}{\frac{2}{1 + e^{-2 \cdot x}} + 1}} \]
          3. div-invN/A

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

            \[\leadsto \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot \frac{2}{1 + e^{-2 \cdot x}} - \color{blue}{1}\right) \cdot \frac{1}{\frac{2}{1 + e^{-2 \cdot x}} + 1} \]
          5. difference-of-sqr-1N/A

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

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

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

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

          \[\leadsto \color{blue}{\left(\frac{2}{e^{x \cdot -2} + 1} - -1\right) \cdot \left(\left(-1 - \frac{-2}{e^{x \cdot -2} + 1}\right) \cdot \frac{1}{\frac{2}{e^{x \cdot -2} + 1} - -1}\right)} \]
      3. Recombined 3 regimes into one program.
      4. Final simplification100.0%

        \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot -2 \leq -5000:\\ \;\;\;\;\frac{2}{e^{x \cdot -2} + 1} - 1\\ \mathbf{elif}\;x \cdot -2 \leq 2 \cdot 10^{-13}:\\ \;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, -0.3333333333333333, x\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{\frac{2}{e^{x \cdot -2} + 1} - -1} \cdot \left(-1 - \frac{-2}{e^{x \cdot -2} + 1}\right)\right) \cdot \left(\frac{2}{e^{x \cdot -2} + 1} - -1\right)\\ \end{array} \]
      5. Add Preprocessing

      Alternative 2: 75.7% accurate, 0.8× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.8:\\ \;\;\;\;\frac{2}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-1.3333333333333333, x, 2\right), x, -2\right), x, 2\right)} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \end{array} \]
      (FPCore (x y)
       :precision binary64
       (if (<= (/ 2.0 (+ (exp (* x -2.0)) 1.0)) 0.8)
         (- (/ 2.0 (fma (fma (fma -1.3333333333333333 x 2.0) x -2.0) x 2.0)) 1.0)
         (* 1.0 x)))
      double code(double x, double y) {
      	double tmp;
      	if ((2.0 / (exp((x * -2.0)) + 1.0)) <= 0.8) {
      		tmp = (2.0 / fma(fma(fma(-1.3333333333333333, x, 2.0), x, -2.0), x, 2.0)) - 1.0;
      	} else {
      		tmp = 1.0 * x;
      	}
      	return tmp;
      }
      
      function code(x, y)
      	tmp = 0.0
      	if (Float64(2.0 / Float64(exp(Float64(x * -2.0)) + 1.0)) <= 0.8)
      		tmp = Float64(Float64(2.0 / fma(fma(fma(-1.3333333333333333, x, 2.0), x, -2.0), x, 2.0)) - 1.0);
      	else
      		tmp = Float64(1.0 * x);
      	end
      	return tmp
      end
      
      code[x_, y_] := If[LessEqual[N[(2.0 / N[(N[Exp[N[(x * -2.0), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], 0.8], N[(N[(2.0 / N[(N[(N[(-1.3333333333333333 * x + 2.0), $MachinePrecision] * x + -2.0), $MachinePrecision] * x + 2.0), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(1.0 * x), $MachinePrecision]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.8:\\
      \;\;\;\;\frac{2}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-1.3333333333333333, x, 2\right), x, -2\right), x, 2\right)} - 1\\
      
      \mathbf{else}:\\
      \;\;\;\;1 \cdot x\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x)))) < 0.80000000000000004

        1. Initial program 100.0%

          \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
        2. Add Preprocessing
        3. Taylor expanded in x around 0

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

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

            \[\leadsto \frac{2}{\color{blue}{\left(x \cdot \left(2 + \frac{-4}{3} \cdot x\right) - 2\right) \cdot x} + 2} - 1 \]
          3. lower-fma.f64N/A

            \[\leadsto \frac{2}{\color{blue}{\mathsf{fma}\left(x \cdot \left(2 + \frac{-4}{3} \cdot x\right) - 2, x, 2\right)}} - 1 \]
          4. sub-negN/A

            \[\leadsto \frac{2}{\mathsf{fma}\left(\color{blue}{x \cdot \left(2 + \frac{-4}{3} \cdot x\right) + \left(\mathsf{neg}\left(2\right)\right)}, x, 2\right)} - 1 \]
          5. *-commutativeN/A

            \[\leadsto \frac{2}{\mathsf{fma}\left(\color{blue}{\left(2 + \frac{-4}{3} \cdot x\right) \cdot x} + \left(\mathsf{neg}\left(2\right)\right), x, 2\right)} - 1 \]
          6. metadata-evalN/A

            \[\leadsto \frac{2}{\mathsf{fma}\left(\left(2 + \frac{-4}{3} \cdot x\right) \cdot x + \color{blue}{-2}, x, 2\right)} - 1 \]
          7. lower-fma.f64N/A

            \[\leadsto \frac{2}{\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(2 + \frac{-4}{3} \cdot x, x, -2\right)}, x, 2\right)} - 1 \]
          8. +-commutativeN/A

            \[\leadsto \frac{2}{\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-4}{3} \cdot x + 2}, x, -2\right), x, 2\right)} - 1 \]
          9. lower-fma.f6497.4

            \[\leadsto \frac{2}{\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(-1.3333333333333333, x, 2\right)}, x, -2\right), x, 2\right)} - 1 \]
        5. Applied rewrites97.4%

          \[\leadsto \frac{2}{\color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-1.3333333333333333, x, 2\right), x, -2\right), x, 2\right)}} - 1 \]

        if 0.80000000000000004 < (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x))))

        1. Initial program 29.2%

          \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
        2. Add Preprocessing
        3. Taylor expanded in x around 0

          \[\leadsto \color{blue}{x \cdot \left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right)} \]
        4. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \color{blue}{\left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right) \cdot x} \]
          2. lower-*.f64N/A

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

            \[\leadsto \color{blue}{\left({x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) + 1\right)} \cdot x \]
          4. *-commutativeN/A

            \[\leadsto \left(\color{blue}{\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) \cdot {x}^{2}} + 1\right) \cdot x \]
          5. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}, {x}^{2}, 1\right)} \cdot x \]
          6. sub-negN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{{x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \left(\mathsf{neg}\left(\frac{1}{3}\right)\right)}, {x}^{2}, 1\right) \cdot x \]
          7. metadata-evalN/A

            \[\leadsto \mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \color{blue}{\frac{-1}{3}}, {x}^{2}, 1\right) \cdot x \]
          8. *-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) \cdot {x}^{2}} + \frac{-1}{3}, {x}^{2}, 1\right) \cdot x \]
          9. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}, {x}^{2}, \frac{-1}{3}\right)}, {x}^{2}, 1\right) \cdot x \]
          10. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-17}{315} \cdot {x}^{2} + \frac{2}{15}}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
          11. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-17}{315}, {x}^{2}, \frac{2}{15}\right)}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
          12. unpow2N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
          13. lower-*.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
          14. unpow2N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
          15. lower-*.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
          16. unpow2N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), x \cdot x, \frac{-1}{3}\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
          17. lower-*.f6476.2

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
        5. Applied rewrites76.2%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), x \cdot x, 1\right) \cdot x} \]
        6. Taylor expanded in x around 0

          \[\leadsto 1 \cdot x \]
        7. Step-by-step derivation
          1. Applied rewrites76.9%

            \[\leadsto 1 \cdot x \]
        8. Recombined 2 regimes into one program.
        9. Final simplification81.4%

          \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.8:\\ \;\;\;\;\frac{2}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-1.3333333333333333, x, 2\right), x, -2\right), x, 2\right)} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \]
        10. Add Preprocessing

        Alternative 3: 75.7% accurate, 0.8× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.8:\\ \;\;\;\;\frac{1}{\left(1 - x\right) \cdot \mathsf{fma}\left(x, x, 1\right)} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \end{array} \]
        (FPCore (x y)
         :precision binary64
         (if (<= (/ 2.0 (+ (exp (* x -2.0)) 1.0)) 0.8)
           (- (/ 1.0 (* (- 1.0 x) (fma x x 1.0))) 1.0)
           (* 1.0 x)))
        double code(double x, double y) {
        	double tmp;
        	if ((2.0 / (exp((x * -2.0)) + 1.0)) <= 0.8) {
        		tmp = (1.0 / ((1.0 - x) * fma(x, x, 1.0))) - 1.0;
        	} else {
        		tmp = 1.0 * x;
        	}
        	return tmp;
        }
        
        function code(x, y)
        	tmp = 0.0
        	if (Float64(2.0 / Float64(exp(Float64(x * -2.0)) + 1.0)) <= 0.8)
        		tmp = Float64(Float64(1.0 / Float64(Float64(1.0 - x) * fma(x, x, 1.0))) - 1.0);
        	else
        		tmp = Float64(1.0 * x);
        	end
        	return tmp
        end
        
        code[x_, y_] := If[LessEqual[N[(2.0 / N[(N[Exp[N[(x * -2.0), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], 0.8], N[(N[(1.0 / N[(N[(1.0 - x), $MachinePrecision] * N[(x * x + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(1.0 * x), $MachinePrecision]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.8:\\
        \;\;\;\;\frac{1}{\left(1 - x\right) \cdot \mathsf{fma}\left(x, x, 1\right)} - 1\\
        
        \mathbf{else}:\\
        \;\;\;\;1 \cdot x\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x)))) < 0.80000000000000004

          1. Initial program 100.0%

            \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
          2. Add Preprocessing
          3. Taylor expanded in x around 0

            \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
          4. Step-by-step derivation
            1. lower-+.f646.1

              \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
          5. Applied rewrites6.1%

            \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
          6. Step-by-step derivation
            1. Applied rewrites4.2%

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

              \[\leadsto \frac{1}{1 + \color{blue}{x \cdot \left(x \cdot \left(1 + -1 \cdot x\right) - 1\right)}} - 1 \]
            3. Step-by-step derivation
              1. Applied rewrites97.4%

                \[\leadsto \frac{1}{\mathsf{fma}\left(x, x, 1\right) \cdot \color{blue}{\left(1 - x\right)}} - 1 \]

              if 0.80000000000000004 < (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x))))

              1. Initial program 29.2%

                \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
              2. Add Preprocessing
              3. Taylor expanded in x around 0

                \[\leadsto \color{blue}{x \cdot \left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right)} \]
              4. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \color{blue}{\left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right) \cdot x} \]
                2. lower-*.f64N/A

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

                  \[\leadsto \color{blue}{\left({x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) + 1\right)} \cdot x \]
                4. *-commutativeN/A

                  \[\leadsto \left(\color{blue}{\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) \cdot {x}^{2}} + 1\right) \cdot x \]
                5. lower-fma.f64N/A

                  \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}, {x}^{2}, 1\right)} \cdot x \]
                6. sub-negN/A

                  \[\leadsto \mathsf{fma}\left(\color{blue}{{x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \left(\mathsf{neg}\left(\frac{1}{3}\right)\right)}, {x}^{2}, 1\right) \cdot x \]
                7. metadata-evalN/A

                  \[\leadsto \mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \color{blue}{\frac{-1}{3}}, {x}^{2}, 1\right) \cdot x \]
                8. *-commutativeN/A

                  \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) \cdot {x}^{2}} + \frac{-1}{3}, {x}^{2}, 1\right) \cdot x \]
                9. lower-fma.f64N/A

                  \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}, {x}^{2}, \frac{-1}{3}\right)}, {x}^{2}, 1\right) \cdot x \]
                10. +-commutativeN/A

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-17}{315} \cdot {x}^{2} + \frac{2}{15}}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                11. lower-fma.f64N/A

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-17}{315}, {x}^{2}, \frac{2}{15}\right)}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                12. unpow2N/A

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                13. lower-*.f64N/A

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                14. unpow2N/A

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                15. lower-*.f64N/A

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                16. unpow2N/A

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), x \cdot x, \frac{-1}{3}\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
                17. lower-*.f6476.2

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
              5. Applied rewrites76.2%

                \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), x \cdot x, 1\right) \cdot x} \]
              6. Taylor expanded in x around 0

                \[\leadsto 1 \cdot x \]
              7. Step-by-step derivation
                1. Applied rewrites76.9%

                  \[\leadsto 1 \cdot x \]
              8. Recombined 2 regimes into one program.
              9. Final simplification81.4%

                \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.8:\\ \;\;\;\;\frac{1}{\left(1 - x\right) \cdot \mathsf{fma}\left(x, x, 1\right)} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \]
              10. Add Preprocessing

              Alternative 4: 75.6% accurate, 0.8× speedup?

              \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.01:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(x, x - 1, 1\right)} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \end{array} \]
              (FPCore (x y)
               :precision binary64
               (if (<= (/ 2.0 (+ (exp (* x -2.0)) 1.0)) 0.01)
                 (- (/ 1.0 (fma x (- x 1.0) 1.0)) 1.0)
                 (* 1.0 x)))
              double code(double x, double y) {
              	double tmp;
              	if ((2.0 / (exp((x * -2.0)) + 1.0)) <= 0.01) {
              		tmp = (1.0 / fma(x, (x - 1.0), 1.0)) - 1.0;
              	} else {
              		tmp = 1.0 * x;
              	}
              	return tmp;
              }
              
              function code(x, y)
              	tmp = 0.0
              	if (Float64(2.0 / Float64(exp(Float64(x * -2.0)) + 1.0)) <= 0.01)
              		tmp = Float64(Float64(1.0 / fma(x, Float64(x - 1.0), 1.0)) - 1.0);
              	else
              		tmp = Float64(1.0 * x);
              	end
              	return tmp
              end
              
              code[x_, y_] := If[LessEqual[N[(2.0 / N[(N[Exp[N[(x * -2.0), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], 0.01], N[(N[(1.0 / N[(x * N[(x - 1.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(1.0 * x), $MachinePrecision]]
              
              \begin{array}{l}
              
              \\
              \begin{array}{l}
              \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.01:\\
              \;\;\;\;\frac{1}{\mathsf{fma}\left(x, x - 1, 1\right)} - 1\\
              
              \mathbf{else}:\\
              \;\;\;\;1 \cdot x\\
              
              
              \end{array}
              \end{array}
              
              Derivation
              1. Split input into 2 regimes
              2. if (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x)))) < 0.0100000000000000002

                1. Initial program 100.0%

                  \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                2. Add Preprocessing
                3. Taylor expanded in x around 0

                  \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
                4. Step-by-step derivation
                  1. lower-+.f645.8

                    \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
                5. Applied rewrites5.8%

                  \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
                6. Step-by-step derivation
                  1. Applied rewrites3.7%

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

                    \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{x}, x - 1, 1\right)} - 1 \]
                  3. Step-by-step derivation
                    1. Applied rewrites98.2%

                      \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{x}, x - 1, 1\right)} - 1 \]

                    if 0.0100000000000000002 < (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x))))

                    1. Initial program 29.5%

                      \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                    2. Add Preprocessing
                    3. Taylor expanded in x around 0

                      \[\leadsto \color{blue}{x \cdot \left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right)} \]
                    4. Step-by-step derivation
                      1. *-commutativeN/A

                        \[\leadsto \color{blue}{\left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right) \cdot x} \]
                      2. lower-*.f64N/A

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

                        \[\leadsto \color{blue}{\left({x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) + 1\right)} \cdot x \]
                      4. *-commutativeN/A

                        \[\leadsto \left(\color{blue}{\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) \cdot {x}^{2}} + 1\right) \cdot x \]
                      5. lower-fma.f64N/A

                        \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}, {x}^{2}, 1\right)} \cdot x \]
                      6. sub-negN/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{{x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \left(\mathsf{neg}\left(\frac{1}{3}\right)\right)}, {x}^{2}, 1\right) \cdot x \]
                      7. metadata-evalN/A

                        \[\leadsto \mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \color{blue}{\frac{-1}{3}}, {x}^{2}, 1\right) \cdot x \]
                      8. *-commutativeN/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) \cdot {x}^{2}} + \frac{-1}{3}, {x}^{2}, 1\right) \cdot x \]
                      9. lower-fma.f64N/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}, {x}^{2}, \frac{-1}{3}\right)}, {x}^{2}, 1\right) \cdot x \]
                      10. +-commutativeN/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-17}{315} \cdot {x}^{2} + \frac{2}{15}}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                      11. lower-fma.f64N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-17}{315}, {x}^{2}, \frac{2}{15}\right)}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                      12. unpow2N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                      13. lower-*.f64N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                      14. unpow2N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                      15. lower-*.f64N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                      16. unpow2N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), x \cdot x, \frac{-1}{3}\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
                      17. lower-*.f6476.0

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
                    5. Applied rewrites76.0%

                      \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), x \cdot x, 1\right) \cdot x} \]
                    6. Taylor expanded in x around 0

                      \[\leadsto 1 \cdot x \]
                    7. Step-by-step derivation
                      1. Applied rewrites76.7%

                        \[\leadsto 1 \cdot x \]
                    8. Recombined 2 regimes into one program.
                    9. Final simplification81.3%

                      \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.01:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(x, x - 1, 1\right)} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \]
                    10. Add Preprocessing

                    Alternative 5: 99.3% accurate, 0.8× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{2}{e^{x \cdot -2} + 1} - 1\\ \mathbf{if}\;x \cdot -2 \leq -5000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \cdot -2 \leq 2 \cdot 10^{-13}:\\ \;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, -0.3333333333333333, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                    (FPCore (x y)
                     :precision binary64
                     (let* ((t_0 (- (/ 2.0 (+ (exp (* x -2.0)) 1.0)) 1.0)))
                       (if (<= (* x -2.0) -5000.0)
                         t_0
                         (if (<= (* x -2.0) 2e-13)
                           (fma (* (* x x) x) -0.3333333333333333 x)
                           t_0))))
                    double code(double x, double y) {
                    	double t_0 = (2.0 / (exp((x * -2.0)) + 1.0)) - 1.0;
                    	double tmp;
                    	if ((x * -2.0) <= -5000.0) {
                    		tmp = t_0;
                    	} else if ((x * -2.0) <= 2e-13) {
                    		tmp = fma(((x * x) * x), -0.3333333333333333, x);
                    	} else {
                    		tmp = t_0;
                    	}
                    	return tmp;
                    }
                    
                    function code(x, y)
                    	t_0 = Float64(Float64(2.0 / Float64(exp(Float64(x * -2.0)) + 1.0)) - 1.0)
                    	tmp = 0.0
                    	if (Float64(x * -2.0) <= -5000.0)
                    		tmp = t_0;
                    	elseif (Float64(x * -2.0) <= 2e-13)
                    		tmp = fma(Float64(Float64(x * x) * x), -0.3333333333333333, x);
                    	else
                    		tmp = t_0;
                    	end
                    	return tmp
                    end
                    
                    code[x_, y_] := Block[{t$95$0 = N[(N[(2.0 / N[(N[Exp[N[(x * -2.0), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]}, If[LessEqual[N[(x * -2.0), $MachinePrecision], -5000.0], t$95$0, If[LessEqual[N[(x * -2.0), $MachinePrecision], 2e-13], N[(N[(N[(x * x), $MachinePrecision] * x), $MachinePrecision] * -0.3333333333333333 + x), $MachinePrecision], t$95$0]]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    t_0 := \frac{2}{e^{x \cdot -2} + 1} - 1\\
                    \mathbf{if}\;x \cdot -2 \leq -5000:\\
                    \;\;\;\;t\_0\\
                    
                    \mathbf{elif}\;x \cdot -2 \leq 2 \cdot 10^{-13}:\\
                    \;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, -0.3333333333333333, x\right)\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;t\_0\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if (*.f64 #s(literal -2 binary64) x) < -5e3 or 2.0000000000000001e-13 < (*.f64 #s(literal -2 binary64) x)

                      1. Initial program 100.0%

                        \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                      2. Add Preprocessing

                      if -5e3 < (*.f64 #s(literal -2 binary64) x) < 2.0000000000000001e-13

                      1. Initial program 6.8%

                        \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                      2. Add Preprocessing
                      3. Taylor expanded in x around 0

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

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

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

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

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

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

                          \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{3}, 1\right) \cdot x \]
                        7. lower-*.f64100.0

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

                        \[\leadsto \color{blue}{\mathsf{fma}\left(x \cdot x, -0.3333333333333333, 1\right) \cdot x} \]
                      6. Step-by-step derivation
                        1. Applied rewrites100.0%

                          \[\leadsto \mathsf{fma}\left(1, \color{blue}{x}, \left(-0.3333333333333333 \cdot \left(x \cdot x\right)\right) \cdot x\right) \]
                        2. Step-by-step derivation
                          1. Applied rewrites100.0%

                            \[\leadsto \mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \color{blue}{-0.3333333333333333}, x\right) \]
                        3. Recombined 2 regimes into one program.
                        4. Final simplification100.0%

                          \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot -2 \leq -5000:\\ \;\;\;\;\frac{2}{e^{x \cdot -2} + 1} - 1\\ \mathbf{elif}\;x \cdot -2 \leq 2 \cdot 10^{-13}:\\ \;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, -0.3333333333333333, x\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{e^{x \cdot -2} + 1} - 1\\ \end{array} \]
                        5. Add Preprocessing

                        Alternative 6: 75.3% accurate, 0.9× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.01:\\ \;\;\;\;\frac{1}{1 - x} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \end{array} \]
                        (FPCore (x y)
                         :precision binary64
                         (if (<= (/ 2.0 (+ (exp (* x -2.0)) 1.0)) 0.01)
                           (- (/ 1.0 (- 1.0 x)) 1.0)
                           (* 1.0 x)))
                        double code(double x, double y) {
                        	double tmp;
                        	if ((2.0 / (exp((x * -2.0)) + 1.0)) <= 0.01) {
                        		tmp = (1.0 / (1.0 - x)) - 1.0;
                        	} else {
                        		tmp = 1.0 * x;
                        	}
                        	return tmp;
                        }
                        
                        real(8) function code(x, y)
                            real(8), intent (in) :: x
                            real(8), intent (in) :: y
                            real(8) :: tmp
                            if ((2.0d0 / (exp((x * (-2.0d0))) + 1.0d0)) <= 0.01d0) then
                                tmp = (1.0d0 / (1.0d0 - x)) - 1.0d0
                            else
                                tmp = 1.0d0 * x
                            end if
                            code = tmp
                        end function
                        
                        public static double code(double x, double y) {
                        	double tmp;
                        	if ((2.0 / (Math.exp((x * -2.0)) + 1.0)) <= 0.01) {
                        		tmp = (1.0 / (1.0 - x)) - 1.0;
                        	} else {
                        		tmp = 1.0 * x;
                        	}
                        	return tmp;
                        }
                        
                        def code(x, y):
                        	tmp = 0
                        	if (2.0 / (math.exp((x * -2.0)) + 1.0)) <= 0.01:
                        		tmp = (1.0 / (1.0 - x)) - 1.0
                        	else:
                        		tmp = 1.0 * x
                        	return tmp
                        
                        function code(x, y)
                        	tmp = 0.0
                        	if (Float64(2.0 / Float64(exp(Float64(x * -2.0)) + 1.0)) <= 0.01)
                        		tmp = Float64(Float64(1.0 / Float64(1.0 - x)) - 1.0);
                        	else
                        		tmp = Float64(1.0 * x);
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(x, y)
                        	tmp = 0.0;
                        	if ((2.0 / (exp((x * -2.0)) + 1.0)) <= 0.01)
                        		tmp = (1.0 / (1.0 - x)) - 1.0;
                        	else
                        		tmp = 1.0 * x;
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[x_, y_] := If[LessEqual[N[(2.0 / N[(N[Exp[N[(x * -2.0), $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], 0.01], N[(N[(1.0 / N[(1.0 - x), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(1.0 * x), $MachinePrecision]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.01:\\
                        \;\;\;\;\frac{1}{1 - x} - 1\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;1 \cdot x\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 2 regimes
                        2. if (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x)))) < 0.0100000000000000002

                          1. Initial program 100.0%

                            \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                          2. Add Preprocessing
                          3. Taylor expanded in x around 0

                            \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
                          4. Step-by-step derivation
                            1. lower-+.f645.8

                              \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
                          5. Applied rewrites5.8%

                            \[\leadsto \color{blue}{\left(1 + x\right)} - 1 \]
                          6. Step-by-step derivation
                            1. Applied rewrites5.4%

                              \[\leadsto \frac{1 - x \cdot x}{\color{blue}{1 - x}} - 1 \]
                            2. Taylor expanded in x around 0

                              \[\leadsto \frac{1}{\color{blue}{1} - x} - 1 \]
                            3. Step-by-step derivation
                              1. Applied rewrites97.4%

                                \[\leadsto \frac{1}{\color{blue}{1} - x} - 1 \]

                              if 0.0100000000000000002 < (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (*.f64 #s(literal -2 binary64) x))))

                              1. Initial program 29.5%

                                \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                              2. Add Preprocessing
                              3. Taylor expanded in x around 0

                                \[\leadsto \color{blue}{x \cdot \left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right)} \]
                              4. Step-by-step derivation
                                1. *-commutativeN/A

                                  \[\leadsto \color{blue}{\left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right) \cdot x} \]
                                2. lower-*.f64N/A

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

                                  \[\leadsto \color{blue}{\left({x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) + 1\right)} \cdot x \]
                                4. *-commutativeN/A

                                  \[\leadsto \left(\color{blue}{\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) \cdot {x}^{2}} + 1\right) \cdot x \]
                                5. lower-fma.f64N/A

                                  \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}, {x}^{2}, 1\right)} \cdot x \]
                                6. sub-negN/A

                                  \[\leadsto \mathsf{fma}\left(\color{blue}{{x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \left(\mathsf{neg}\left(\frac{1}{3}\right)\right)}, {x}^{2}, 1\right) \cdot x \]
                                7. metadata-evalN/A

                                  \[\leadsto \mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \color{blue}{\frac{-1}{3}}, {x}^{2}, 1\right) \cdot x \]
                                8. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) \cdot {x}^{2}} + \frac{-1}{3}, {x}^{2}, 1\right) \cdot x \]
                                9. lower-fma.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}, {x}^{2}, \frac{-1}{3}\right)}, {x}^{2}, 1\right) \cdot x \]
                                10. +-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-17}{315} \cdot {x}^{2} + \frac{2}{15}}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                11. lower-fma.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-17}{315}, {x}^{2}, \frac{2}{15}\right)}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                12. unpow2N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                13. lower-*.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                14. unpow2N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                15. lower-*.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                16. unpow2N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), x \cdot x, \frac{-1}{3}\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
                                17. lower-*.f6476.0

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
                              5. Applied rewrites76.0%

                                \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), x \cdot x, 1\right) \cdot x} \]
                              6. Taylor expanded in x around 0

                                \[\leadsto 1 \cdot x \]
                              7. Step-by-step derivation
                                1. Applied rewrites76.7%

                                  \[\leadsto 1 \cdot x \]
                              8. Recombined 2 regimes into one program.
                              9. Final simplification81.1%

                                \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{2}{e^{x \cdot -2} + 1} \leq 0.01:\\ \;\;\;\;\frac{1}{1 - x} - 1\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \]
                              10. Add Preprocessing

                              Alternative 7: 51.7% accurate, 20.5× speedup?

                              \[\begin{array}{l} \\ 1 \cdot x \end{array} \]
                              (FPCore (x y) :precision binary64 (* 1.0 x))
                              double code(double x, double y) {
                              	return 1.0 * x;
                              }
                              
                              real(8) function code(x, y)
                                  real(8), intent (in) :: x
                                  real(8), intent (in) :: y
                                  code = 1.0d0 * x
                              end function
                              
                              public static double code(double x, double y) {
                              	return 1.0 * x;
                              }
                              
                              def code(x, y):
                              	return 1.0 * x
                              
                              function code(x, y)
                              	return Float64(1.0 * x)
                              end
                              
                              function tmp = code(x, y)
                              	tmp = 1.0 * x;
                              end
                              
                              code[x_, y_] := N[(1.0 * x), $MachinePrecision]
                              
                              \begin{array}{l}
                              
                              \\
                              1 \cdot x
                              \end{array}
                              
                              Derivation
                              1. Initial program 44.7%

                                \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                              2. Add Preprocessing
                              3. Taylor expanded in x around 0

                                \[\leadsto \color{blue}{x \cdot \left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right)} \]
                              4. Step-by-step derivation
                                1. *-commutativeN/A

                                  \[\leadsto \color{blue}{\left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right)\right) \cdot x} \]
                                2. lower-*.f64N/A

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

                                  \[\leadsto \color{blue}{\left({x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) + 1\right)} \cdot x \]
                                4. *-commutativeN/A

                                  \[\leadsto \left(\color{blue}{\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}\right) \cdot {x}^{2}} + 1\right) \cdot x \]
                                5. lower-fma.f64N/A

                                  \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) - \frac{1}{3}, {x}^{2}, 1\right)} \cdot x \]
                                6. sub-negN/A

                                  \[\leadsto \mathsf{fma}\left(\color{blue}{{x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \left(\mathsf{neg}\left(\frac{1}{3}\right)\right)}, {x}^{2}, 1\right) \cdot x \]
                                7. metadata-evalN/A

                                  \[\leadsto \mathsf{fma}\left({x}^{2} \cdot \left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) + \color{blue}{\frac{-1}{3}}, {x}^{2}, 1\right) \cdot x \]
                                8. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}\right) \cdot {x}^{2}} + \frac{-1}{3}, {x}^{2}, 1\right) \cdot x \]
                                9. lower-fma.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{2}{15} + \frac{-17}{315} \cdot {x}^{2}, {x}^{2}, \frac{-1}{3}\right)}, {x}^{2}, 1\right) \cdot x \]
                                10. +-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{-17}{315} \cdot {x}^{2} + \frac{2}{15}}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                11. lower-fma.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-17}{315}, {x}^{2}, \frac{2}{15}\right)}, {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                12. unpow2N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                13. lower-*.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, \color{blue}{x \cdot x}, \frac{2}{15}\right), {x}^{2}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                14. unpow2N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                15. lower-*.f64N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), \color{blue}{x \cdot x}, \frac{-1}{3}\right), {x}^{2}, 1\right) \cdot x \]
                                16. unpow2N/A

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{-17}{315}, x \cdot x, \frac{2}{15}\right), x \cdot x, \frac{-1}{3}\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
                                17. lower-*.f6459.9

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), \color{blue}{x \cdot x}, 1\right) \cdot x \]
                              5. Applied rewrites59.9%

                                \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.05396825396825397, x \cdot x, 0.13333333333333333\right), x \cdot x, -0.3333333333333333\right), x \cdot x, 1\right) \cdot x} \]
                              6. Taylor expanded in x around 0

                                \[\leadsto 1 \cdot x \]
                              7. Step-by-step derivation
                                1. Applied rewrites61.4%

                                  \[\leadsto 1 \cdot x \]
                                2. Add Preprocessing

                                Alternative 8: 4.2% accurate, 30.8× speedup?

                                \[\begin{array}{l} \\ 1 - 1 \end{array} \]
                                (FPCore (x y) :precision binary64 (- 1.0 1.0))
                                double code(double x, double y) {
                                	return 1.0 - 1.0;
                                }
                                
                                real(8) function code(x, y)
                                    real(8), intent (in) :: x
                                    real(8), intent (in) :: y
                                    code = 1.0d0 - 1.0d0
                                end function
                                
                                public static double code(double x, double y) {
                                	return 1.0 - 1.0;
                                }
                                
                                def code(x, y):
                                	return 1.0 - 1.0
                                
                                function code(x, y)
                                	return Float64(1.0 - 1.0)
                                end
                                
                                function tmp = code(x, y)
                                	tmp = 1.0 - 1.0;
                                end
                                
                                code[x_, y_] := N[(1.0 - 1.0), $MachinePrecision]
                                
                                \begin{array}{l}
                                
                                \\
                                1 - 1
                                \end{array}
                                
                                Derivation
                                1. Initial program 44.7%

                                  \[\frac{2}{1 + e^{-2 \cdot x}} - 1 \]
                                2. Add Preprocessing
                                3. Taylor expanded in x around 0

                                  \[\leadsto \color{blue}{1} - 1 \]
                                4. Step-by-step derivation
                                  1. Applied rewrites4.5%

                                    \[\leadsto \color{blue}{1} - 1 \]
                                  2. Add Preprocessing

                                  Reproduce

                                  ?
                                  herbie shell --seed 2024240 
                                  (FPCore (x y)
                                    :name "Logistic function from Lakshay Garg"
                                    :precision binary64
                                    (- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))