bug500 (missed optimization)

Percentage Accurate: 69.1% → 99.6%
Time: 6.5s
Alternatives: 14
Speedup: 6.5×

Specification

?
\[-1000 < x \land x < 1000\]
\[\begin{array}{l} \\ \sin x - x \end{array} \]
(FPCore (x) :precision binary64 (- (sin x) x))
double code(double x) {
	return sin(x) - x;
}
real(8) function code(x)
    real(8), intent (in) :: x
    code = sin(x) - x
end function
public static double code(double x) {
	return Math.sin(x) - x;
}
def code(x):
	return math.sin(x) - x
function code(x)
	return Float64(sin(x) - x)
end
function tmp = code(x)
	tmp = sin(x) - x;
end
code[x_] := N[(N[Sin[x], $MachinePrecision] - x), $MachinePrecision]
\begin{array}{l}

\\
\sin x - 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 14 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 69.1% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \sin x - x \end{array} \]
(FPCore (x) :precision binary64 (- (sin x) x))
double code(double x) {
	return sin(x) - x;
}
real(8) function code(x)
    real(8), intent (in) :: x
    code = sin(x) - x
end function
public static double code(double x) {
	return Math.sin(x) - x;
}
def code(x):
	return math.sin(x) - x
function code(x)
	return Float64(sin(x) - x)
end
function tmp = code(x)
	tmp = sin(x) - x;
end
code[x_] := N[(N[Sin[x], $MachinePrecision] - x), $MachinePrecision]
\begin{array}{l}

\\
\sin x - x
\end{array}

Alternative 1: 99.6% accurate, 0.0× speedup?

