\frac{x - \sin x}{x - \tan x}
\begin{array}{l}
\mathbf{if}\;x \leq -0.08512733689796546 \lor \neg \left(x \leq 0.10015501263761316\right):\\
\;\;\;\;\frac{x - \sin x}{x - \tan x}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(0.225, x \cdot x, \mathsf{fma}\left(0.00024107142857142857, {x}^{6}, \mathsf{fma}\left({x}^{4}, -0.009642857142857142, -0.5\right)\right)\right)\\
\end{array}
(FPCore (x) :precision binary64 (/ (- x (sin x)) (- x (tan x))))
(FPCore (x)
:precision binary64
(if (or (<= x -0.08512733689796546) (not (<= x 0.10015501263761316)))
(/ (- x (sin x)) (- x (tan x)))
(fma
0.225
(* x x)
(fma
0.00024107142857142857
(pow x 6.0)
(fma (pow x 4.0) -0.009642857142857142 -0.5)))))double code(double x) {
return (x - sin(x)) / (x - tan(x));
}
double code(double x) {
double tmp;
if ((x <= -0.08512733689796546) || !(x <= 0.10015501263761316)) {
tmp = (x - sin(x)) / (x - tan(x));
} else {
tmp = fma(0.225, (x * x), fma(0.00024107142857142857, pow(x, 6.0), fma(pow(x, 4.0), -0.009642857142857142, -0.5)));
}
return tmp;
}



Bits error versus x
if x < -0.0851273368979654638 or 0.100155012637613158 < x Initial program 0.0
if -0.0851273368979654638 < x < 0.100155012637613158Initial program 63.2
Taylor expanded in x around 0 0.0
Simplified0.0
Taylor expanded in x around 0 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2022081
(FPCore (x)
:name "sintan (problem 3.4.5)"
:precision binary64
(/ (- x (sin x)) (- x (tan x))))