More precision for fastCos and fastSin #264
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I tested the precision of glm::fastCos and glm::fastSin against glm::cos and glm::sin on the range [-pi pi]. The max error is ~0.2 on my computer.
I've made some changes and now it's ~0.000007. It's also slightly faster and work on a wider range.
To give some context, I had a problem of cross platform float determinism whith glm::cos and glm::sin, because theses methods rely on .
Using the fastCos and fastSin solve my determinism problem, but the accuracy was not good enough anymore.
If you are ok with the code, I can improve the rest of the fast_trigonometry.
For reference, I used the same method as the one found in "A Guide to Approximations" by Jack G. Ganssle