diff options
author | lntue <35648136+lntue@users.noreply.github.com> | 2024-04-01 13:31:07 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-01 13:31:07 -0400 |
commit | 2be722587f5987891ed8b2904a03f983e987f226 (patch) | |
tree | e0f266599e18baa39737a634298c6d7ee8fea9ee /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | a54930e696a275ac3947484f44d770cd587ce147 (diff) | |
download | llvm-2be722587f5987891ed8b2904a03f983e987f226.zip llvm-2be722587f5987891ed8b2904a03f983e987f226.tar.gz llvm-2be722587f5987891ed8b2904a03f983e987f226.tar.bz2 |
[libc][math] Implement atan2f correctly rounded to all rounding modes. (#86716)
We compute atan2f(y, x) in 2 stages:
- Fast step: perform computations in double precision , with relative
errors < 2^-50
- Accurate step: if the result from the Fast step fails Ziv's rounding
test, then we perform computations in double-double precision, with
relative errors < 2^-100.
On Ryzen 5900X, worst-case latency is ~ 200 clocks, compared to average
latency ~ 60 clocks, and average reciprocal throughput ~ 20 clocks.
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions