expfmod (used to be hard to sample)

Percentage Accurate: 6.9% → 63.1%
Time: 12.8s
Alternatives: 8
Speedup: 3.9×

Specification

?
\[\begin{array}{l} \\ \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \end{array} \]
(FPCore (x) :precision binary64 (* (fmod (exp x) (sqrt (cos x))) (exp (- x))))
double code(double x) {
	return fmod(exp(x), sqrt(cos(x))) * exp(-x);
}
real(8) function code(x)
    real(8), intent (in) :: x
    code = mod(exp(x), sqrt(cos(x))) * exp(-x)
end function
def code(x):
	return math.fmod(math.exp(x), math.sqrt(math.cos(x))) * math.exp(-x)
function code(x)
	return Float64(rem(exp(x), sqrt(cos(x))) * exp(Float64(-x)))
end
code[x_] := N[(N[With[{TMP1 = N[Exp[x], $MachinePrecision], TMP2 = N[Sqrt[N[Cos[x], $MachinePrecision]], $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision] * N[Exp[(-x)], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

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

\[\begin{array}{l} \\ \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \end{array} \]
(FPCore (x) :precision binary64 (* (fmod (exp x) (sqrt (cos x))) (exp (- x))))
double code(double x) {
	return fmod(exp(x), sqrt(cos(x))) * exp(-x);
}
real(8) function code(x)
    real(8), intent (in) :: x
    code = mod(exp(x), sqrt(cos(x))) * exp(-x)
end function
def code(x):
	return math.fmod(math.exp(x), math.sqrt(math.cos(x))) * math.exp(-x)
function code(x)
	return Float64(rem(exp(x), sqrt(cos(x))) * exp(Float64(-x)))
end
code[x_] := N[(N[With[{TMP1 = N[Exp[x], $MachinePrecision], TMP2 = N[Sqrt[N[Cos[x], $MachinePrecision]], $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision] * N[Exp[(-x)], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x}
\end{array}

Alternative 1: 63.1% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{-x}\\ \mathbf{if}\;x \leq -1.6 \cdot 10^{-162}:\\ \;\;\;\;\left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \left(x \cdot x\right) \cdot \mathsf{fma}\left(x, x \cdot -0.003298611111111111, -0.010416666666666666 + \frac{-0.25}{x \cdot x}\right), 1\right)\right)\right) \cdot t\_0\\ \mathbf{elif}\;x \leq 0.88:\\ \;\;\;\;\left(\left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0 \cdot \left(\left(x + 1\right) \bmod \left(\sqrt{\cos x}\right)\right)\\ \end{array} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (exp (- x))))
   (if (<= x -1.6e-162)
     (*
      (fmod
       (exp x)
       (fma
        (* x x)
        (*
         (* x x)
         (fma
          x
          (* x -0.003298611111111111)
          (+ -0.010416666666666666 (/ -0.25 (* x x)))))
        1.0))
      t_0)
     (if (<= x 0.88)
       (*
        (fmod
         (fma (* x x) (fma x 0.16666666666666666 0.5) x)
         (fma (* x x) (fma x (* x -0.010416666666666666) -0.25) 1.0))
        (fma x (fma x 0.5 -1.0) 1.0))
       (* t_0 (fmod (+ x 1.0) (sqrt (cos x))))))))
double code(double x) {
	double t_0 = exp(-x);
	double tmp;
	if (x <= -1.6e-162) {
		tmp = fmod(exp(x), fma((x * x), ((x * x) * fma(x, (x * -0.003298611111111111), (-0.010416666666666666 + (-0.25 / (x * x))))), 1.0)) * t_0;
	} else if (x <= 0.88) {
		tmp = fmod(fma((x * x), fma(x, 0.16666666666666666, 0.5), x), fma((x * x), fma(x, (x * -0.010416666666666666), -0.25), 1.0)) * fma(x, fma(x, 0.5, -1.0), 1.0);
	} else {
		tmp = t_0 * fmod((x + 1.0), sqrt(cos(x)));
	}
	return tmp;
}
function code(x)
	t_0 = exp(Float64(-x))
	tmp = 0.0
	if (x <= -1.6e-162)
		tmp = Float64(rem(exp(x), fma(Float64(x * x), Float64(Float64(x * x) * fma(x, Float64(x * -0.003298611111111111), Float64(-0.010416666666666666 + Float64(-0.25 / Float64(x * x))))), 1.0)) * t_0);
	elseif (x <= 0.88)
		tmp = Float64(rem(fma(Float64(x * x), fma(x, 0.16666666666666666, 0.5), x), fma(Float64(x * x), fma(x, Float64(x * -0.010416666666666666), -0.25), 1.0)) * fma(x, fma(x, 0.5, -1.0), 1.0));
	else
		tmp = Float64(t_0 * rem(Float64(x + 1.0), sqrt(cos(x))));
	end
	return tmp
end
code[x_] := Block[{t$95$0 = N[Exp[(-x)], $MachinePrecision]}, If[LessEqual[x, -1.6e-162], N[(N[With[{TMP1 = N[Exp[x], $MachinePrecision], TMP2 = N[(N[(x * x), $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * N[(x * N[(x * -0.003298611111111111), $MachinePrecision] + N[(-0.010416666666666666 + N[(-0.25 / N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision] * t$95$0), $MachinePrecision], If[LessEqual[x, 0.88], N[(N[With[{TMP1 = N[(N[(x * x), $MachinePrecision] * N[(x * 0.16666666666666666 + 0.5), $MachinePrecision] + x), $MachinePrecision], TMP2 = N[(N[(x * x), $MachinePrecision] * N[(x * N[(x * -0.010416666666666666), $MachinePrecision] + -0.25), $MachinePrecision] + 1.0), $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision] * N[(x * N[(x * 0.5 + -1.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(t$95$0 * N[With[{TMP1 = N[(x + 1.0), $MachinePrecision], TMP2 = N[Sqrt[N[Cos[x], $MachinePrecision]], $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := e^{-x}\\
\mathbf{if}\;x \leq -1.6 \cdot 10^{-162}:\\
\;\;\;\;\left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \left(x \cdot x\right) \cdot \mathsf{fma}\left(x, x \cdot -0.003298611111111111, -0.010416666666666666 + \frac{-0.25}{x \cdot x}\right), 1\right)\right)\right) \cdot t\_0\\

\mathbf{elif}\;x \leq 0.88:\\
\;\;\;\;\left(\left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)\\

\mathbf{else}:\\
\;\;\;\;t\_0 \cdot \left(\left(x + 1\right) \bmod \left(\sqrt{\cos x}\right)\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if x < -1.59999999999999988e-162

    1. Initial program 12.6%

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

      \[\leadsto \left(\left(e^{x}\right) \bmod \color{blue}{\left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}\right)\right)}\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
    4. Step-by-step derivation
      1. +-commutativeN/A

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

        \[\leadsto \left(\left(e^{x}\right) \bmod \color{blue}{\left(\mathsf{fma}\left({x}^{2}, {x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}, 1\right)\right)}\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      3. unpow2N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(\color{blue}{x \cdot x}, {x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      4. lower-*.f64N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(\color{blue}{x \cdot x}, {x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      5. sub-negN/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{{x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right)}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      6. unpow2N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\left(x \cdot x\right)} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      7. associate-*l*N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{x \cdot \left(x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right)\right)} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      8. metadata-evalN/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, x \cdot \left(x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right)\right) + \color{blue}{\frac{-1}{4}}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      9. lower-fma.f64N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\mathsf{fma}\left(x, x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right), \frac{-1}{4}\right)}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      10. lower-*.f64N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, \color{blue}{x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right)}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      11. sub-negN/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \color{blue}{\left(\frac{-19}{5760} \cdot {x}^{2} + \left(\mathsf{neg}\left(\frac{1}{96}\right)\right)\right)}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      12. *-commutativeN/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \left(\color{blue}{{x}^{2} \cdot \frac{-19}{5760}} + \left(\mathsf{neg}\left(\frac{1}{96}\right)\right)\right), \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      13. metadata-evalN/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \left({x}^{2} \cdot \frac{-19}{5760} + \color{blue}{\frac{-1}{96}}\right), \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      14. lower-fma.f64N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \color{blue}{\mathsf{fma}\left({x}^{2}, \frac{-19}{5760}, \frac{-1}{96}\right)}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      15. unpow2N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-19}{5760}, \frac{-1}{96}\right), \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      16. lower-*.f6412.6

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, -0.003298611111111111, -0.010416666666666666\right), -0.25\right), 1\right)\right)\right) \cdot e^{-x} \]
    5. Applied rewrites12.6%

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

      \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, {x}^{4} \cdot \color{blue}{\left(-1 \cdot \frac{\frac{1}{96} + \frac{1}{4} \cdot \frac{1}{{x}^{2}}}{{x}^{2}} - \frac{19}{5760}\right)}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
    7. Applied rewrites14.5%

      \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \left(x \cdot x\right) \cdot \color{blue}{\mathsf{fma}\left(x, x \cdot -0.003298611111111111, -0.010416666666666666 + \frac{-0.25}{x \cdot x}\right)}, 1\right)\right)\right) \cdot e^{-x} \]

    if -1.59999999999999988e-162 < x < 0.880000000000000004

    1. Initial program 6.7%

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

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

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

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

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

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{96} \cdot {x}^{2} - \frac{1}{4}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      5. sub-negN/A

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

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \frac{-1}{96} \cdot \color{blue}{\left(x \cdot x\right)} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      7. associate-*r*N/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\left(\frac{-1}{96} \cdot x\right) \cdot x} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      8. *-commutativeN/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{x \cdot \left(\frac{-1}{96} \cdot x\right)} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      9. metadata-evalN/A

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

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\mathsf{fma}\left(x, \frac{-1}{96} \cdot x, \frac{-1}{4}\right)}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      11. *-commutativeN/A

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, \color{blue}{x \cdot \frac{-1}{96}}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      12. lower-*.f646.6

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, \color{blue}{x \cdot -0.010416666666666666}, -0.25\right), 1\right)\right)\right) \cdot e^{-x} \]
    5. Applied rewrites6.6%

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

      \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \color{blue}{\left(1 + x \cdot \left(\frac{1}{2} \cdot x - 1\right)\right)} \]
    7. Step-by-step derivation
      1. +-commutativeN/A

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

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

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

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

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, x \cdot \frac{1}{2} + \color{blue}{-1}, 1\right) \]
      6. lower-fma.f646.1

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \color{blue}{\mathsf{fma}\left(x, 0.5, -1\right)}, 1\right) \]
    8. Applied rewrites6.1%

      \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \color{blue}{\mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)} \]
    9. Taylor expanded in x around 0

      \[\leadsto \left(\color{blue}{\left(1 + x \cdot \left(1 + x \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot x\right)\right)\right)} \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, \frac{1}{2}, -1\right), 1\right) \]
    10. Step-by-step derivation
      1. +-commutativeN/A

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

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

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

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

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

        \[\leadsto \left(\left(\mathsf{fma}\left(x, \mathsf{fma}\left(x, \color{blue}{x \cdot \frac{1}{6}} + \frac{1}{2}, 1\right), 1\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, \frac{1}{2}, -1\right), 1\right) \]
      7. lower-fma.f646.1

        \[\leadsto \left(\left(\mathsf{fma}\left(x, \mathsf{fma}\left(x, \color{blue}{\mathsf{fma}\left(x, 0.16666666666666666, 0.5\right)}, 1\right), 1\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right) \]
    11. Applied rewrites6.1%

      \[\leadsto \left(\color{blue}{\left(\mathsf{fma}\left(x, \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), 1\right), 1\right)\right)} \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right) \]
    12. Taylor expanded in x around inf

      \[\leadsto \left(\left({x}^{3} \cdot \color{blue}{\left(\frac{1}{6} + \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{{x}^{2}}\right)\right)}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, \frac{1}{2}, -1\right), 1\right) \]
    13. Step-by-step derivation
      1. Applied rewrites60.1%

        \[\leadsto \left(\left(\mathsf{fma}\left(x \cdot x, \color{blue}{\mathsf{fma}\left(x, 0.16666666666666666, 0.5\right)}, x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right) \]

      if 0.880000000000000004 < x

      1. Initial program 0.3%

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

        \[\leadsto \left(\color{blue}{\left(1 + x\right)} \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
      4. Step-by-step derivation
        1. +-commutativeN/A

          \[\leadsto \left(\color{blue}{\left(x + 1\right)} \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        2. lower-+.f6498.8

          \[\leadsto \left(\color{blue}{\left(x + 1\right)} \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \]
      5. Applied rewrites98.8%

        \[\leadsto \left(\color{blue}{\left(x + 1\right)} \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \]
    14. Recombined 3 regimes into one program.
    15. Final simplification60.1%

      \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -1.6 \cdot 10^{-162}:\\ \;\;\;\;\left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \left(x \cdot x\right) \cdot \mathsf{fma}\left(x, x \cdot -0.003298611111111111, -0.010416666666666666 + \frac{-0.25}{x \cdot x}\right), 1\right)\right)\right) \cdot e^{-x}\\ \mathbf{elif}\;x \leq 0.88:\\ \;\;\;\;\left(\left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)\\ \mathbf{else}:\\ \;\;\;\;e^{-x} \cdot \left(\left(x + 1\right) \bmod \left(\sqrt{\cos x}\right)\right)\\ \end{array} \]
    16. Add Preprocessing

    Alternative 2: 62.3% accurate, 0.4× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := e^{-x}\\ t_1 := t\_0 \cdot \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)\\ \mathbf{if}\;t\_1 \leq 10^{-9}:\\ \;\;\;\;\left(\left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)\\ \mathbf{elif}\;t\_1 \leq 2:\\ \;\;\;\;t\_0 \cdot \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \mathsf{fma}\left(x \cdot x, -0.003298611111111111, -0.010416666666666666\right), -0.25\right), 1\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(1 \bmod 1\right) \cdot 1\\ \end{array} \end{array} \]
    (FPCore (x)
     :precision binary64
     (let* ((t_0 (exp (- x))) (t_1 (* t_0 (fmod (exp x) (sqrt (cos x))))))
       (if (<= t_1 1e-9)
         (*
          (fmod
           (fma (* x x) (fma x 0.16666666666666666 0.5) x)
           (fma (* x x) (fma x (* x -0.010416666666666666) -0.25) 1.0))
          (fma x (fma x 0.5 -1.0) 1.0))
         (if (<= t_1 2.0)
           (*
            t_0
            (fmod
             (exp x)
             (fma
              (* x x)
              (fma
               x
               (* x (fma (* x x) -0.003298611111111111 -0.010416666666666666))
               -0.25)
              1.0)))
           (* (fmod 1.0 1.0) 1.0)))))
    double code(double x) {
    	double t_0 = exp(-x);
    	double t_1 = t_0 * fmod(exp(x), sqrt(cos(x)));
    	double tmp;
    	if (t_1 <= 1e-9) {
    		tmp = fmod(fma((x * x), fma(x, 0.16666666666666666, 0.5), x), fma((x * x), fma(x, (x * -0.010416666666666666), -0.25), 1.0)) * fma(x, fma(x, 0.5, -1.0), 1.0);
    	} else if (t_1 <= 2.0) {
    		tmp = t_0 * fmod(exp(x), fma((x * x), fma(x, (x * fma((x * x), -0.003298611111111111, -0.010416666666666666)), -0.25), 1.0));
    	} else {
    		tmp = fmod(1.0, 1.0) * 1.0;
    	}
    	return tmp;
    }
    
    function code(x)
    	t_0 = exp(Float64(-x))
    	t_1 = Float64(t_0 * rem(exp(x), sqrt(cos(x))))
    	tmp = 0.0
    	if (t_1 <= 1e-9)
    		tmp = Float64(rem(fma(Float64(x * x), fma(x, 0.16666666666666666, 0.5), x), fma(Float64(x * x), fma(x, Float64(x * -0.010416666666666666), -0.25), 1.0)) * fma(x, fma(x, 0.5, -1.0), 1.0));
    	elseif (t_1 <= 2.0)
    		tmp = Float64(t_0 * rem(exp(x), fma(Float64(x * x), fma(x, Float64(x * fma(Float64(x * x), -0.003298611111111111, -0.010416666666666666)), -0.25), 1.0)));
    	else
    		tmp = Float64(rem(1.0, 1.0) * 1.0);
    	end
    	return tmp
    end
    
    code[x_] := Block[{t$95$0 = N[Exp[(-x)], $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 * N[With[{TMP1 = N[Exp[x], $MachinePrecision], TMP2 = N[Sqrt[N[Cos[x], $MachinePrecision]], $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, 1e-9], N[(N[With[{TMP1 = N[(N[(x * x), $MachinePrecision] * N[(x * 0.16666666666666666 + 0.5), $MachinePrecision] + x), $MachinePrecision], TMP2 = N[(N[(x * x), $MachinePrecision] * N[(x * N[(x * -0.010416666666666666), $MachinePrecision] + -0.25), $MachinePrecision] + 1.0), $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision] * N[(x * N[(x * 0.5 + -1.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 2.0], N[(t$95$0 * N[With[{TMP1 = N[Exp[x], $MachinePrecision], TMP2 = N[(N[(x * x), $MachinePrecision] * N[(x * N[(x * N[(N[(x * x), $MachinePrecision] * -0.003298611111111111 + -0.010416666666666666), $MachinePrecision]), $MachinePrecision] + -0.25), $MachinePrecision] + 1.0), $MachinePrecision]}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision]), $MachinePrecision], N[(N[With[{TMP1 = 1.0, TMP2 = 1.0}, Mod[Abs[TMP1], Abs[TMP2]] * Sign[TMP1]], $MachinePrecision] * 1.0), $MachinePrecision]]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := e^{-x}\\
    t_1 := t\_0 \cdot \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)\\
    \mathbf{if}\;t\_1 \leq 10^{-9}:\\
    \;\;\;\;\left(\left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)\\
    
    \mathbf{elif}\;t\_1 \leq 2:\\
    \;\;\;\;t\_0 \cdot \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \mathsf{fma}\left(x \cdot x, -0.003298611111111111, -0.010416666666666666\right), -0.25\right), 1\right)\right)\right)\\
    
    \mathbf{else}:\\
    \;\;\;\;\left(1 \bmod 1\right) \cdot 1\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) < 1.00000000000000006e-9

      1. Initial program 4.7%

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

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

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

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

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

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{96} \cdot {x}^{2} - \frac{1}{4}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        5. sub-negN/A

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

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \frac{-1}{96} \cdot \color{blue}{\left(x \cdot x\right)} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        7. associate-*r*N/A

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\left(\frac{-1}{96} \cdot x\right) \cdot x} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        8. *-commutativeN/A

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{x \cdot \left(\frac{-1}{96} \cdot x\right)} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        9. metadata-evalN/A

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

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\mathsf{fma}\left(x, \frac{-1}{96} \cdot x, \frac{-1}{4}\right)}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        11. *-commutativeN/A

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, \color{blue}{x \cdot \frac{-1}{96}}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        12. lower-*.f644.7

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

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

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \color{blue}{\left(1 + x \cdot \left(\frac{1}{2} \cdot x - 1\right)\right)} \]
      7. Step-by-step derivation
        1. +-commutativeN/A

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

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

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

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

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, x \cdot \frac{1}{2} + \color{blue}{-1}, 1\right) \]
        6. lower-fma.f644.7

          \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \color{blue}{\mathsf{fma}\left(x, 0.5, -1\right)}, 1\right) \]
      8. Applied rewrites4.7%

        \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \color{blue}{\mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)} \]
      9. Taylor expanded in x around 0

        \[\leadsto \left(\color{blue}{\left(1 + x \cdot \left(1 + x \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot x\right)\right)\right)} \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, \frac{1}{2}, -1\right), 1\right) \]
      10. Step-by-step derivation
        1. +-commutativeN/A

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

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

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

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

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

          \[\leadsto \left(\left(\mathsf{fma}\left(x, \mathsf{fma}\left(x, \color{blue}{x \cdot \frac{1}{6}} + \frac{1}{2}, 1\right), 1\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, \frac{1}{2}, -1\right), 1\right) \]
        7. lower-fma.f644.7

          \[\leadsto \left(\left(\mathsf{fma}\left(x, \mathsf{fma}\left(x, \color{blue}{\mathsf{fma}\left(x, 0.16666666666666666, 0.5\right)}, 1\right), 1\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right) \]
      11. Applied rewrites4.7%

        \[\leadsto \left(\color{blue}{\left(\mathsf{fma}\left(x, \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), 1\right), 1\right)\right)} \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right) \]
      12. Taylor expanded in x around inf

        \[\leadsto \left(\left({x}^{3} \cdot \color{blue}{\left(\frac{1}{6} + \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{{x}^{2}}\right)\right)}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \frac{-1}{96}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, \frac{1}{2}, -1\right), 1\right) \]
      13. Step-by-step derivation
        1. Applied rewrites51.6%

          \[\leadsto \left(\left(\mathsf{fma}\left(x \cdot x, \color{blue}{\mathsf{fma}\left(x, 0.16666666666666666, 0.5\right)}, x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right) \]

        if 1.00000000000000006e-9 < (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) < 2

        1. Initial program 93.4%

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

          \[\leadsto \left(\left(e^{x}\right) \bmod \color{blue}{\left(1 + {x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}\right)\right)}\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

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

            \[\leadsto \left(\left(e^{x}\right) \bmod \color{blue}{\left(\mathsf{fma}\left({x}^{2}, {x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}, 1\right)\right)}\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          3. unpow2N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(\color{blue}{x \cdot x}, {x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          4. lower-*.f64N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(\color{blue}{x \cdot x}, {x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) - \frac{1}{4}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          5. sub-negN/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{{x}^{2} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right)}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          6. unpow2N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\left(x \cdot x\right)} \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right) + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          7. associate-*l*N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{x \cdot \left(x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right)\right)} + \left(\mathsf{neg}\left(\frac{1}{4}\right)\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          8. metadata-evalN/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, x \cdot \left(x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right)\right) + \color{blue}{\frac{-1}{4}}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          9. lower-fma.f64N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \color{blue}{\mathsf{fma}\left(x, x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right), \frac{-1}{4}\right)}, 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          10. lower-*.f64N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, \color{blue}{x \cdot \left(\frac{-19}{5760} \cdot {x}^{2} - \frac{1}{96}\right)}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          11. sub-negN/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \color{blue}{\left(\frac{-19}{5760} \cdot {x}^{2} + \left(\mathsf{neg}\left(\frac{1}{96}\right)\right)\right)}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          12. *-commutativeN/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \left(\color{blue}{{x}^{2} \cdot \frac{-19}{5760}} + \left(\mathsf{neg}\left(\frac{1}{96}\right)\right)\right), \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          13. metadata-evalN/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \left({x}^{2} \cdot \frac{-19}{5760} + \color{blue}{\frac{-1}{96}}\right), \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          14. lower-fma.f64N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \color{blue}{\mathsf{fma}\left({x}^{2}, \frac{-19}{5760}, \frac{-1}{96}\right)}, \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          15. unpow2N/A

            \[\leadsto \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-19}{5760}, \frac{-1}{96}\right), \frac{-1}{4}\right), 1\right)\right)\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
          16. lower-*.f6488.7

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

          \[\leadsto \left(\left(e^{x}\right) \bmod \color{blue}{\left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \mathsf{fma}\left(x \cdot x, -0.003298611111111111, -0.010416666666666666\right), -0.25\right), 1\right)\right)}\right) \cdot e^{-x} \]

        if 2 < (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))

        1. Initial program 0.0%

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

          \[\leadsto \left(\left(e^{x}\right) \bmod \color{blue}{1}\right) \cdot e^{\mathsf{neg}\left(x\right)} \]
        4. Step-by-step derivation
          1. Applied rewrites0.0%

            \[\leadsto \left(\left(e^{x}\right) \bmod \color{blue}{1}\right) \cdot e^{-x} \]
          2. Taylor expanded in x around 0

            \[\leadsto \left(\left(e^{x}\right) \bmod 1\right) \cdot \color{blue}{1} \]
          3. Step-by-step derivation
            1. Applied rewrites0.1%

              \[\leadsto \left(\left(e^{x}\right) \bmod 1\right) \cdot \color{blue}{1} \]
            2. Taylor expanded in x around 0

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

                \[\leadsto \left(\color{blue}{1} \bmod 1\right) \cdot 1 \]
            4. Recombined 3 regimes into one program.
            5. Final simplification62.3%

              \[\leadsto \begin{array}{l} \mathbf{if}\;e^{-x} \cdot \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \leq 10^{-9}:\\ \;\;\;\;\left(\left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, 0.16666666666666666, 0.5\right), x\right)\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot -0.010416666666666666, -0.25\right), 1\right)\right)\right) \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(x, 0.5, -1\right), 1\right)\\ \mathbf{elif}\;e^{-x} \cdot \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \leq 2:\\ \;\;\;\;e^{-x} \cdot \left(\left(e^{x}\right) \bmod \left(\mathsf{fma}\left(x \cdot x, \mathsf{fma}\left(x, x \cdot \mathsf{fma}\left(x \cdot x, -0.003298611111111111, -0.010416666666666666\right), -0.25\right), 1\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(1 \bmod 1\right) \cdot 1\\ \end{array} \]
            6. Add Preprocessing

            Reproduce

            ?
            herbie shell --seed 2024227 
            (FPCore (x)
              :name "expfmod (used to be hard to sample)"
              :precision binary64
              (* (fmod (exp x) (sqrt (cos x))) (exp (- x))))