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

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

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

\end{array}
double f(double x) {
        double r565213 = x;
        double r565214 = sin(r565213);
        double r565215 = r565213 - r565214;
        double r565216 = tan(r565213);
        double r565217 = r565213 - r565216;
        double r565218 = r565215 / r565217;
        return r565218;
}

double f(double x) {
        double r565219 = x;
        double r565220 = -2.41224692961804;
        bool r565221 = r565219 <= r565220;
        double r565222 = sin(r565219);
        double r565223 = cos(r565219);
        double r565224 = r565222 / r565223;
        double r565225 = r565224 / r565219;
        double r565226 = r565219 * r565219;
        double r565227 = r565222 / r565226;
        double r565228 = r565222 / r565219;
        double r565229 = fma(r565224, r565227, r565228);
        double r565230 = r565225 - r565229;
        double r565231 = 1.0;
        double r565232 = r565225 * r565225;
        double r565233 = r565231 + r565232;
        double r565234 = r565230 + r565233;
        double r565235 = 2.424314253224005;
        bool r565236 = r565219 <= r565235;
        double r565237 = 0.225;
        double r565238 = -0.5;
        double r565239 = fma(r565237, r565226, r565238);
        double r565240 = 0.009642857142857142;
        double r565241 = r565226 * r565240;
        double r565242 = r565226 * r565241;
        double r565243 = r565239 - r565242;
        double r565244 = r565236 ? r565243 : r565234;
        double r565245 = r565221 ? r565234 : r565244;
        return r565245;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -2.41224692961804 or 2.424314253224005 < 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}{\left(1 + \frac{\frac{\sin x}{\cos x}}{x} \cdot \frac{\frac{\sin x}{\cos x}}{x}\right) + \left(\frac{\frac{\sin x}{\cos x}}{x} - \mathsf{fma}\left(\frac{\sin x}{\cos x}, \frac{\sin x}{x \cdot x}, \frac{\sin x}{x}\right)\right)}\]

    if -2.41224692961804 < x < 2.424314253224005

    1. Initial program 63.0

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

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

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

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

Reproduce

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