\[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ \begin{array}{l} t_0 := {\sin x\_m}^{2}\\ t_1 := \sin x\_m + x\_m\\ t_2 := t\_1 \cdot x\_m\\ t_3 := {t\_2}^{3} + {\sin x\_m}^{6}\\ x\_s \cdot \begin{array}{l} \mathbf{if}\;\sin x\_m - x\_m \leq -0.001:\\ \;\;\;\;\mathsf{fma}\left(t\_1, \frac{{\sin x\_m}^{3}}{t\_3} \cdot \left(\left(t\_2 - t\_0\right) \cdot x\_m\right), \frac{{\sin x\_m}^{7}}{t\_3} - \frac{{x\_m}^{3}}{\mathsf{fma}\left(t\_1, x\_m, t\_0\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\ \end{array} \end{array} \end{array} \]
x\_m = (fabs.f64 x)
x\_s = (copysign.f64 #s(literal 1 binary64) x)
(FPCore (x_s x_m)
 :precision binary64
 (let* ((t_0 (pow (sin x_m) 2.0))
        (t_1 (+ (sin x_m) x_m))
        (t_2 (* t_1 x_m))
        (t_3 (+ (pow t_2 3.0) (pow (sin x_m) 6.0))))
   (*
    x_s
    (if (<= (- (sin x_m) x_m) -0.001)
      (fma
       t_1
       (* (/ (pow (sin x_m) 3.0) t_3) (* (- t_2 t_0) x_m))
       (- (/ (pow (sin x_m) 7.0) t_3) (/ (pow x_m 3.0) (fma t_1 x_m t_0))))
      (/
       (* -0.027777777777777776 (pow x_m 3.0))
       (fma 0.008333333333333333 (* x_m x_m) 0.16666666666666666))))))
x\_m = fabs(x);
x\_s = copysign(1.0, x);
double code(double x_s, double x_m) {
	double t_0 = pow(sin(x_m), 2.0);
	double t_1 = sin(x_m) + x_m;
	double t_2 = t_1 * x_m;
	double t_3 = pow(t_2, 3.0) + pow(sin(x_m), 6.0);
	double tmp;
	if ((sin(x_m) - x_m) <= -0.001) {
		tmp = fma(t_1, ((pow(sin(x_m), 3.0) / t_3) * ((t_2 - t_0) * x_m)), ((pow(sin(x_m), 7.0) / t_3) - (pow(x_m, 3.0) / fma(t_1, x_m, t_0))));
	} else {
		tmp = (-0.027777777777777776 * pow(x_m, 3.0)) / fma(0.008333333333333333, (x_m * x_m), 0.16666666666666666);
	}
	return x_s * tmp;
}
x\_m = abs(x)
x\_s = copysign(1.0, x)
function code(x_s, x_m)
	t_0 = sin(x_m) ^ 2.0
	t_1 = Float64(sin(x_m) + x_m)
	t_2 = Float64(t_1 * x_m)
	t_3 = Float64((t_2 ^ 3.0) + (sin(x_m) ^ 6.0))
	tmp = 0.0
	if (Float64(sin(x_m) - x_m) <= -0.001)
		tmp = fma(t_1, Float64(Float64((sin(x_m) ^ 3.0) / t_3) * Float64(Float64(t_2 - t_0) * x_m)), Float64(Float64((sin(x_m) ^ 7.0) / t_3) - Float64((x_m ^ 3.0) / fma(t_1, x_m, t_0))));
	else
		tmp = Float64(Float64(-0.027777777777777776 * (x_m ^ 3.0)) / fma(0.008333333333333333, Float64(x_m * x_m), 0.16666666666666666));
	end
	return Float64(x_s * tmp)
end
x\_m = N[Abs[x], $MachinePrecision]
x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[x$95$s_, x$95$m_] := Block[{t$95$0 = N[Power[N[Sin[x$95$m], $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$1 = N[(N[Sin[x$95$m], $MachinePrecision] + x$95$m), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 * x$95$m), $MachinePrecision]}, Block[{t$95$3 = N[(N[Power[t$95$2, 3.0], $MachinePrecision] + N[Power[N[Sin[x$95$m], $MachinePrecision], 6.0], $MachinePrecision]), $MachinePrecision]}, N[(x$95$s * If[LessEqual[N[(N[Sin[x$95$m], $MachinePrecision] - x$95$m), $MachinePrecision], -0.001], N[(t$95$1 * N[(N[(N[Power[N[Sin[x$95$m], $MachinePrecision], 3.0], $MachinePrecision] / t$95$3), $MachinePrecision] * N[(N[(t$95$2 - t$95$0), $MachinePrecision] * x$95$m), $MachinePrecision]), $MachinePrecision] + N[(N[(N[Power[N[Sin[x$95$m], $MachinePrecision], 7.0], $MachinePrecision] / t$95$3), $MachinePrecision] - N[(N[Power[x$95$m, 3.0], $MachinePrecision] / N[(t$95$1 * x$95$m + t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(-0.027777777777777776 * N[Power[x$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + 0.16666666666666666), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]]]]
\begin{array}{l}
x\_m = \left|x\right|
\\
x\_s = \mathsf{copysign}\left(1, x\right)

\\
\begin{array}{l}
t_0 := {\sin x\_m}^{2}\\
t_1 := \sin x\_m + x\_m\\
t_2 := t\_1 \cdot x\_m\\
t_3 := {t\_2}^{3} + {\sin x\_m}^{6}\\
x\_s \cdot \begin{array}{l}
\mathbf{if}\;\sin x\_m - x\_m \leq -0.001:\\
\;\;\;\;\mathsf{fma}\left(t\_1, \frac{{\sin x\_m}^{3}}{t\_3} \cdot \left(\left(t\_2 - t\_0\right) \cdot x\_m\right), \frac{{\sin x\_m}^{7}}{t\_3} - \frac{{x\_m}^{3}}{\mathsf{fma}\left(t\_1, x\_m, t\_0\right)}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\


\end{array}
\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (-.f64 (sin.f64 x) x) < -1e-3

    1. Initial program 98.8%

      \[\sin x - x \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \color{blue}{\sin x - x} \]
      2. flip3--N/A

        \[\leadsto \color{blue}{\frac{{\sin x}^{3} - {x}^{3}}{\sin x \cdot \sin x + \left(x \cdot x + \sin x \cdot x\right)}} \]
      3. div-subN/A

        \[\leadsto \color{blue}{\frac{{\sin x}^{3}}{\sin x \cdot \sin x + \left(x \cdot x + \sin x \cdot x\right)} - \frac{{x}^{3}}{\sin x \cdot \sin x + \left(x \cdot x + \sin x \cdot x\right)}} \]
      4. sub-negN/A

        \[\leadsto \color{blue}{\frac{{\sin x}^{3}}{\sin x \cdot \sin x + \left(x \cdot x + \sin x \cdot x\right)} + \left(\mathsf{neg}\left(\frac{{x}^{3}}{\sin x \cdot \sin x + \left(x \cdot x + \sin x \cdot x\right)}\right)\right)} \]
      5. flip3-+N/A

        \[\leadsto \frac{{\sin x}^{3}}{\color{blue}{\frac{{\left(\sin x \cdot \sin x\right)}^{3} + {\left(x \cdot x + \sin x \cdot x\right)}^{3}}{\left(\sin x \cdot \sin x\right) \cdot \left(\sin x \cdot \sin x\right) + \left(\left(x \cdot x + \sin x \cdot x\right) \cdot \left(x \cdot x + \sin x \cdot x\right) - \left(\sin x \cdot \sin x\right) \cdot \left(x \cdot x + \sin x \cdot x\right)\right)}}} + \left(\mathsf{neg}\left(\frac{{x}^{3}}{\sin x \cdot \sin x + \left(x \cdot x + \sin x \cdot x\right)}\right)\right) \]
      6. associate-/r/N/A

        \[\leadsto \color{blue}{\frac{{\sin x}^{3}}{{\left(\sin x \cdot \sin x\right)}^{3} + {\left(x \cdot x + \sin x \cdot x\right)}^{3}} \cdot \left(\left(\sin x \cdot \sin x\right) \cdot \left(\sin x \cdot \sin x\right) + \left(\left(x \cdot x + \sin x \cdot x\right) \cdot \left(x \cdot x + \sin x \cdot x\right) - \left(\sin x \cdot \sin x\right) \cdot \left(x \cdot x + \sin x \cdot x\right)\right)\right)} + \left(\mathsf{neg}\left(\frac{{x}^{3}}{\sin x \cdot \sin x + \left(x \cdot x + \sin x \cdot x\right)}\right)\right) \]
    4. Applied rewrites100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{{\sin x}^{3}}{{\left(\left(\sin x + x\right) \cdot x\right)}^{3} + {\sin x}^{6}}, \mathsf{fma}\left(\left(\sin x + x\right) \cdot x, \left(\sin x + x\right) \cdot x - {\sin x}^{2}, {\sin x}^{4}\right), -\frac{{x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}\right)} \]
    5. Applied rewrites100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sin x + x, \left(\left(\left(\sin x + x\right) \cdot x - {\sin x}^{2}\right) \cdot x\right) \cdot \frac{{\sin x}^{3}}{{\sin x}^{6} + {\left(\left(\sin x + x\right) \cdot x\right)}^{3}}, \frac{{\sin x}^{7}}{{\sin x}^{6} + {\left(\left(\sin x + x\right) \cdot x\right)}^{3}} - \frac{{x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}\right)} \]

    if -1e-3 < (-.f64 (sin.f64 x) x)

    1. Initial program 66.0%

      \[\sin x - x \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0

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

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

        \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
      3. sub-negN/A

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

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

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

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

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

        \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{1}{120}, \frac{-1}{6}\right) \cdot {x}^{3} \]
      9. lower-pow.f6498.1

        \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
    5. Applied rewrites98.1%

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

        \[\leadsto \frac{\mathsf{fma}\left(6.944444444444444 \cdot 10^{-5}, {x}^{4}, -0.027777777777777776\right) \cdot {x}^{3}}{\color{blue}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}} \]
      2. Taylor expanded in x around 0

        \[\leadsto \frac{\frac{-1}{36} \cdot {x}^{3}}{\mathsf{fma}\left(\frac{1}{120}, x \cdot x, \frac{1}{6}\right)} \]
      3. Step-by-step derivation
        1. Applied rewrites98.3%

          \[\leadsto \frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)} \]
      4. Recombined 2 regimes into one program.
      5. Final simplification98.3%

        \[\leadsto \begin{array}{l} \mathbf{if}\;\sin x - x \leq -0.001:\\ \;\;\;\;\mathsf{fma}\left(\sin x + x, \frac{{\sin x}^{3}}{{\left(\left(\sin x + x\right) \cdot x\right)}^{3} + {\sin x}^{6}} \cdot \left(\left(\left(\sin x + x\right) \cdot x - {\sin x}^{2}\right) \cdot x\right), \frac{{\sin x}^{7}}{{\left(\left(\sin x + x\right) \cdot x\right)}^{3} + {\sin x}^{6}} - \frac{{x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}\\ \end{array} \]
      6. Add Preprocessing

      Alternative 2: 99.6% accurate, 0.1× speedup?

      \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ \begin{array}{l} t_0 := x\_m - \sin x\_m\\ t_1 := {\sin x\_m}^{2}\\ x\_s \cdot \begin{array}{l} \mathbf{if}\;\sin x\_m - x\_m \leq -0.001:\\ \;\;\;\;\frac{t\_1 - x\_m \cdot x\_m}{\frac{x\_m \cdot x\_m}{t\_0} - \frac{t\_1}{t\_0}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\ \end{array} \end{array} \end{array} \]
      x\_m = (fabs.f64 x)
      x\_s = (copysign.f64 #s(literal 1 binary64) x)
      (FPCore (x_s x_m)
       :precision binary64
       (let* ((t_0 (- x_m (sin x_m))) (t_1 (pow (sin x_m) 2.0)))
         (*
          x_s
          (if (<= (- (sin x_m) x_m) -0.001)
            (/ (- t_1 (* x_m x_m)) (- (/ (* x_m x_m) t_0) (/ t_1 t_0)))
            (/
             (* -0.027777777777777776 (pow x_m 3.0))
             (fma 0.008333333333333333 (* x_m x_m) 0.16666666666666666))))))
      x\_m = fabs(x);
      x\_s = copysign(1.0, x);
      double code(double x_s, double x_m) {
      	double t_0 = x_m - sin(x_m);
      	double t_1 = pow(sin(x_m), 2.0);
      	double tmp;
      	if ((sin(x_m) - x_m) <= -0.001) {
      		tmp = (t_1 - (x_m * x_m)) / (((x_m * x_m) / t_0) - (t_1 / t_0));
      	} else {
      		tmp = (-0.027777777777777776 * pow(x_m, 3.0)) / fma(0.008333333333333333, (x_m * x_m), 0.16666666666666666);
      	}
      	return x_s * tmp;
      }
      
      x\_m = abs(x)
      x\_s = copysign(1.0, x)
      function code(x_s, x_m)
      	t_0 = Float64(x_m - sin(x_m))
      	t_1 = sin(x_m) ^ 2.0
      	tmp = 0.0
      	if (Float64(sin(x_m) - x_m) <= -0.001)
      		tmp = Float64(Float64(t_1 - Float64(x_m * x_m)) / Float64(Float64(Float64(x_m * x_m) / t_0) - Float64(t_1 / t_0)));
      	else
      		tmp = Float64(Float64(-0.027777777777777776 * (x_m ^ 3.0)) / fma(0.008333333333333333, Float64(x_m * x_m), 0.16666666666666666));
      	end
      	return Float64(x_s * tmp)
      end
      
      x\_m = N[Abs[x], $MachinePrecision]
      x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
      code[x$95$s_, x$95$m_] := Block[{t$95$0 = N[(x$95$m - N[Sin[x$95$m], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Power[N[Sin[x$95$m], $MachinePrecision], 2.0], $MachinePrecision]}, N[(x$95$s * If[LessEqual[N[(N[Sin[x$95$m], $MachinePrecision] - x$95$m), $MachinePrecision], -0.001], N[(N[(t$95$1 - N[(x$95$m * x$95$m), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(x$95$m * x$95$m), $MachinePrecision] / t$95$0), $MachinePrecision] - N[(t$95$1 / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(-0.027777777777777776 * N[Power[x$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + 0.16666666666666666), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]]
      
      \begin{array}{l}
      x\_m = \left|x\right|
      \\
      x\_s = \mathsf{copysign}\left(1, x\right)
      
      \\
      \begin{array}{l}
      t_0 := x\_m - \sin x\_m\\
      t_1 := {\sin x\_m}^{2}\\
      x\_s \cdot \begin{array}{l}
      \mathbf{if}\;\sin x\_m - x\_m \leq -0.001:\\
      \;\;\;\;\frac{t\_1 - x\_m \cdot x\_m}{\frac{x\_m \cdot x\_m}{t\_0} - \frac{t\_1}{t\_0}}\\
      
      \mathbf{else}:\\
      \;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\
      
      
      \end{array}
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if (-.f64 (sin.f64 x) x) < -1e-3

        1. Initial program 98.8%

          \[\sin x - x \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. lift--.f64N/A

            \[\leadsto \color{blue}{\sin x - x} \]
          2. sub-negN/A

            \[\leadsto \color{blue}{\sin x + \left(\mathsf{neg}\left(x\right)\right)} \]
          3. +-commutativeN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(x\right)\right) + \sin x} \]
          4. flip-+N/A

            \[\leadsto \color{blue}{\frac{\left(\mathsf{neg}\left(x\right)\right) \cdot \left(\mathsf{neg}\left(x\right)\right) - \sin x \cdot \sin x}{\left(\mathsf{neg}\left(x\right)\right) - \sin x}} \]
          5. lower-/.f64N/A

            \[\leadsto \color{blue}{\frac{\left(\mathsf{neg}\left(x\right)\right) \cdot \left(\mathsf{neg}\left(x\right)\right) - \sin x \cdot \sin x}{\left(\mathsf{neg}\left(x\right)\right) - \sin x}} \]
          6. sqr-negN/A

            \[\leadsto \frac{\color{blue}{x \cdot x} - \sin x \cdot \sin x}{\left(\mathsf{neg}\left(x\right)\right) - \sin x} \]
          7. lower--.f64N/A

            \[\leadsto \frac{\color{blue}{x \cdot x - \sin x \cdot \sin x}}{\left(\mathsf{neg}\left(x\right)\right) - \sin x} \]
          8. lower-*.f64N/A

            \[\leadsto \frac{\color{blue}{x \cdot x} - \sin x \cdot \sin x}{\left(\mathsf{neg}\left(x\right)\right) - \sin x} \]
          9. pow2N/A

            \[\leadsto \frac{x \cdot x - \color{blue}{{\sin x}^{2}}}{\left(\mathsf{neg}\left(x\right)\right) - \sin x} \]
          10. lower-pow.f64N/A

            \[\leadsto \frac{x \cdot x - \color{blue}{{\sin x}^{2}}}{\left(\mathsf{neg}\left(x\right)\right) - \sin x} \]
          11. lower--.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) - \sin x}} \]
          12. lower-neg.f6498.2

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\left(-x\right)} - \sin x} \]
        4. Applied rewrites98.2%

          \[\leadsto \color{blue}{\frac{x \cdot x - {\sin x}^{2}}{\left(-x\right) - \sin x}} \]
        5. Step-by-step derivation
          1. lift--.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\left(-x\right) - \sin x}} \]
          2. flip--N/A

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

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{\color{blue}{\left(\mathsf{neg}\left(x\right)\right)} \cdot \left(-x\right) - \sin x \cdot \sin x}{\left(-x\right) + \sin x}} \]
          4. lift-neg.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{\left(\mathsf{neg}\left(x\right)\right) \cdot \color{blue}{\left(\mathsf{neg}\left(x\right)\right)} - \sin x \cdot \sin x}{\left(-x\right) + \sin x}} \]
          5. sqr-negN/A

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

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{\color{blue}{x \cdot x} - \sin x \cdot \sin x}{\left(-x\right) + \sin x}} \]
          7. unpow2N/A

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

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

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

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x - {\sin x}^{2}}{\sin x + \color{blue}{\left(\mathsf{neg}\left(x\right)\right)}}} \]
          11. sub-negN/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\sin x - x}}} \]
          12. lift-sin.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\sin x} - x}} \]
          13. sub-divN/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\frac{x \cdot x}{\sin x - x} - \frac{{\sin x}^{2}}{\sin x - x}}} \]
          14. lower--.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\frac{x \cdot x}{\sin x - x} - \frac{{\sin x}^{2}}{\sin x - x}}} \]
          15. lower-/.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\frac{x \cdot x}{\sin x - x}} - \frac{{\sin x}^{2}}{\sin x - x}} \]
          16. lift-sin.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x}{\color{blue}{\sin x} - x} - \frac{{\sin x}^{2}}{\sin x - x}} \]
          17. lower--.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x}{\color{blue}{\sin x - x}} - \frac{{\sin x}^{2}}{\sin x - x}} \]
          18. lower-/.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x}{\sin x - x} - \color{blue}{\frac{{\sin x}^{2}}{\sin x - x}}} \]
          19. lift-sin.f64N/A

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x}{\sin x - x} - \frac{{\sin x}^{2}}{\color{blue}{\sin x} - x}} \]
          20. lower--.f6498.8

            \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\frac{x \cdot x}{\sin x - x} - \frac{{\sin x}^{2}}{\color{blue}{\sin x - x}}} \]
        6. Applied rewrites98.8%

          \[\leadsto \frac{x \cdot x - {\sin x}^{2}}{\color{blue}{\frac{x \cdot x}{\sin x - x} - \frac{{\sin x}^{2}}{\sin x - x}}} \]

        if -1e-3 < (-.f64 (sin.f64 x) x)

        1. Initial program 66.0%

          \[\sin x - x \]
        2. Add Preprocessing
        3. Taylor expanded in x around 0

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

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

            \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
          3. sub-negN/A

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

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

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

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

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

            \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{1}{120}, \frac{-1}{6}\right) \cdot {x}^{3} \]
          9. lower-pow.f6498.1

            \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
        5. Applied rewrites98.1%

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

            \[\leadsto \frac{\mathsf{fma}\left(6.944444444444444 \cdot 10^{-5}, {x}^{4}, -0.027777777777777776\right) \cdot {x}^{3}}{\color{blue}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}} \]
          2. Taylor expanded in x around 0

            \[\leadsto \frac{\frac{-1}{36} \cdot {x}^{3}}{\mathsf{fma}\left(\frac{1}{120}, x \cdot x, \frac{1}{6}\right)} \]
          3. Step-by-step derivation
            1. Applied rewrites98.3%

              \[\leadsto \frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)} \]
          4. Recombined 2 regimes into one program.
          5. Final simplification98.3%

            \[\leadsto \begin{array}{l} \mathbf{if}\;\sin x - x \leq -0.001:\\ \;\;\;\;\frac{{\sin x}^{2} - x \cdot x}{\frac{x \cdot x}{x - \sin x} - \frac{{\sin x}^{2}}{x - \sin x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}\\ \end{array} \]
          6. Add Preprocessing

          Alternative 3: 99.6% accurate, 0.3× speedup?

          \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \begin{array}{l} \mathbf{if}\;\sin x\_m - x\_m \leq -0.001:\\ \;\;\;\;\frac{\left(\frac{\sin x\_m}{x\_m} - 1\right) \cdot {x\_m}^{3}}{x\_m \cdot x\_m}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\ \end{array} \end{array} \]
          x\_m = (fabs.f64 x)
          x\_s = (copysign.f64 #s(literal 1 binary64) x)
          (FPCore (x_s x_m)
           :precision binary64
           (*
            x_s
            (if (<= (- (sin x_m) x_m) -0.001)
              (/ (* (- (/ (sin x_m) x_m) 1.0) (pow x_m 3.0)) (* x_m x_m))
              (/
               (* -0.027777777777777776 (pow x_m 3.0))
               (fma 0.008333333333333333 (* x_m x_m) 0.16666666666666666)))))
          x\_m = fabs(x);
          x\_s = copysign(1.0, x);
          double code(double x_s, double x_m) {
          	double tmp;
          	if ((sin(x_m) - x_m) <= -0.001) {
          		tmp = (((sin(x_m) / x_m) - 1.0) * pow(x_m, 3.0)) / (x_m * x_m);
          	} else {
          		tmp = (-0.027777777777777776 * pow(x_m, 3.0)) / fma(0.008333333333333333, (x_m * x_m), 0.16666666666666666);
          	}
          	return x_s * tmp;
          }
          
          x\_m = abs(x)
          x\_s = copysign(1.0, x)
          function code(x_s, x_m)
          	tmp = 0.0
          	if (Float64(sin(x_m) - x_m) <= -0.001)
          		tmp = Float64(Float64(Float64(Float64(sin(x_m) / x_m) - 1.0) * (x_m ^ 3.0)) / Float64(x_m * x_m));
          	else
          		tmp = Float64(Float64(-0.027777777777777776 * (x_m ^ 3.0)) / fma(0.008333333333333333, Float64(x_m * x_m), 0.16666666666666666));
          	end
          	return Float64(x_s * tmp)
          end
          
          x\_m = N[Abs[x], $MachinePrecision]
          x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
          code[x$95$s_, x$95$m_] := N[(x$95$s * If[LessEqual[N[(N[Sin[x$95$m], $MachinePrecision] - x$95$m), $MachinePrecision], -0.001], N[(N[(N[(N[(N[Sin[x$95$m], $MachinePrecision] / x$95$m), $MachinePrecision] - 1.0), $MachinePrecision] * N[Power[x$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[(x$95$m * x$95$m), $MachinePrecision]), $MachinePrecision], N[(N[(-0.027777777777777776 * N[Power[x$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + 0.16666666666666666), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
          
          \begin{array}{l}
          x\_m = \left|x\right|
          \\
          x\_s = \mathsf{copysign}\left(1, x\right)
          
          \\
          x\_s \cdot \begin{array}{l}
          \mathbf{if}\;\sin x\_m - x\_m \leq -0.001:\\
          \;\;\;\;\frac{\left(\frac{\sin x\_m}{x\_m} - 1\right) \cdot {x\_m}^{3}}{x\_m \cdot x\_m}\\
          
          \mathbf{else}:\\
          \;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 2 regimes
          2. if (-.f64 (sin.f64 x) x) < -1e-3

            1. Initial program 98.8%

              \[\sin x - x \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift--.f64N/A

                \[\leadsto \color{blue}{\sin x - x} \]
              2. flip3--N/A

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

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

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

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

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

                \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\left(x \cdot x + \sin x \cdot x\right) + \sin x \cdot \sin x}} \]
              8. distribute-rgt-outN/A

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

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

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

                \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\mathsf{fma}\left(\sin x + x, x, \sin x \cdot \sin x\right)}} \]
              12. lower-+.f64N/A

                \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\color{blue}{\sin x + x}, x, \sin x \cdot \sin x\right)} \]
              13. pow2N/A

                \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
              14. lower-pow.f6499.2

                \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
            4. Applied rewrites99.2%

              \[\leadsto \color{blue}{\frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}} \]
            5. Taylor expanded in x around inf

              \[\leadsto \color{blue}{x \cdot \left(\frac{\sin x}{x} - 1\right)} \]
            6. Step-by-step derivation
              1. *-commutativeN/A

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

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

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

                \[\leadsto \left(\color{blue}{\frac{\sin x}{x}} - 1\right) \cdot x \]
              5. lower-sin.f6498.4

                \[\leadsto \left(\frac{\color{blue}{\sin x}}{x} - 1\right) \cdot x \]
            7. Applied rewrites98.4%

              \[\leadsto \color{blue}{\left(\frac{\sin x}{x} - 1\right) \cdot x} \]
            8. Step-by-step derivation
              1. Applied rewrites100.0%

                \[\leadsto \frac{{x}^{3} \cdot \left(\frac{\sin x}{x} - 1\right)}{\color{blue}{x \cdot x}} \]

              if -1e-3 < (-.f64 (sin.f64 x) x)

              1. Initial program 66.0%

                \[\sin x - x \]
              2. Add Preprocessing
              3. Taylor expanded in x around 0

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

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

                  \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
                3. sub-negN/A

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

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

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

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

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

                  \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{1}{120}, \frac{-1}{6}\right) \cdot {x}^{3} \]
                9. lower-pow.f6498.1

                  \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
              5. Applied rewrites98.1%

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

                  \[\leadsto \frac{\mathsf{fma}\left(6.944444444444444 \cdot 10^{-5}, {x}^{4}, -0.027777777777777776\right) \cdot {x}^{3}}{\color{blue}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}} \]
                2. Taylor expanded in x around 0

                  \[\leadsto \frac{\frac{-1}{36} \cdot {x}^{3}}{\mathsf{fma}\left(\frac{1}{120}, x \cdot x, \frac{1}{6}\right)} \]
                3. Step-by-step derivation
                  1. Applied rewrites98.3%

                    \[\leadsto \frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)} \]
                4. Recombined 2 regimes into one program.
                5. Final simplification98.3%

                  \[\leadsto \begin{array}{l} \mathbf{if}\;\sin x - x \leq -0.001:\\ \;\;\;\;\frac{\left(\frac{\sin x}{x} - 1\right) \cdot {x}^{3}}{x \cdot x}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}\\ \end{array} \]
                6. Add Preprocessing

                Alternative 4: 99.6% accurate, 0.4× speedup?

                \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ \begin{array}{l} t_0 := \sin x\_m - x\_m\\ x\_s \cdot \begin{array}{l} \mathbf{if}\;t\_0 \leq -0.001:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\ \end{array} \end{array} \end{array} \]
                x\_m = (fabs.f64 x)
                x\_s = (copysign.f64 #s(literal 1 binary64) x)
                (FPCore (x_s x_m)
                 :precision binary64
                 (let* ((t_0 (- (sin x_m) x_m)))
                   (*
                    x_s
                    (if (<= t_0 -0.001)
                      t_0
                      (/
                       (* -0.027777777777777776 (pow x_m 3.0))
                       (fma 0.008333333333333333 (* x_m x_m) 0.16666666666666666))))))
                x\_m = fabs(x);
                x\_s = copysign(1.0, x);
                double code(double x_s, double x_m) {
                	double t_0 = sin(x_m) - x_m;
                	double tmp;
                	if (t_0 <= -0.001) {
                		tmp = t_0;
                	} else {
                		tmp = (-0.027777777777777776 * pow(x_m, 3.0)) / fma(0.008333333333333333, (x_m * x_m), 0.16666666666666666);
                	}
                	return x_s * tmp;
                }
                
                x\_m = abs(x)
                x\_s = copysign(1.0, x)
                function code(x_s, x_m)
                	t_0 = Float64(sin(x_m) - x_m)
                	tmp = 0.0
                	if (t_0 <= -0.001)
                		tmp = t_0;
                	else
                		tmp = Float64(Float64(-0.027777777777777776 * (x_m ^ 3.0)) / fma(0.008333333333333333, Float64(x_m * x_m), 0.16666666666666666));
                	end
                	return Float64(x_s * tmp)
                end
                
                x\_m = N[Abs[x], $MachinePrecision]
                x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                code[x$95$s_, x$95$m_] := Block[{t$95$0 = N[(N[Sin[x$95$m], $MachinePrecision] - x$95$m), $MachinePrecision]}, N[(x$95$s * If[LessEqual[t$95$0, -0.001], t$95$0, N[(N[(-0.027777777777777776 * N[Power[x$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + 0.16666666666666666), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]
                
                \begin{array}{l}
                x\_m = \left|x\right|
                \\
                x\_s = \mathsf{copysign}\left(1, x\right)
                
                \\
                \begin{array}{l}
                t_0 := \sin x\_m - x\_m\\
                x\_s \cdot \begin{array}{l}
                \mathbf{if}\;t\_0 \leq -0.001:\\
                \;\;\;\;t\_0\\
                
                \mathbf{else}:\\
                \;\;\;\;\frac{-0.027777777777777776 \cdot {x\_m}^{3}}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}\\
                
                
                \end{array}
                \end{array}
                \end{array}
                
                Derivation
                1. Split input into 2 regimes
                2. if (-.f64 (sin.f64 x) x) < -1e-3

                  1. Initial program 98.8%

                    \[\sin x - x \]
                  2. Add Preprocessing

                  if -1e-3 < (-.f64 (sin.f64 x) x)

                  1. Initial program 66.0%

                    \[\sin x - x \]
                  2. Add Preprocessing
                  3. Taylor expanded in x around 0

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

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

                      \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
                    3. sub-negN/A

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

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

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

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

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

                      \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{1}{120}, \frac{-1}{6}\right) \cdot {x}^{3} \]
                    9. lower-pow.f6498.1

                      \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
                  5. Applied rewrites98.1%

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

                      \[\leadsto \frac{\mathsf{fma}\left(6.944444444444444 \cdot 10^{-5}, {x}^{4}, -0.027777777777777776\right) \cdot {x}^{3}}{\color{blue}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}} \]
                    2. Taylor expanded in x around 0

                      \[\leadsto \frac{\frac{-1}{36} \cdot {x}^{3}}{\mathsf{fma}\left(\frac{1}{120}, x \cdot x, \frac{1}{6}\right)} \]
                    3. Step-by-step derivation
                      1. Applied rewrites98.3%

                        \[\leadsto \frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)} \]
                    4. Recombined 2 regimes into one program.
                    5. Add Preprocessing

                    Alternative 5: 99.6% accurate, 0.5× speedup?

                    \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ \begin{array}{l} t_0 := \sin x\_m - x\_m\\ x\_s \cdot \begin{array}{l} \mathbf{if}\;t\_0 \leq -0.001:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, -0.16666666666666666\right) \cdot \left(x\_m \cdot x\_m\right)\right) \cdot x\_m\\ \end{array} \end{array} \end{array} \]
                    x\_m = (fabs.f64 x)
                    x\_s = (copysign.f64 #s(literal 1 binary64) x)
                    (FPCore (x_s x_m)
                     :precision binary64
                     (let* ((t_0 (- (sin x_m) x_m)))
                       (*
                        x_s
                        (if (<= t_0 -0.001)
                          t_0
                          (*
                           (*
                            (fma 0.008333333333333333 (* x_m x_m) -0.16666666666666666)
                            (* x_m x_m))
                           x_m)))))
                    x\_m = fabs(x);
                    x\_s = copysign(1.0, x);
                    double code(double x_s, double x_m) {
                    	double t_0 = sin(x_m) - x_m;
                    	double tmp;
                    	if (t_0 <= -0.001) {
                    		tmp = t_0;
                    	} else {
                    		tmp = (fma(0.008333333333333333, (x_m * x_m), -0.16666666666666666) * (x_m * x_m)) * x_m;
                    	}
                    	return x_s * tmp;
                    }
                    
                    x\_m = abs(x)
                    x\_s = copysign(1.0, x)
                    function code(x_s, x_m)
                    	t_0 = Float64(sin(x_m) - x_m)
                    	tmp = 0.0
                    	if (t_0 <= -0.001)
                    		tmp = t_0;
                    	else
                    		tmp = Float64(Float64(fma(0.008333333333333333, Float64(x_m * x_m), -0.16666666666666666) * Float64(x_m * x_m)) * x_m);
                    	end
                    	return Float64(x_s * tmp)
                    end
                    
                    x\_m = N[Abs[x], $MachinePrecision]
                    x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                    code[x$95$s_, x$95$m_] := Block[{t$95$0 = N[(N[Sin[x$95$m], $MachinePrecision] - x$95$m), $MachinePrecision]}, N[(x$95$s * If[LessEqual[t$95$0, -0.001], t$95$0, N[(N[(N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + -0.16666666666666666), $MachinePrecision] * N[(x$95$m * x$95$m), $MachinePrecision]), $MachinePrecision] * x$95$m), $MachinePrecision]]), $MachinePrecision]]
                    
                    \begin{array}{l}
                    x\_m = \left|x\right|
                    \\
                    x\_s = \mathsf{copysign}\left(1, x\right)
                    
                    \\
                    \begin{array}{l}
                    t_0 := \sin x\_m - x\_m\\
                    x\_s \cdot \begin{array}{l}
                    \mathbf{if}\;t\_0 \leq -0.001:\\
                    \;\;\;\;t\_0\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;\left(\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, -0.16666666666666666\right) \cdot \left(x\_m \cdot x\_m\right)\right) \cdot x\_m\\
                    
                    
                    \end{array}
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if (-.f64 (sin.f64 x) x) < -1e-3

                      1. Initial program 98.8%

                        \[\sin x - x \]
                      2. Add Preprocessing

                      if -1e-3 < (-.f64 (sin.f64 x) x)

                      1. Initial program 66.0%

                        \[\sin x - x \]
                      2. Add Preprocessing
                      3. Taylor expanded in x around 0

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

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

                          \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
                        3. sub-negN/A

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

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

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

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

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

                          \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{1}{120}, \frac{-1}{6}\right) \cdot {x}^{3} \]
                        9. lower-pow.f6498.1

                          \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
                      5. Applied rewrites98.1%

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

                          \[\leadsto \left(\mathsf{fma}\left(0.008333333333333333, x \cdot x, -0.16666666666666666\right) \cdot \left(x \cdot x\right)\right) \cdot \color{blue}{x} \]
                      7. Recombined 2 regimes into one program.
                      8. Add Preprocessing

                      Alternative 6: 98.9% accurate, 2.7× speedup?

                      \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \left(\left(\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.0001984126984126984, x\_m \cdot x\_m, 0.008333333333333333\right), x\_m \cdot x\_m, -0.16666666666666666\right) \cdot x\_m\right) \cdot x\_m\right) \cdot x\_m\right) \end{array} \]
                      x\_m = (fabs.f64 x)
                      x\_s = (copysign.f64 #s(literal 1 binary64) x)
                      (FPCore (x_s x_m)
                       :precision binary64
                       (*
                        x_s
                        (*
                         (*
                          (*
                           (fma
                            (fma -0.0001984126984126984 (* x_m x_m) 0.008333333333333333)
                            (* x_m x_m)
                            -0.16666666666666666)
                           x_m)
                          x_m)
                         x_m)))
                      x\_m = fabs(x);
                      x\_s = copysign(1.0, x);
                      double code(double x_s, double x_m) {
                      	return x_s * (((fma(fma(-0.0001984126984126984, (x_m * x_m), 0.008333333333333333), (x_m * x_m), -0.16666666666666666) * x_m) * x_m) * x_m);
                      }
                      
                      x\_m = abs(x)
                      x\_s = copysign(1.0, x)
                      function code(x_s, x_m)
                      	return Float64(x_s * Float64(Float64(Float64(fma(fma(-0.0001984126984126984, Float64(x_m * x_m), 0.008333333333333333), Float64(x_m * x_m), -0.16666666666666666) * x_m) * x_m) * x_m))
                      end
                      
                      x\_m = N[Abs[x], $MachinePrecision]
                      x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                      code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(N[(N[(N[(-0.0001984126984126984 * N[(x$95$m * x$95$m), $MachinePrecision] + 0.008333333333333333), $MachinePrecision] * N[(x$95$m * x$95$m), $MachinePrecision] + -0.16666666666666666), $MachinePrecision] * x$95$m), $MachinePrecision] * x$95$m), $MachinePrecision] * x$95$m), $MachinePrecision]), $MachinePrecision]
                      
                      \begin{array}{l}
                      x\_m = \left|x\right|
                      \\
                      x\_s = \mathsf{copysign}\left(1, x\right)
                      
                      \\
                      x\_s \cdot \left(\left(\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.0001984126984126984, x\_m \cdot x\_m, 0.008333333333333333\right), x\_m \cdot x\_m, -0.16666666666666666\right) \cdot x\_m\right) \cdot x\_m\right) \cdot x\_m\right)
                      \end{array}
                      
                      Derivation
                      1. Initial program 66.3%

                        \[\sin x - x \]
                      2. Add Preprocessing
                      3. Step-by-step derivation
                        1. lift--.f64N/A

                          \[\leadsto \color{blue}{\sin x - x} \]
                        2. flip3--N/A

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

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

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

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

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

                          \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\left(x \cdot x + \sin x \cdot x\right) + \sin x \cdot \sin x}} \]
                        8. distribute-rgt-outN/A

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

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

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

                          \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\mathsf{fma}\left(\sin x + x, x, \sin x \cdot \sin x\right)}} \]
                        12. lower-+.f64N/A

                          \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\color{blue}{\sin x + x}, x, \sin x \cdot \sin x\right)} \]
                        13. pow2N/A

                          \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                        14. lower-pow.f6424.5

                          \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                      4. Applied rewrites24.5%

                        \[\leadsto \color{blue}{\frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}} \]
                      5. Taylor expanded in x around inf

                        \[\leadsto \color{blue}{x \cdot \left(\frac{\sin x}{x} - 1\right)} \]
                      6. Step-by-step derivation
                        1. *-commutativeN/A

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

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

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

                          \[\leadsto \left(\color{blue}{\frac{\sin x}{x}} - 1\right) \cdot x \]
                        5. lower-sin.f6466.3

                          \[\leadsto \left(\frac{\color{blue}{\sin x}}{x} - 1\right) \cdot x \]
                      7. Applied rewrites66.3%

                        \[\leadsto \color{blue}{\left(\frac{\sin x}{x} - 1\right) \cdot x} \]
                      8. Taylor expanded in x around 0

                        \[\leadsto \left({x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{1}{120} + \frac{-1}{5040} \cdot {x}^{2}\right) - \frac{1}{6}\right)\right) \cdot x \]
                      9. Step-by-step derivation
                        1. Applied rewrites97.7%

                          \[\leadsto \left(\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.0001984126984126984, x \cdot x, 0.008333333333333333\right), x \cdot x, -0.16666666666666666\right) \cdot x\right) \cdot x\right) \cdot x \]
                        2. Add Preprocessing

                        Alternative 7: 98.7% accurate, 2.7× speedup?

                        \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \frac{\left(\left(x\_m \cdot x\_m\right) \cdot -0.027777777777777776\right) \cdot x\_m}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)} \end{array} \]
                        x\_m = (fabs.f64 x)
                        x\_s = (copysign.f64 #s(literal 1 binary64) x)
                        (FPCore (x_s x_m)
                         :precision binary64
                         (*
                          x_s
                          (/
                           (* (* (* x_m x_m) -0.027777777777777776) x_m)
                           (fma 0.008333333333333333 (* x_m x_m) 0.16666666666666666))))
                        x\_m = fabs(x);
                        x\_s = copysign(1.0, x);
                        double code(double x_s, double x_m) {
                        	return x_s * ((((x_m * x_m) * -0.027777777777777776) * x_m) / fma(0.008333333333333333, (x_m * x_m), 0.16666666666666666));
                        }
                        
                        x\_m = abs(x)
                        x\_s = copysign(1.0, x)
                        function code(x_s, x_m)
                        	return Float64(x_s * Float64(Float64(Float64(Float64(x_m * x_m) * -0.027777777777777776) * x_m) / fma(0.008333333333333333, Float64(x_m * x_m), 0.16666666666666666)))
                        end
                        
                        x\_m = N[Abs[x], $MachinePrecision]
                        x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                        code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(N[(N[(x$95$m * x$95$m), $MachinePrecision] * -0.027777777777777776), $MachinePrecision] * x$95$m), $MachinePrecision] / N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
                        
                        \begin{array}{l}
                        x\_m = \left|x\right|
                        \\
                        x\_s = \mathsf{copysign}\left(1, x\right)
                        
                        \\
                        x\_s \cdot \frac{\left(\left(x\_m \cdot x\_m\right) \cdot -0.027777777777777776\right) \cdot x\_m}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}
                        \end{array}
                        
                        Derivation
                        1. Initial program 66.3%

                          \[\sin x - x \]
                        2. Add Preprocessing
                        3. Taylor expanded in x around 0

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

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

                            \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
                          3. sub-negN/A

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

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

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

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

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

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

                            \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
                        5. Applied rewrites97.4%

                          \[\leadsto \color{blue}{\mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot {x}^{3}} \]
                        6. Step-by-step derivation
                          1. Applied rewrites97.5%

                            \[\leadsto \frac{\mathsf{fma}\left(6.944444444444444 \cdot 10^{-5}, {x}^{4}, -0.027777777777777776\right) \cdot {x}^{3}}{\color{blue}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}} \]
                          2. Taylor expanded in x around 0

                            \[\leadsto \frac{\frac{-1}{36} \cdot {x}^{3}}{\mathsf{fma}\left(\frac{1}{120}, x \cdot x, \frac{1}{6}\right)} \]
                          3. Step-by-step derivation
                            1. Applied rewrites97.7%

                              \[\leadsto \frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)} \]
                            2. Step-by-step derivation
                              1. Applied rewrites97.6%

                                \[\leadsto \frac{\left(-0.027777777777777776 \cdot \left(x \cdot x\right)\right) \cdot x}{\mathsf{fma}\left(\color{blue}{0.008333333333333333}, x \cdot x, 0.16666666666666666\right)} \]
                              2. Final simplification97.6%

                                \[\leadsto \frac{\left(\left(x \cdot x\right) \cdot -0.027777777777777776\right) \cdot x}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)} \]
                              3. Add Preprocessing

                              Alternative 8: 98.7% accurate, 2.7× speedup?

                              \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \frac{\left(-0.027777777777777776 \cdot x\_m\right) \cdot \left(x\_m \cdot x\_m\right)}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)} \end{array} \]
                              x\_m = (fabs.f64 x)
                              x\_s = (copysign.f64 #s(literal 1 binary64) x)
                              (FPCore (x_s x_m)
                               :precision binary64
                               (*
                                x_s
                                (/
                                 (* (* -0.027777777777777776 x_m) (* x_m x_m))
                                 (fma 0.008333333333333333 (* x_m x_m) 0.16666666666666666))))
                              x\_m = fabs(x);
                              x\_s = copysign(1.0, x);
                              double code(double x_s, double x_m) {
                              	return x_s * (((-0.027777777777777776 * x_m) * (x_m * x_m)) / fma(0.008333333333333333, (x_m * x_m), 0.16666666666666666));
                              }
                              
                              x\_m = abs(x)
                              x\_s = copysign(1.0, x)
                              function code(x_s, x_m)
                              	return Float64(x_s * Float64(Float64(Float64(-0.027777777777777776 * x_m) * Float64(x_m * x_m)) / fma(0.008333333333333333, Float64(x_m * x_m), 0.16666666666666666)))
                              end
                              
                              x\_m = N[Abs[x], $MachinePrecision]
                              x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                              code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(N[(-0.027777777777777776 * x$95$m), $MachinePrecision] * N[(x$95$m * x$95$m), $MachinePrecision]), $MachinePrecision] / N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
                              
                              \begin{array}{l}
                              x\_m = \left|x\right|
                              \\
                              x\_s = \mathsf{copysign}\left(1, x\right)
                              
                              \\
                              x\_s \cdot \frac{\left(-0.027777777777777776 \cdot x\_m\right) \cdot \left(x\_m \cdot x\_m\right)}{\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, 0.16666666666666666\right)}
                              \end{array}
                              
                              Derivation
                              1. Initial program 66.3%

                                \[\sin x - x \]
                              2. Add Preprocessing
                              3. Taylor expanded in x around 0

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

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

                                  \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
                                3. sub-negN/A

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

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

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

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

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

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

                                  \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
                              5. Applied rewrites97.4%

                                \[\leadsto \color{blue}{\mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot {x}^{3}} \]
                              6. Step-by-step derivation
                                1. Applied rewrites97.5%

                                  \[\leadsto \frac{\mathsf{fma}\left(6.944444444444444 \cdot 10^{-5}, {x}^{4}, -0.027777777777777776\right) \cdot {x}^{3}}{\color{blue}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)}} \]
                                2. Taylor expanded in x around 0

                                  \[\leadsto \frac{\frac{-1}{36} \cdot {x}^{3}}{\mathsf{fma}\left(\frac{1}{120}, x \cdot x, \frac{1}{6}\right)} \]
                                3. Step-by-step derivation
                                  1. Applied rewrites97.7%

                                    \[\leadsto \frac{-0.027777777777777776 \cdot {x}^{3}}{\mathsf{fma}\left(0.008333333333333333, x \cdot x, 0.16666666666666666\right)} \]
                                  2. Step-by-step derivation
                                    1. Applied rewrites97.6%

                                      \[\leadsto \frac{\left(-0.027777777777777776 \cdot x\right) \cdot \left(x \cdot x\right)}{\mathsf{fma}\left(\color{blue}{0.008333333333333333}, x \cdot x, 0.16666666666666666\right)} \]
                                    2. Add Preprocessing

                                    Alternative 9: 98.7% accurate, 3.9× speedup?

                                    \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \left(\left(\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, -0.16666666666666666\right) \cdot \left(x\_m \cdot x\_m\right)\right) \cdot x\_m\right) \end{array} \]
                                    x\_m = (fabs.f64 x)
                                    x\_s = (copysign.f64 #s(literal 1 binary64) x)
                                    (FPCore (x_s x_m)
                                     :precision binary64
                                     (*
                                      x_s
                                      (*
                                       (* (fma 0.008333333333333333 (* x_m x_m) -0.16666666666666666) (* x_m x_m))
                                       x_m)))
                                    x\_m = fabs(x);
                                    x\_s = copysign(1.0, x);
                                    double code(double x_s, double x_m) {
                                    	return x_s * ((fma(0.008333333333333333, (x_m * x_m), -0.16666666666666666) * (x_m * x_m)) * x_m);
                                    }
                                    
                                    x\_m = abs(x)
                                    x\_s = copysign(1.0, x)
                                    function code(x_s, x_m)
                                    	return Float64(x_s * Float64(Float64(fma(0.008333333333333333, Float64(x_m * x_m), -0.16666666666666666) * Float64(x_m * x_m)) * x_m))
                                    end
                                    
                                    x\_m = N[Abs[x], $MachinePrecision]
                                    x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                                    code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + -0.16666666666666666), $MachinePrecision] * N[(x$95$m * x$95$m), $MachinePrecision]), $MachinePrecision] * x$95$m), $MachinePrecision]), $MachinePrecision]
                                    
                                    \begin{array}{l}
                                    x\_m = \left|x\right|
                                    \\
                                    x\_s = \mathsf{copysign}\left(1, x\right)
                                    
                                    \\
                                    x\_s \cdot \left(\left(\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, -0.16666666666666666\right) \cdot \left(x\_m \cdot x\_m\right)\right) \cdot x\_m\right)
                                    \end{array}
                                    
                                    Derivation
                                    1. Initial program 66.3%

                                      \[\sin x - x \]
                                    2. Add Preprocessing
                                    3. Taylor expanded in x around 0

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

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

                                        \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
                                      3. sub-negN/A

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

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

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

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

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

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

                                        \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
                                    5. Applied rewrites97.4%

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

                                        \[\leadsto \left(\mathsf{fma}\left(0.008333333333333333, x \cdot x, -0.16666666666666666\right) \cdot \left(x \cdot x\right)\right) \cdot \color{blue}{x} \]
                                      2. Add Preprocessing

                                      Alternative 10: 98.7% accurate, 3.9× speedup?

                                      \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \left(\left(\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, -0.16666666666666666\right) \cdot x\_m\right) \cdot \left(x\_m \cdot x\_m\right)\right) \end{array} \]
                                      x\_m = (fabs.f64 x)
                                      x\_s = (copysign.f64 #s(literal 1 binary64) x)
                                      (FPCore (x_s x_m)
                                       :precision binary64
                                       (*
                                        x_s
                                        (*
                                         (* (fma 0.008333333333333333 (* x_m x_m) -0.16666666666666666) x_m)
                                         (* x_m x_m))))
                                      x\_m = fabs(x);
                                      x\_s = copysign(1.0, x);
                                      double code(double x_s, double x_m) {
                                      	return x_s * ((fma(0.008333333333333333, (x_m * x_m), -0.16666666666666666) * x_m) * (x_m * x_m));
                                      }
                                      
                                      x\_m = abs(x)
                                      x\_s = copysign(1.0, x)
                                      function code(x_s, x_m)
                                      	return Float64(x_s * Float64(Float64(fma(0.008333333333333333, Float64(x_m * x_m), -0.16666666666666666) * x_m) * Float64(x_m * x_m)))
                                      end
                                      
                                      x\_m = N[Abs[x], $MachinePrecision]
                                      x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                                      code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(N[(0.008333333333333333 * N[(x$95$m * x$95$m), $MachinePrecision] + -0.16666666666666666), $MachinePrecision] * x$95$m), $MachinePrecision] * N[(x$95$m * x$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
                                      
                                      \begin{array}{l}
                                      x\_m = \left|x\right|
                                      \\
                                      x\_s = \mathsf{copysign}\left(1, x\right)
                                      
                                      \\
                                      x\_s \cdot \left(\left(\mathsf{fma}\left(0.008333333333333333, x\_m \cdot x\_m, -0.16666666666666666\right) \cdot x\_m\right) \cdot \left(x\_m \cdot x\_m\right)\right)
                                      \end{array}
                                      
                                      Derivation
                                      1. Initial program 66.3%

                                        \[\sin x - x \]
                                      2. Add Preprocessing
                                      3. Taylor expanded in x around 0

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

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

                                          \[\leadsto \color{blue}{\left(\frac{1}{120} \cdot {x}^{2} - \frac{1}{6}\right) \cdot {x}^{3}} \]
                                        3. sub-negN/A

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

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

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

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

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

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

                                          \[\leadsto \mathsf{fma}\left(x \cdot x, 0.008333333333333333, -0.16666666666666666\right) \cdot \color{blue}{{x}^{3}} \]
                                      5. Applied rewrites97.4%

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

                                          \[\leadsto \left(\mathsf{fma}\left(0.008333333333333333, x \cdot x, -0.16666666666666666\right) \cdot x\right) \cdot \color{blue}{\left(x \cdot x\right)} \]
                                        2. Add Preprocessing

                                        Alternative 11: 98.2% accurate, 6.5× speedup?

                                        \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \left(\left(-0.16666666666666666 \cdot \left(x\_m \cdot x\_m\right)\right) \cdot x\_m\right) \end{array} \]
                                        x\_m = (fabs.f64 x)
                                        x\_s = (copysign.f64 #s(literal 1 binary64) x)
                                        (FPCore (x_s x_m)
                                         :precision binary64
                                         (* x_s (* (* -0.16666666666666666 (* x_m x_m)) x_m)))
                                        x\_m = fabs(x);
                                        x\_s = copysign(1.0, x);
                                        double code(double x_s, double x_m) {
                                        	return x_s * ((-0.16666666666666666 * (x_m * x_m)) * x_m);
                                        }
                                        
                                        x\_m = abs(x)
                                        x\_s = copysign(1.0d0, x)
                                        real(8) function code(x_s, x_m)
                                            real(8), intent (in) :: x_s
                                            real(8), intent (in) :: x_m
                                            code = x_s * (((-0.16666666666666666d0) * (x_m * x_m)) * x_m)
                                        end function
                                        
                                        x\_m = Math.abs(x);
                                        x\_s = Math.copySign(1.0, x);
                                        public static double code(double x_s, double x_m) {
                                        	return x_s * ((-0.16666666666666666 * (x_m * x_m)) * x_m);
                                        }
                                        
                                        x\_m = math.fabs(x)
                                        x\_s = math.copysign(1.0, x)
                                        def code(x_s, x_m):
                                        	return x_s * ((-0.16666666666666666 * (x_m * x_m)) * x_m)
                                        
                                        x\_m = abs(x)
                                        x\_s = copysign(1.0, x)
                                        function code(x_s, x_m)
                                        	return Float64(x_s * Float64(Float64(-0.16666666666666666 * Float64(x_m * x_m)) * x_m))
                                        end
                                        
                                        x\_m = abs(x);
                                        x\_s = sign(x) * abs(1.0);
                                        function tmp = code(x_s, x_m)
                                        	tmp = x_s * ((-0.16666666666666666 * (x_m * x_m)) * x_m);
                                        end
                                        
                                        x\_m = N[Abs[x], $MachinePrecision]
                                        x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                                        code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(-0.16666666666666666 * N[(x$95$m * x$95$m), $MachinePrecision]), $MachinePrecision] * x$95$m), $MachinePrecision]), $MachinePrecision]
                                        
                                        \begin{array}{l}
                                        x\_m = \left|x\right|
                                        \\
                                        x\_s = \mathsf{copysign}\left(1, x\right)
                                        
                                        \\
                                        x\_s \cdot \left(\left(-0.16666666666666666 \cdot \left(x\_m \cdot x\_m\right)\right) \cdot x\_m\right)
                                        \end{array}
                                        
                                        Derivation
                                        1. Initial program 66.3%

                                          \[\sin x - x \]
                                        2. Add Preprocessing
                                        3. Step-by-step derivation
                                          1. lift--.f64N/A

                                            \[\leadsto \color{blue}{\sin x - x} \]
                                          2. flip3--N/A

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

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

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

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

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

                                            \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\left(x \cdot x + \sin x \cdot x\right) + \sin x \cdot \sin x}} \]
                                          8. distribute-rgt-outN/A

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

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

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

                                            \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\mathsf{fma}\left(\sin x + x, x, \sin x \cdot \sin x\right)}} \]
                                          12. lower-+.f64N/A

                                            \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\color{blue}{\sin x + x}, x, \sin x \cdot \sin x\right)} \]
                                          13. pow2N/A

                                            \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                                          14. lower-pow.f6424.5

                                            \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                                        4. Applied rewrites24.5%

                                          \[\leadsto \color{blue}{\frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}} \]
                                        5. Taylor expanded in x around inf

                                          \[\leadsto \color{blue}{x \cdot \left(\frac{\sin x}{x} - 1\right)} \]
                                        6. Step-by-step derivation
                                          1. *-commutativeN/A

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

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

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

                                            \[\leadsto \left(\color{blue}{\frac{\sin x}{x}} - 1\right) \cdot x \]
                                          5. lower-sin.f6466.3

                                            \[\leadsto \left(\frac{\color{blue}{\sin x}}{x} - 1\right) \cdot x \]
                                        7. Applied rewrites66.3%

                                          \[\leadsto \color{blue}{\left(\frac{\sin x}{x} - 1\right) \cdot x} \]
                                        8. Taylor expanded in x around 0

                                          \[\leadsto \left(\frac{-1}{6} \cdot {x}^{2}\right) \cdot x \]
                                        9. Step-by-step derivation
                                          1. Applied rewrites97.1%

                                            \[\leadsto \left(\left(x \cdot x\right) \cdot -0.16666666666666666\right) \cdot x \]
                                          2. Final simplification97.1%

                                            \[\leadsto \left(-0.16666666666666666 \cdot \left(x \cdot x\right)\right) \cdot x \]
                                          3. Add Preprocessing

                                          Alternative 12: 98.2% accurate, 6.5× speedup?

                                          \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \left(\left(\left(-0.16666666666666666 \cdot x\_m\right) \cdot x\_m\right) \cdot x\_m\right) \end{array} \]
                                          x\_m = (fabs.f64 x)
                                          x\_s = (copysign.f64 #s(literal 1 binary64) x)
                                          (FPCore (x_s x_m)
                                           :precision binary64
                                           (* x_s (* (* (* -0.16666666666666666 x_m) x_m) x_m)))
                                          x\_m = fabs(x);
                                          x\_s = copysign(1.0, x);
                                          double code(double x_s, double x_m) {
                                          	return x_s * (((-0.16666666666666666 * x_m) * x_m) * x_m);
                                          }
                                          
                                          x\_m = abs(x)
                                          x\_s = copysign(1.0d0, x)
                                          real(8) function code(x_s, x_m)
                                              real(8), intent (in) :: x_s
                                              real(8), intent (in) :: x_m
                                              code = x_s * ((((-0.16666666666666666d0) * x_m) * x_m) * x_m)
                                          end function
                                          
                                          x\_m = Math.abs(x);
                                          x\_s = Math.copySign(1.0, x);
                                          public static double code(double x_s, double x_m) {
                                          	return x_s * (((-0.16666666666666666 * x_m) * x_m) * x_m);
                                          }
                                          
                                          x\_m = math.fabs(x)
                                          x\_s = math.copysign(1.0, x)
                                          def code(x_s, x_m):
                                          	return x_s * (((-0.16666666666666666 * x_m) * x_m) * x_m)
                                          
                                          x\_m = abs(x)
                                          x\_s = copysign(1.0, x)
                                          function code(x_s, x_m)
                                          	return Float64(x_s * Float64(Float64(Float64(-0.16666666666666666 * x_m) * x_m) * x_m))
                                          end
                                          
                                          x\_m = abs(x);
                                          x\_s = sign(x) * abs(1.0);
                                          function tmp = code(x_s, x_m)
                                          	tmp = x_s * (((-0.16666666666666666 * x_m) * x_m) * x_m);
                                          end
                                          
                                          x\_m = N[Abs[x], $MachinePrecision]
                                          x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                                          code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(N[(-0.16666666666666666 * x$95$m), $MachinePrecision] * x$95$m), $MachinePrecision] * x$95$m), $MachinePrecision]), $MachinePrecision]
                                          
                                          \begin{array}{l}
                                          x\_m = \left|x\right|
                                          \\
                                          x\_s = \mathsf{copysign}\left(1, x\right)
                                          
                                          \\
                                          x\_s \cdot \left(\left(\left(-0.16666666666666666 \cdot x\_m\right) \cdot x\_m\right) \cdot x\_m\right)
                                          \end{array}
                                          
                                          Derivation
                                          1. Initial program 66.3%

                                            \[\sin x - x \]
                                          2. Add Preprocessing
                                          3. Step-by-step derivation
                                            1. lift--.f64N/A

                                              \[\leadsto \color{blue}{\sin x - x} \]
                                            2. flip3--N/A

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

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

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

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

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

                                              \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\left(x \cdot x + \sin x \cdot x\right) + \sin x \cdot \sin x}} \]
                                            8. distribute-rgt-outN/A

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

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

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

                                              \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\mathsf{fma}\left(\sin x + x, x, \sin x \cdot \sin x\right)}} \]
                                            12. lower-+.f64N/A

                                              \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\color{blue}{\sin x + x}, x, \sin x \cdot \sin x\right)} \]
                                            13. pow2N/A

                                              \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                                            14. lower-pow.f6424.5

                                              \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                                          4. Applied rewrites24.5%

                                            \[\leadsto \color{blue}{\frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}} \]
                                          5. Taylor expanded in x around inf

                                            \[\leadsto \color{blue}{x \cdot \left(\frac{\sin x}{x} - 1\right)} \]
                                          6. Step-by-step derivation
                                            1. *-commutativeN/A

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

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

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

                                              \[\leadsto \left(\color{blue}{\frac{\sin x}{x}} - 1\right) \cdot x \]
                                            5. lower-sin.f6466.3

                                              \[\leadsto \left(\frac{\color{blue}{\sin x}}{x} - 1\right) \cdot x \]
                                          7. Applied rewrites66.3%

                                            \[\leadsto \color{blue}{\left(\frac{\sin x}{x} - 1\right) \cdot x} \]
                                          8. Taylor expanded in x around 0

                                            \[\leadsto \left({x}^{2} \cdot \left({x}^{2} \cdot \left(\frac{1}{120} + {x}^{2} \cdot \left(\frac{1}{362880} \cdot {x}^{2} - \frac{1}{5040}\right)\right) - \frac{1}{6}\right)\right) \cdot x \]
                                          9. Step-by-step derivation
                                            1. Applied rewrites97.7%

                                              \[\leadsto \left(\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(2.7557319223985893 \cdot 10^{-6}, x \cdot x, -0.0001984126984126984\right), x \cdot x, 0.008333333333333333\right), x \cdot x, -0.16666666666666666\right) \cdot x\right) \cdot x\right) \cdot x \]
                                            2. Taylor expanded in x around 0

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

                                                \[\leadsto \left(\left(x \cdot -0.16666666666666666\right) \cdot x\right) \cdot x \]
                                              2. Final simplification97.1%

                                                \[\leadsto \left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot x \]
                                              3. Add Preprocessing

                                              Alternative 13: 66.9% accurate, 11.6× speedup?

                                              \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \left(\left(1 - 1\right) \cdot x\_m\right) \end{array} \]
                                              x\_m = (fabs.f64 x)
                                              x\_s = (copysign.f64 #s(literal 1 binary64) x)
                                              (FPCore (x_s x_m) :precision binary64 (* x_s (* (- 1.0 1.0) x_m)))
                                              x\_m = fabs(x);
                                              x\_s = copysign(1.0, x);
                                              double code(double x_s, double x_m) {
                                              	return x_s * ((1.0 - 1.0) * x_m);
                                              }
                                              
                                              x\_m = abs(x)
                                              x\_s = copysign(1.0d0, x)
                                              real(8) function code(x_s, x_m)
                                                  real(8), intent (in) :: x_s
                                                  real(8), intent (in) :: x_m
                                                  code = x_s * ((1.0d0 - 1.0d0) * x_m)
                                              end function
                                              
                                              x\_m = Math.abs(x);
                                              x\_s = Math.copySign(1.0, x);
                                              public static double code(double x_s, double x_m) {
                                              	return x_s * ((1.0 - 1.0) * x_m);
                                              }
                                              
                                              x\_m = math.fabs(x)
                                              x\_s = math.copysign(1.0, x)
                                              def code(x_s, x_m):
                                              	return x_s * ((1.0 - 1.0) * x_m)
                                              
                                              x\_m = abs(x)
                                              x\_s = copysign(1.0, x)
                                              function code(x_s, x_m)
                                              	return Float64(x_s * Float64(Float64(1.0 - 1.0) * x_m))
                                              end
                                              
                                              x\_m = abs(x);
                                              x\_s = sign(x) * abs(1.0);
                                              function tmp = code(x_s, x_m)
                                              	tmp = x_s * ((1.0 - 1.0) * x_m);
                                              end
                                              
                                              x\_m = N[Abs[x], $MachinePrecision]
                                              x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                                              code[x$95$s_, x$95$m_] := N[(x$95$s * N[(N[(1.0 - 1.0), $MachinePrecision] * x$95$m), $MachinePrecision]), $MachinePrecision]
                                              
                                              \begin{array}{l}
                                              x\_m = \left|x\right|
                                              \\
                                              x\_s = \mathsf{copysign}\left(1, x\right)
                                              
                                              \\
                                              x\_s \cdot \left(\left(1 - 1\right) \cdot x\_m\right)
                                              \end{array}
                                              
                                              Derivation
                                              1. Initial program 66.3%

                                                \[\sin x - x \]
                                              2. Add Preprocessing
                                              3. Step-by-step derivation
                                                1. lift--.f64N/A

                                                  \[\leadsto \color{blue}{\sin x - x} \]
                                                2. flip3--N/A

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

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

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

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

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

                                                  \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\left(x \cdot x + \sin x \cdot x\right) + \sin x \cdot \sin x}} \]
                                                8. distribute-rgt-outN/A

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

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

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

                                                  \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\color{blue}{\mathsf{fma}\left(\sin x + x, x, \sin x \cdot \sin x\right)}} \]
                                                12. lower-+.f64N/A

                                                  \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\color{blue}{\sin x + x}, x, \sin x \cdot \sin x\right)} \]
                                                13. pow2N/A

                                                  \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                                                14. lower-pow.f6424.5

                                                  \[\leadsto \frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, \color{blue}{{\sin x}^{2}}\right)} \]
                                              4. Applied rewrites24.5%

                                                \[\leadsto \color{blue}{\frac{{\sin x}^{3} - {x}^{3}}{\mathsf{fma}\left(\sin x + x, x, {\sin x}^{2}\right)}} \]
                                              5. Taylor expanded in x around inf

                                                \[\leadsto \color{blue}{x \cdot \left(\frac{\sin x}{x} - 1\right)} \]
                                              6. Step-by-step derivation
                                                1. *-commutativeN/A

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

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

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

                                                  \[\leadsto \left(\color{blue}{\frac{\sin x}{x}} - 1\right) \cdot x \]
                                                5. lower-sin.f6466.3

                                                  \[\leadsto \left(\frac{\color{blue}{\sin x}}{x} - 1\right) \cdot x \]
                                              7. Applied rewrites66.3%

                                                \[\leadsto \color{blue}{\left(\frac{\sin x}{x} - 1\right) \cdot x} \]
                                              8. Taylor expanded in x around 0

                                                \[\leadsto \left(1 - 1\right) \cdot x \]
                                              9. Step-by-step derivation
                                                1. Applied rewrites62.6%

                                                  \[\leadsto \left(1 - 1\right) \cdot x \]
                                                2. Add Preprocessing

                                                Alternative 14: 6.4% accurate, 34.7× speedup?

                                                \[\begin{array}{l} x\_m = \left|x\right| \\ x\_s = \mathsf{copysign}\left(1, x\right) \\ x\_s \cdot \left(-x\_m\right) \end{array} \]
                                                x\_m = (fabs.f64 x)
                                                x\_s = (copysign.f64 #s(literal 1 binary64) x)
                                                (FPCore (x_s x_m) :precision binary64 (* x_s (- x_m)))
                                                x\_m = fabs(x);
                                                x\_s = copysign(1.0, x);
                                                double code(double x_s, double x_m) {
                                                	return x_s * -x_m;
                                                }
                                                
                                                x\_m = abs(x)
                                                x\_s = copysign(1.0d0, x)
                                                real(8) function code(x_s, x_m)
                                                    real(8), intent (in) :: x_s
                                                    real(8), intent (in) :: x_m
                                                    code = x_s * -x_m
                                                end function
                                                
                                                x\_m = Math.abs(x);
                                                x\_s = Math.copySign(1.0, x);
                                                public static double code(double x_s, double x_m) {
                                                	return x_s * -x_m;
                                                }
                                                
                                                x\_m = math.fabs(x)
                                                x\_s = math.copysign(1.0, x)
                                                def code(x_s, x_m):
                                                	return x_s * -x_m
                                                
                                                x\_m = abs(x)
                                                x\_s = copysign(1.0, x)
                                                function code(x_s, x_m)
                                                	return Float64(x_s * Float64(-x_m))
                                                end
                                                
                                                x\_m = abs(x);
                                                x\_s = sign(x) * abs(1.0);
                                                function tmp = code(x_s, x_m)
                                                	tmp = x_s * -x_m;
                                                end
                                                
                                                x\_m = N[Abs[x], $MachinePrecision]
                                                x\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[x]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
                                                code[x$95$s_, x$95$m_] := N[(x$95$s * (-x$95$m)), $MachinePrecision]
                                                
                                                \begin{array}{l}
                                                x\_m = \left|x\right|
                                                \\
                                                x\_s = \mathsf{copysign}\left(1, x\right)
                                                
                                                \\
                                                x\_s \cdot \left(-x\_m\right)
                                                \end{array}
                                                
                                                Derivation
                                                1. Initial program 66.3%

                                                  \[\sin x - x \]
                                                2. Add Preprocessing
                                                3. Taylor expanded in x around inf

                                                  \[\leadsto \color{blue}{-1 \cdot x} \]
                                                4. Step-by-step derivation
                                                  1. mul-1-negN/A

                                                    \[\leadsto \color{blue}{\mathsf{neg}\left(x\right)} \]
                                                  2. lower-neg.f646.6

                                                    \[\leadsto \color{blue}{-x} \]
                                                5. Applied rewrites6.6%

                                                  \[\leadsto \color{blue}{-x} \]
                                                6. Add Preprocessing

                                                Developer Target 1: 99.8% accurate, 0.3× speedup?

                                                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\left|x\right| < 0.07:\\ \;\;\;\;-\left(\left(\frac{{x}^{3}}{6} - \frac{{x}^{5}}{120}\right) + \frac{{x}^{7}}{5040}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin x - x\\ \end{array} \end{array} \]
                                                (FPCore (x)
                                                 :precision binary64
                                                 (if (< (fabs x) 0.07)
                                                   (- (+ (- (/ (pow x 3.0) 6.0) (/ (pow x 5.0) 120.0)) (/ (pow x 7.0) 5040.0)))
                                                   (- (sin x) x)))
                                                double code(double x) {
                                                	double tmp;
                                                	if (fabs(x) < 0.07) {
                                                		tmp = -(((pow(x, 3.0) / 6.0) - (pow(x, 5.0) / 120.0)) + (pow(x, 7.0) / 5040.0));
                                                	} else {
                                                		tmp = sin(x) - x;
                                                	}
                                                	return tmp;
                                                }
                                                
                                                real(8) function code(x)
                                                    real(8), intent (in) :: x
                                                    real(8) :: tmp
                                                    if (abs(x) < 0.07d0) then
                                                        tmp = -((((x ** 3.0d0) / 6.0d0) - ((x ** 5.0d0) / 120.0d0)) + ((x ** 7.0d0) / 5040.0d0))
                                                    else
                                                        tmp = sin(x) - x
                                                    end if
                                                    code = tmp
                                                end function
                                                
                                                public static double code(double x) {
                                                	double tmp;
                                                	if (Math.abs(x) < 0.07) {
                                                		tmp = -(((Math.pow(x, 3.0) / 6.0) - (Math.pow(x, 5.0) / 120.0)) + (Math.pow(x, 7.0) / 5040.0));
                                                	} else {
                                                		tmp = Math.sin(x) - x;
                                                	}
                                                	return tmp;
                                                }
                                                
                                                def code(x):
                                                	tmp = 0
                                                	if math.fabs(x) < 0.07:
                                                		tmp = -(((math.pow(x, 3.0) / 6.0) - (math.pow(x, 5.0) / 120.0)) + (math.pow(x, 7.0) / 5040.0))
                                                	else:
                                                		tmp = math.sin(x) - x
                                                	return tmp
                                                
                                                function code(x)
                                                	tmp = 0.0
                                                	if (abs(x) < 0.07)
                                                		tmp = Float64(-Float64(Float64(Float64((x ^ 3.0) / 6.0) - Float64((x ^ 5.0) / 120.0)) + Float64((x ^ 7.0) / 5040.0)));
                                                	else
                                                		tmp = Float64(sin(x) - x);
                                                	end
                                                	return tmp
                                                end
                                                
                                                function tmp_2 = code(x)
                                                	tmp = 0.0;
                                                	if (abs(x) < 0.07)
                                                		tmp = -((((x ^ 3.0) / 6.0) - ((x ^ 5.0) / 120.0)) + ((x ^ 7.0) / 5040.0));
                                                	else
                                                		tmp = sin(x) - x;
                                                	end
                                                	tmp_2 = tmp;
                                                end
                                                
                                                code[x_] := If[Less[N[Abs[x], $MachinePrecision], 0.07], (-N[(N[(N[(N[Power[x, 3.0], $MachinePrecision] / 6.0), $MachinePrecision] - N[(N[Power[x, 5.0], $MachinePrecision] / 120.0), $MachinePrecision]), $MachinePrecision] + N[(N[Power[x, 7.0], $MachinePrecision] / 5040.0), $MachinePrecision]), $MachinePrecision]), N[(N[Sin[x], $MachinePrecision] - x), $MachinePrecision]]
                                                
                                                \begin{array}{l}
                                                
                                                \\
                                                \begin{array}{l}
                                                \mathbf{if}\;\left|x\right| < 0.07:\\
                                                \;\;\;\;-\left(\left(\frac{{x}^{3}}{6} - \frac{{x}^{5}}{120}\right) + \frac{{x}^{7}}{5040}\right)\\
                                                
                                                \mathbf{else}:\\
                                                \;\;\;\;\sin x - x\\
                                                
                                                
                                                \end{array}
                                                \end{array}
                                                

                                                Reproduce

                                                ?
                                                herbie shell --seed 2024277 
                                                (FPCore (x)
                                                  :name "bug500 (missed optimization)"
                                                  :precision binary64
                                                  :pre (and (< -1000.0 x) (< x 1000.0))
                                                
                                                  :alt
                                                  (! :herbie-platform default (if (< (fabs x) 7/100) (- (+ (- (/ (pow x 3) 6) (/ (pow x 5) 120)) (/ (pow x 7) 5040))) (- (sin x) x)))
                                                
                                                  (- (sin x) x))