exp neg sub

Percentage Accurate: 100.0% → 100.0%
Time: 6.8s
Alternatives: 8
Speedup: 1.0×

Specification

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

\\
e^{-\left(1 - x \cdot x\right)}
\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: 100.0% accurate, 1.0× speedup?

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

\\
e^{-\left(1 - x \cdot x\right)}
\end{array}

Alternative 1: 100.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ e^{\mathsf{fma}\left(x, x, -1\right)} \end{array} \]
(FPCore (x) :precision binary64 (exp (fma x x -1.0)))
double code(double x) {
	return exp(fma(x, x, -1.0));
}
function code(x)
	return exp(fma(x, x, -1.0))
end
code[x_] := N[Exp[N[(x * x + -1.0), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
e^{\mathsf{fma}\left(x, x, -1\right)}
\end{array}
Derivation
  1. Initial program 100.0%

    \[e^{-\left(1 - x \cdot x\right)} \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift-neg.f64N/A

      \[\leadsto e^{\color{blue}{\mathsf{neg}\left(\left(1 - x \cdot x\right)\right)}} \]
    2. neg-sub0N/A

      \[\leadsto e^{\color{blue}{0 - \left(1 - x \cdot x\right)}} \]
    3. lift--.f64N/A

      \[\leadsto e^{0 - \color{blue}{\left(1 - x \cdot x\right)}} \]
    4. associate--r-N/A

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

      \[\leadsto e^{\color{blue}{-1} + x \cdot x} \]
    6. +-commutativeN/A

      \[\leadsto e^{\color{blue}{x \cdot x + -1}} \]
    7. lift-*.f64N/A

      \[\leadsto e^{\color{blue}{x \cdot x} + -1} \]
    8. lower-fma.f64100.0

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

    \[\leadsto e^{\color{blue}{\mathsf{fma}\left(x, x, -1\right)}} \]
  5. Add Preprocessing

Alternative 2: 99.7% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \cdot x \leq 2:\\ \;\;\;\;\mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \left(x \cdot x\right) \cdot 0.5, \left(-1 - x \cdot x\right) \cdot \frac{-1}{\mathsf{E}\left(\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;e^{x \cdot x}\\ \end{array} \end{array} \]
(FPCore (x)
 :precision binary64
 (if (<= (* x x) 2.0)
   (fma (/ (* x x) (E)) (* (* x x) 0.5) (* (- -1.0 (* x x)) (/ -1.0 (E))))
   (exp (* x x))))
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;x \cdot x \leq 2:\\
\;\;\;\;\mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \left(x \cdot x\right) \cdot 0.5, \left(-1 - x \cdot x\right) \cdot \frac{-1}{\mathsf{E}\left(\right)}\right)\\

\mathbf{else}:\\
\;\;\;\;e^{x \cdot x}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (*.f64 x x) < 2

    1. Initial program 100.0%

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

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

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

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

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

        \[\leadsto \color{blue}{\left({x}^{2} \cdot \left(\frac{1}{2} \cdot {x}^{2} + 1\right) + 1\right) \cdot e^{-1}} \]
      5. distribute-lft-inN/A

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

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

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

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

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

      \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{4}, 0.5, \mathsf{fma}\left(x, x, 1\right)\right) \cdot e^{-1}} \]
    6. Step-by-step derivation
      1. Applied rewrites99.3%

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

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

        if 2 < (*.f64 x x)

        1. Initial program 100.0%

          \[e^{-\left(1 - x \cdot x\right)} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. lift-neg.f64N/A

            \[\leadsto e^{\color{blue}{\mathsf{neg}\left(\left(1 - x \cdot x\right)\right)}} \]
          2. neg-sub0N/A

            \[\leadsto e^{\color{blue}{0 - \left(1 - x \cdot x\right)}} \]
          3. lift--.f64N/A

            \[\leadsto e^{0 - \color{blue}{\left(1 - x \cdot x\right)}} \]
          4. associate--r-N/A

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

            \[\leadsto e^{\color{blue}{-1} + x \cdot x} \]
          6. +-commutativeN/A

            \[\leadsto e^{\color{blue}{x \cdot x + -1}} \]
          7. lift-*.f64N/A

            \[\leadsto e^{\color{blue}{x \cdot x} + -1} \]
          8. lower-fma.f64100.0

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

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

          \[\leadsto e^{\color{blue}{{x}^{2}}} \]
        6. Step-by-step derivation
          1. unpow2N/A

            \[\leadsto e^{\color{blue}{x \cdot x}} \]
          2. lower-*.f64100.0

            \[\leadsto e^{\color{blue}{x \cdot x}} \]
        7. Applied rewrites100.0%

          \[\leadsto e^{\color{blue}{x \cdot x}} \]
      3. Recombined 2 regimes into one program.
      4. Final simplification99.6%

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

      Alternative 3: 88.1% accurate, 1.9× speedup?

      \[\begin{array}{l} \\ \mathsf{fma}\left(\left(\left(-x\right) \cdot x\right) \cdot \left(0.5 \cdot \left(x \cdot x\right)\right), \frac{-1}{\mathsf{E}\left(\right)}, \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right) \end{array} \]
      (FPCore (x)
       :precision binary64
       (fma (* (* (- x) x) (* 0.5 (* x x))) (/ -1.0 (E)) (/ (fma x x 1.0) (E))))
      \begin{array}{l}
      
      \\
      \mathsf{fma}\left(\left(\left(-x\right) \cdot x\right) \cdot \left(0.5 \cdot \left(x \cdot x\right)\right), \frac{-1}{\mathsf{E}\left(\right)}, \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right)
      \end{array}
      
      Derivation
      1. Initial program 100.0%

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

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

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

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

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

          \[\leadsto \color{blue}{\left({x}^{2} \cdot \left(\frac{1}{2} \cdot {x}^{2} + 1\right) + 1\right) \cdot e^{-1}} \]
        5. distribute-lft-inN/A

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

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

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

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

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

        \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{4}, 0.5, \mathsf{fma}\left(x, x, 1\right)\right) \cdot e^{-1}} \]
      6. Step-by-step derivation
        1. Applied rewrites86.7%

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

            \[\leadsto \mathsf{fma}\left(\left(\left(-x\right) \cdot x\right) \cdot \left(0.5 \cdot \left(x \cdot x\right)\right), \color{blue}{\frac{-1}{\mathsf{E}\left(\right)}}, \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right) \]
          2. Final simplification87.0%

            \[\leadsto \mathsf{fma}\left(\left(\left(-x\right) \cdot x\right) \cdot \left(0.5 \cdot \left(x \cdot x\right)\right), \frac{-1}{\mathsf{E}\left(\right)}, \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right) \]
          3. Add Preprocessing

          Alternative 4: 88.1% accurate, 2.2× speedup?

          \[\begin{array}{l} \\ \mathsf{fma}\left(x, \frac{x}{\mathsf{E}\left(\right)} \cdot \left(0.5 \cdot \left(x \cdot x\right)\right), \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right) \end{array} \]
          (FPCore (x)
           :precision binary64
           (fma x (* (/ x (E)) (* 0.5 (* x x))) (/ (fma x x 1.0) (E))))
          \begin{array}{l}
          
          \\
          \mathsf{fma}\left(x, \frac{x}{\mathsf{E}\left(\right)} \cdot \left(0.5 \cdot \left(x \cdot x\right)\right), \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right)
          \end{array}
          
          Derivation
          1. Initial program 100.0%

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

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

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

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

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

              \[\leadsto \color{blue}{\left({x}^{2} \cdot \left(\frac{1}{2} \cdot {x}^{2} + 1\right) + 1\right) \cdot e^{-1}} \]
            5. distribute-lft-inN/A

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

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

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

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

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

            \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{4}, 0.5, \mathsf{fma}\left(x, x, 1\right)\right) \cdot e^{-1}} \]
          6. Step-by-step derivation
            1. Applied rewrites86.7%

              \[\leadsto \mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \color{blue}{\left(x \cdot x\right) \cdot 0.5}, \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right) \]
            2. Step-by-step derivation
              1. Applied rewrites86.7%

                \[\leadsto \mathsf{fma}\left(x, \color{blue}{\frac{x}{\mathsf{E}\left(\right)} \cdot \left(0.5 \cdot \left(x \cdot x\right)\right)}, \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right) \]
              2. Final simplification86.7%

                \[\leadsto \mathsf{fma}\left(x, \frac{x}{\mathsf{E}\left(\right)} \cdot \left(0.5 \cdot \left(x \cdot x\right)\right), \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}\right) \]
              3. Add Preprocessing

              Alternative 5: 87.7% accurate, 2.5× speedup?

              \[\begin{array}{l} \\ \mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \left(x \cdot x\right) \cdot 0.5, \frac{1}{\mathsf{E}\left(\right)}\right) \end{array} \]
              (FPCore (x)
               :precision binary64
               (fma (/ (* x x) (E)) (* (* x x) 0.5) (/ 1.0 (E))))
              \begin{array}{l}
              
              \\
              \mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \left(x \cdot x\right) \cdot 0.5, \frac{1}{\mathsf{E}\left(\right)}\right)
              \end{array}
              
              Derivation
              1. Initial program 100.0%

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

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

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

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

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

                  \[\leadsto \color{blue}{\left({x}^{2} \cdot \left(\frac{1}{2} \cdot {x}^{2} + 1\right) + 1\right) \cdot e^{-1}} \]
                5. distribute-lft-inN/A

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

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

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

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

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

                \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{4}, 0.5, \mathsf{fma}\left(x, x, 1\right)\right) \cdot e^{-1}} \]
              6. Step-by-step derivation
                1. Applied rewrites86.7%

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

                  \[\leadsto \mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \left(x \cdot x\right) \cdot \frac{1}{2}, \frac{1}{\mathsf{E}\left(\right)}\right) \]
                3. Step-by-step derivation
                  1. Applied rewrites85.4%

                    \[\leadsto \mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \left(x \cdot x\right) \cdot 0.5, \frac{1}{\mathsf{E}\left(\right)}\right) \]
                  2. Final simplification85.4%

                    \[\leadsto \mathsf{fma}\left(\frac{x \cdot x}{\mathsf{E}\left(\right)}, \left(x \cdot x\right) \cdot 0.5, \frac{1}{\mathsf{E}\left(\right)}\right) \]
                  3. Add Preprocessing

                  Alternative 6: 76.5% accurate, 4.0× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \cdot x \leq 5 \cdot 10^{-5}:\\ \;\;\;\;\frac{1}{\mathsf{E}\left(\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{\mathsf{E}\left(\right)} \cdot x\\ \end{array} \end{array} \]
                  (FPCore (x)
                   :precision binary64
                   (if (<= (* x x) 5e-5) (/ 1.0 (E)) (* (/ x (E)) x)))
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  \mathbf{if}\;x \cdot x \leq 5 \cdot 10^{-5}:\\
                  \;\;\;\;\frac{1}{\mathsf{E}\left(\right)}\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;\frac{x}{\mathsf{E}\left(\right)} \cdot x\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 2 regimes
                  2. if (*.f64 x x) < 5.00000000000000024e-5

                    1. Initial program 100.0%

                      \[e^{-\left(1 - x \cdot x\right)} \]
                    2. Add Preprocessing
                    3. Step-by-step derivation
                      1. lift-exp.f64N/A

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

                        \[\leadsto e^{\color{blue}{\mathsf{neg}\left(\left(1 - x \cdot x\right)\right)}} \]
                      3. exp-negN/A

                        \[\leadsto \color{blue}{\frac{1}{e^{1 - x \cdot x}}} \]
                      4. lift--.f64N/A

                        \[\leadsto \frac{1}{e^{\color{blue}{1 - x \cdot x}}} \]
                      5. exp-diffN/A

                        \[\leadsto \frac{1}{\color{blue}{\frac{e^{1}}{e^{x \cdot x}}}} \]
                      6. clear-numN/A

                        \[\leadsto \color{blue}{\frac{e^{x \cdot x}}{e^{1}}} \]
                      7. lower-/.f64N/A

                        \[\leadsto \color{blue}{\frac{e^{x \cdot x}}{e^{1}}} \]
                      8. lift-*.f64N/A

                        \[\leadsto \frac{e^{\color{blue}{x \cdot x}}}{e^{1}} \]
                      9. exp-prodN/A

                        \[\leadsto \frac{\color{blue}{{\left(e^{x}\right)}^{x}}}{e^{1}} \]
                      10. lower-pow.f64N/A

                        \[\leadsto \frac{\color{blue}{{\left(e^{x}\right)}^{x}}}{e^{1}} \]
                      11. lower-exp.f64N/A

                        \[\leadsto \frac{{\color{blue}{\left(e^{x}\right)}}^{x}}{e^{1}} \]
                      12. exp-1-eN/A

                        \[\leadsto \frac{{\left(e^{x}\right)}^{x}}{\color{blue}{\mathsf{E}\left(\right)}} \]
                      13. lower-E.f6499.9

                        \[\leadsto \frac{{\left(e^{x}\right)}^{x}}{\color{blue}{\mathsf{E}\left(\right)}} \]
                    4. Applied rewrites99.9%

                      \[\leadsto \color{blue}{\frac{{\left(e^{x}\right)}^{x}}{\mathsf{E}\left(\right)}} \]
                    5. Taylor expanded in x around 0

                      \[\leadsto \color{blue}{\frac{1}{\mathsf{E}\left(\right)} + \frac{{x}^{2}}{\mathsf{E}\left(\right)}} \]
                    6. Step-by-step derivation
                      1. e-exp-1N/A

                        \[\leadsto \frac{1}{\color{blue}{e^{1}}} + \frac{{x}^{2}}{\mathsf{E}\left(\right)} \]
                      2. rec-expN/A

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

                        \[\leadsto e^{\color{blue}{-1}} + \frac{{x}^{2}}{\mathsf{E}\left(\right)} \]
                      4. *-rgt-identityN/A

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

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

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

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

                        \[\leadsto e^{-1} + {x}^{2} \cdot e^{\color{blue}{-1}} \]
                      9. distribute-rgt1-inN/A

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

                        \[\leadsto \left({x}^{2} + 1\right) \cdot e^{\color{blue}{\mathsf{neg}\left(1\right)}} \]
                      11. rec-expN/A

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

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

                        \[\leadsto \color{blue}{\frac{\left({x}^{2} + 1\right) \cdot 1}{\mathsf{E}\left(\right)}} \]
                      14. distribute-lft1-inN/A

                        \[\leadsto \frac{\color{blue}{{x}^{2} \cdot 1 + 1}}{\mathsf{E}\left(\right)} \]
                      15. rgt-mult-inverseN/A

                        \[\leadsto \frac{{x}^{2} \cdot 1 + \color{blue}{{x}^{2} \cdot \frac{1}{{x}^{2}}}}{\mathsf{E}\left(\right)} \]
                      16. distribute-lft-inN/A

                        \[\leadsto \frac{\color{blue}{{x}^{2} \cdot \left(1 + \frac{1}{{x}^{2}}\right)}}{\mathsf{E}\left(\right)} \]
                      17. distribute-lft-inN/A

                        \[\leadsto \frac{\color{blue}{{x}^{2} \cdot 1 + {x}^{2} \cdot \frac{1}{{x}^{2}}}}{\mathsf{E}\left(\right)} \]
                      18. rgt-mult-inverseN/A

                        \[\leadsto \frac{{x}^{2} \cdot 1 + \color{blue}{1}}{\mathsf{E}\left(\right)} \]
                      19. *-rgt-identityN/A

                        \[\leadsto \frac{\color{blue}{{x}^{2}} + 1}{\mathsf{E}\left(\right)} \]
                    7. Applied rewrites99.2%

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

                      \[\leadsto \frac{1}{\mathsf{E}\left(\right)} \]
                    9. Step-by-step derivation
                      1. Applied rewrites97.5%

                        \[\leadsto \frac{1}{\mathsf{E}\left(\right)} \]

                      if 5.00000000000000024e-5 < (*.f64 x x)

                      1. Initial program 100.0%

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

                        \[\leadsto \color{blue}{e^{-1} + {x}^{2} \cdot e^{-1}} \]
                      4. Step-by-step derivation
                        1. distribute-rgt1-inN/A

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

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

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

                          \[\leadsto \color{blue}{\mathsf{fma}\left(x, x, 1\right)} \cdot e^{-1} \]
                        5. lower-exp.f6448.7

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

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

                        \[\leadsto {x}^{2} \cdot \color{blue}{e^{-1}} \]
                      7. Step-by-step derivation
                        1. Applied rewrites48.7%

                          \[\leadsto \frac{x \cdot x}{\color{blue}{\mathsf{E}\left(\right)}} \]
                        2. Step-by-step derivation
                          1. Applied rewrites48.7%

                            \[\leadsto \frac{x}{\mathsf{E}\left(\right)} \cdot x \]
                        3. Recombined 2 regimes into one program.
                        4. Final simplification74.0%

                          \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot x \leq 5 \cdot 10^{-5}:\\ \;\;\;\;\frac{1}{\mathsf{E}\left(\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{\mathsf{E}\left(\right)} \cdot x\\ \end{array} \]
                        5. Add Preprocessing

                        Alternative 7: 76.8% accurate, 6.2× speedup?

                        \[\begin{array}{l} \\ \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)} \end{array} \]
                        (FPCore (x) :precision binary64 (/ (fma x x 1.0) (E)))
                        \begin{array}{l}
                        
                        \\
                        \frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}
                        \end{array}
                        
                        Derivation
                        1. Initial program 100.0%

                          \[e^{-\left(1 - x \cdot x\right)} \]
                        2. Add Preprocessing
                        3. Step-by-step derivation
                          1. lift-exp.f64N/A

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

                            \[\leadsto e^{\color{blue}{\mathsf{neg}\left(\left(1 - x \cdot x\right)\right)}} \]
                          3. exp-negN/A

                            \[\leadsto \color{blue}{\frac{1}{e^{1 - x \cdot x}}} \]
                          4. lift--.f64N/A

                            \[\leadsto \frac{1}{e^{\color{blue}{1 - x \cdot x}}} \]
                          5. exp-diffN/A

                            \[\leadsto \frac{1}{\color{blue}{\frac{e^{1}}{e^{x \cdot x}}}} \]
                          6. clear-numN/A

                            \[\leadsto \color{blue}{\frac{e^{x \cdot x}}{e^{1}}} \]
                          7. lower-/.f64N/A

                            \[\leadsto \color{blue}{\frac{e^{x \cdot x}}{e^{1}}} \]
                          8. lift-*.f64N/A

                            \[\leadsto \frac{e^{\color{blue}{x \cdot x}}}{e^{1}} \]
                          9. exp-prodN/A

                            \[\leadsto \frac{\color{blue}{{\left(e^{x}\right)}^{x}}}{e^{1}} \]
                          10. lower-pow.f64N/A

                            \[\leadsto \frac{\color{blue}{{\left(e^{x}\right)}^{x}}}{e^{1}} \]
                          11. lower-exp.f64N/A

                            \[\leadsto \frac{{\color{blue}{\left(e^{x}\right)}}^{x}}{e^{1}} \]
                          12. exp-1-eN/A

                            \[\leadsto \frac{{\left(e^{x}\right)}^{x}}{\color{blue}{\mathsf{E}\left(\right)}} \]
                          13. lower-E.f64100.0

                            \[\leadsto \frac{{\left(e^{x}\right)}^{x}}{\color{blue}{\mathsf{E}\left(\right)}} \]
                        4. Applied rewrites100.0%

                          \[\leadsto \color{blue}{\frac{{\left(e^{x}\right)}^{x}}{\mathsf{E}\left(\right)}} \]
                        5. Taylor expanded in x around 0

                          \[\leadsto \color{blue}{\frac{1}{\mathsf{E}\left(\right)} + \frac{{x}^{2}}{\mathsf{E}\left(\right)}} \]
                        6. Step-by-step derivation
                          1. e-exp-1N/A

                            \[\leadsto \frac{1}{\color{blue}{e^{1}}} + \frac{{x}^{2}}{\mathsf{E}\left(\right)} \]
                          2. rec-expN/A

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

                            \[\leadsto e^{\color{blue}{-1}} + \frac{{x}^{2}}{\mathsf{E}\left(\right)} \]
                          4. *-rgt-identityN/A

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

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

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

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

                            \[\leadsto e^{-1} + {x}^{2} \cdot e^{\color{blue}{-1}} \]
                          9. distribute-rgt1-inN/A

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

                            \[\leadsto \left({x}^{2} + 1\right) \cdot e^{\color{blue}{\mathsf{neg}\left(1\right)}} \]
                          11. rec-expN/A

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

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

                            \[\leadsto \color{blue}{\frac{\left({x}^{2} + 1\right) \cdot 1}{\mathsf{E}\left(\right)}} \]
                          14. distribute-lft1-inN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2} \cdot 1 + 1}}{\mathsf{E}\left(\right)} \]
                          15. rgt-mult-inverseN/A

                            \[\leadsto \frac{{x}^{2} \cdot 1 + \color{blue}{{x}^{2} \cdot \frac{1}{{x}^{2}}}}{\mathsf{E}\left(\right)} \]
                          16. distribute-lft-inN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2} \cdot \left(1 + \frac{1}{{x}^{2}}\right)}}{\mathsf{E}\left(\right)} \]
                          17. distribute-lft-inN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2} \cdot 1 + {x}^{2} \cdot \frac{1}{{x}^{2}}}}{\mathsf{E}\left(\right)} \]
                          18. rgt-mult-inverseN/A

                            \[\leadsto \frac{{x}^{2} \cdot 1 + \color{blue}{1}}{\mathsf{E}\left(\right)} \]
                          19. *-rgt-identityN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2}} + 1}{\mathsf{E}\left(\right)} \]
                        7. Applied rewrites74.9%

                          \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(x, x, 1\right)}{\mathsf{E}\left(\right)}} \]
                        8. Add Preprocessing

                        Alternative 8: 51.7% accurate, 9.3× speedup?

                        \[\begin{array}{l} \\ \frac{1}{\mathsf{E}\left(\right)} \end{array} \]
                        (FPCore (x) :precision binary64 (/ 1.0 (E)))
                        \begin{array}{l}
                        
                        \\
                        \frac{1}{\mathsf{E}\left(\right)}
                        \end{array}
                        
                        Derivation
                        1. Initial program 100.0%

                          \[e^{-\left(1 - x \cdot x\right)} \]
                        2. Add Preprocessing
                        3. Step-by-step derivation
                          1. lift-exp.f64N/A

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

                            \[\leadsto e^{\color{blue}{\mathsf{neg}\left(\left(1 - x \cdot x\right)\right)}} \]
                          3. exp-negN/A

                            \[\leadsto \color{blue}{\frac{1}{e^{1 - x \cdot x}}} \]
                          4. lift--.f64N/A

                            \[\leadsto \frac{1}{e^{\color{blue}{1 - x \cdot x}}} \]
                          5. exp-diffN/A

                            \[\leadsto \frac{1}{\color{blue}{\frac{e^{1}}{e^{x \cdot x}}}} \]
                          6. clear-numN/A

                            \[\leadsto \color{blue}{\frac{e^{x \cdot x}}{e^{1}}} \]
                          7. lower-/.f64N/A

                            \[\leadsto \color{blue}{\frac{e^{x \cdot x}}{e^{1}}} \]
                          8. lift-*.f64N/A

                            \[\leadsto \frac{e^{\color{blue}{x \cdot x}}}{e^{1}} \]
                          9. exp-prodN/A

                            \[\leadsto \frac{\color{blue}{{\left(e^{x}\right)}^{x}}}{e^{1}} \]
                          10. lower-pow.f64N/A

                            \[\leadsto \frac{\color{blue}{{\left(e^{x}\right)}^{x}}}{e^{1}} \]
                          11. lower-exp.f64N/A

                            \[\leadsto \frac{{\color{blue}{\left(e^{x}\right)}}^{x}}{e^{1}} \]
                          12. exp-1-eN/A

                            \[\leadsto \frac{{\left(e^{x}\right)}^{x}}{\color{blue}{\mathsf{E}\left(\right)}} \]
                          13. lower-E.f64100.0

                            \[\leadsto \frac{{\left(e^{x}\right)}^{x}}{\color{blue}{\mathsf{E}\left(\right)}} \]
                        4. Applied rewrites100.0%

                          \[\leadsto \color{blue}{\frac{{\left(e^{x}\right)}^{x}}{\mathsf{E}\left(\right)}} \]
                        5. Taylor expanded in x around 0

                          \[\leadsto \color{blue}{\frac{1}{\mathsf{E}\left(\right)} + \frac{{x}^{2}}{\mathsf{E}\left(\right)}} \]
                        6. Step-by-step derivation
                          1. e-exp-1N/A

                            \[\leadsto \frac{1}{\color{blue}{e^{1}}} + \frac{{x}^{2}}{\mathsf{E}\left(\right)} \]
                          2. rec-expN/A

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

                            \[\leadsto e^{\color{blue}{-1}} + \frac{{x}^{2}}{\mathsf{E}\left(\right)} \]
                          4. *-rgt-identityN/A

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

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

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

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

                            \[\leadsto e^{-1} + {x}^{2} \cdot e^{\color{blue}{-1}} \]
                          9. distribute-rgt1-inN/A

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

                            \[\leadsto \left({x}^{2} + 1\right) \cdot e^{\color{blue}{\mathsf{neg}\left(1\right)}} \]
                          11. rec-expN/A

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

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

                            \[\leadsto \color{blue}{\frac{\left({x}^{2} + 1\right) \cdot 1}{\mathsf{E}\left(\right)}} \]
                          14. distribute-lft1-inN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2} \cdot 1 + 1}}{\mathsf{E}\left(\right)} \]
                          15. rgt-mult-inverseN/A

                            \[\leadsto \frac{{x}^{2} \cdot 1 + \color{blue}{{x}^{2} \cdot \frac{1}{{x}^{2}}}}{\mathsf{E}\left(\right)} \]
                          16. distribute-lft-inN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2} \cdot \left(1 + \frac{1}{{x}^{2}}\right)}}{\mathsf{E}\left(\right)} \]
                          17. distribute-lft-inN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2} \cdot 1 + {x}^{2} \cdot \frac{1}{{x}^{2}}}}{\mathsf{E}\left(\right)} \]
                          18. rgt-mult-inverseN/A

                            \[\leadsto \frac{{x}^{2} \cdot 1 + \color{blue}{1}}{\mathsf{E}\left(\right)} \]
                          19. *-rgt-identityN/A

                            \[\leadsto \frac{\color{blue}{{x}^{2}} + 1}{\mathsf{E}\left(\right)} \]
                        7. Applied rewrites74.9%

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

                          \[\leadsto \frac{1}{\mathsf{E}\left(\right)} \]
                        9. Step-by-step derivation
                          1. Applied rewrites52.2%

                            \[\leadsto \frac{1}{\mathsf{E}\left(\right)} \]
                          2. Add Preprocessing

                          Reproduce

                          ?
                          herbie shell --seed 2024318 
                          (FPCore (x)
                            :name "exp neg sub"
                            :precision binary64
                            (exp (- (- 1.0 (* x x)))))