While not directly providing you with knowledge, I think answers to the below will help guide further replies to this post :)
i have a single core system and have a strong affectation for using optimisations, it's one of the things i enjoy most about coding.
for example a taylor series approximation may be sufficient if only a rough idea of angle is needed.
(Emphasis added)
Is only a rough idea of angle needed?
In other words, what are your current results, and what is your target? The more specific, the better.
You acknowledge that some optimizations can make your results less accurate, but potentially more performant. In the extreme ends of the spectrum, we've got A) Calculating everything with as much accuracy as is feasible and B) Returning a constant value regardless of input.
Where on that spectrum do you need to be? While there are probably tricks to maintain a specific accuracy while still increasing performance, knowing what your requirements are will help inform the choices and algorithms.
If the current accuracy is needed, have you considered profiling the amount of calls and see if you can reduce it? After all, the most performant code is the code that is never invoked!
You might just be converting a lot more than you need to do; this kind of conversion doesn't sound all to expensive to me.
On the other hand, it also sounds like you want this highly performant just because you want it to be (for the sake of enjoyment from optimazation), not because it needs to be. That's also valid, but keep in mind a lot of optimizations improve 1 or 2 of the following aspects, while decreasing the others:
1. Time to process.
2. Storage space.
3. Life-time spent on implementing.
Even in this case you'd need to decide how accurate it needs to be, while also having some sort of performance goal in mind.