Average Error: 31.3 → 0.3
Time: 44.8s
Precision: 64
\[\frac{x - \sin x}{x - \tan x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -2.475250416396811647956610613618977367878:\\ \;\;\;\;\mathsf{fma}\left(\frac{\sin x}{\cos x \cdot \cos x}, \frac{\frac{\sin x}{x}}{x}, \left(\frac{\frac{\sin x}{x}}{\cos x} - \mathsf{fma}\left(\frac{\frac{\sin x}{x}}{x}, \frac{\sin x}{\cos x}, \frac{\sin x}{x}\right)\right) + 1\right)\\ \mathbf{elif}\;x \le 2.408727669093524426102703728247433900833:\\ \;\;\;\;\frac{-1}{2} + \mathsf{fma}\left(x \cdot x, \frac{9}{40}, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \frac{-27}{2800}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\sin x}{\cos x \cdot \cos x}, \frac{\frac{\sin x}{x}}{x}, \left(\frac{\frac{\sin x}{x}}{\cos x} - \mathsf{fma}\left(\frac{\frac{\sin x}{x}}{x}, \frac{\sin x}{\cos x}, \frac{\sin x}{x}\right)\right) + 1\right)\\ \end{array}\]
\frac{x - \sin x}{x - \tan x}
\begin{array}{l}
\mathbf{if}\;x \le -2.475250416396811647956610613618977367878:\\
\;\;\;\;\mathsf{fma}\left(\frac{\sin x}{\cos x \cdot \cos x}, \frac{\frac{\sin x}{x}}{x}, \left(\frac{\frac{\sin x}{x}}{\cos x} - \mathsf{fma}\left(\frac{\frac{\sin x}{x}}{x}, \frac{\sin x}{\cos x}, \frac{\sin x}{x}\right)\right) + 1\right)\\

\mathbf{elif}\;x \le 2.408727669093524426102703728247433900833:\\
\;\;\;\;\frac{-1}{2} + \mathsf{fma}\left(x \cdot x, \frac{9}{40}, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \frac{-27}{2800}\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{\sin x}{\cos x \cdot \cos x}, \frac{\frac{\sin x}{x}}{x}, \left(\frac{\frac{\sin x}{x}}{\cos x} - \mathsf{fma}\left(\frac{\frac{\sin x}{x}}{x}, \frac{\sin x}{\cos x}, \frac{\sin x}{x}\right)\right) + 1\right)\\

\end{array}
double f(double x) {
        double r715725 = x;
        double r715726 = sin(r715725);
        double r715727 = r715725 - r715726;
        double r715728 = tan(r715725);
        double r715729 = r715725 - r715728;
        double r715730 = r715727 / r715729;
        return r715730;
}

double f(double x) {
        double r715731 = x;
        double r715732 = -2.4752504163968116;
        bool r715733 = r715731 <= r715732;
        double r715734 = sin(r715731);
        double r715735 = cos(r715731);
        double r715736 = r715735 * r715735;
        double r715737 = r715734 / r715736;
        double r715738 = r715734 / r715731;
        double r715739 = r715738 / r715731;
        double r715740 = r715738 / r715735;
        double r715741 = r715734 / r715735;
        double r715742 = fma(r715739, r715741, r715738);
        double r715743 = r715740 - r715742;
        double r715744 = 1.0;
        double r715745 = r715743 + r715744;
        double r715746 = fma(r715737, r715739, r715745);
        double r715747 = 2.4087276690935244;
        bool r715748 = r715731 <= r715747;
        double r715749 = -0.5;
        double r715750 = r715731 * r715731;
        double r715751 = 0.225;
        double r715752 = r715750 * r715750;
        double r715753 = -0.009642857142857142;
        double r715754 = r715752 * r715753;
        double r715755 = fma(r715750, r715751, r715754);
        double r715756 = r715749 + r715755;
        double r715757 = r715748 ? r715756 : r715746;
        double r715758 = r715733 ? r715746 : r715757;
        return r715758;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -2.4752504163968116 or 2.4087276690935244 < x

    1. Initial program 0.0

      \[\frac{x - \sin x}{x - \tan x}\]
    2. Taylor expanded around inf 0.4

      \[\leadsto \color{blue}{\left(1 + \left(\frac{{\left(\sin x\right)}^{2}}{{\left(\cos x\right)}^{2} \cdot {x}^{2}} + \frac{\sin x}{\cos x \cdot x}\right)\right) - \left(\frac{\sin x}{x} + \frac{{\left(\sin x\right)}^{2}}{\cos x \cdot {x}^{2}}\right)}\]
    3. Simplified0.4

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

    if -2.4752504163968116 < x < 2.4087276690935244

    1. Initial program 62.8

      \[\frac{x - \sin x}{x - \tan x}\]
    2. Taylor expanded around 0 0.3

      \[\leadsto \color{blue}{\frac{9}{40} \cdot {x}^{2} - \left(\frac{27}{2800} \cdot {x}^{4} + \frac{1}{2}\right)}\]
    3. Simplified0.3

      \[\leadsto \color{blue}{\mathsf{fma}\left(x \cdot x, \frac{9}{40}, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \frac{-27}{2800}\right) + \frac{-1}{2}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -2.475250416396811647956610613618977367878:\\ \;\;\;\;\mathsf{fma}\left(\frac{\sin x}{\cos x \cdot \cos x}, \frac{\frac{\sin x}{x}}{x}, \left(\frac{\frac{\sin x}{x}}{\cos x} - \mathsf{fma}\left(\frac{\frac{\sin x}{x}}{x}, \frac{\sin x}{\cos x}, \frac{\sin x}{x}\right)\right) + 1\right)\\ \mathbf{elif}\;x \le 2.408727669093524426102703728247433900833:\\ \;\;\;\;\frac{-1}{2} + \mathsf{fma}\left(x \cdot x, \frac{9}{40}, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \frac{-27}{2800}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\sin x}{\cos x \cdot \cos x}, \frac{\frac{\sin x}{x}}{x}, \left(\frac{\frac{\sin x}{x}}{\cos x} - \mathsf{fma}\left(\frac{\frac{\sin x}{x}}{x}, \frac{\sin x}{\cos x}, \frac{\sin x}{x}\right)\right) + 1\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019168 +o rules:numerics
(FPCore (x)
  :name "sintan (problem 3.4.5)"
  (/ (- x (sin x)) (- x (tan x))))