diff options
| author | lntue <35648136+lntue@users.noreply.github.com> | 2023-11-06 16:54:25 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-06 16:54:25 -0500 |
| commit | bc7a3bd864be696217c4d11eddf16bed7646b60f (patch) | |
| tree | 40f29249601d28f090708ace1611811bb9534f13 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | |
| parent | 0156b6ed6561f67f1b86ceef027908dd425e0615 (diff) | |
[libc][math] Implement powf function correctly rounded to all rounding modes. (#71188)
We compute `pow(x, y)` using the formula
```
pow(x, y) = x^y = 2^(y * log2(x))
```
We follow similar steps as in `log2f(x)` and `exp2f(x)`, by breaking
down into `hi + mid + lo` parts, in which `hi` parts are computed using
the exponent field directly, `mid` parts will use look-up tables, and
`lo` parts are approximated by polynomials.
We add some speedup for common use-cases:
```
pow(2, y) = exp2(y)
pow(10, y) = exp10(y)
pow(x, 2) = x * x
pow(x, 1/2) = sqrt(x)
pow(x, -1/2) = rsqrt(x) - to be added
```
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions
