When I try to calculate the function $f(x)=1-\operatorname{sinc}x$ for small values of $x$ I get large relative errors due to catastrophic cancellation. I want an accurate way to calculate $f(x)$ without using a series expansion or an iterative method. (For my purposes, accurate means always within about 5 ULPs).
I can easily calculate $\operatorname{sinc}x$. The problem is calculating $1-\operatorname{sinc}x$. I am looking for a way that does not simply compute a truncated series like this:
$$ \begin{aligned} f(x) &= 1-\operatorname{sinc}x \\ &= 1-\frac{\sin x}{x} \\ &= 1-\left(1-\frac{x^2}{3!}+\frac{x^4}{5!}-...\right) \\ &= \frac{x^2}{3!}-\frac{x^4}{5!}+... \\ \end{aligned} $$
Notice the problematic $1-1$ in the second-last line above.
I tried to reformulate $f(x)$ in terms of standard functions by applying trigonometric identities. After finding the common denominator $x$, there are no identities that bridge the $x$ and $\sin x$ terms in the numerator.
I also tried an approach similar to Kahan's $\operatorname{log1p}()$ and $\operatorname{expm1}()$ which rely on matching the loss rates between numerator and denominator, but I still get large errors. Maybe that only works for functions involving $\log$ and $\exp$.