[libc-commits] [libc] [libc] Add sinpif16 function (PR #110994)
via libc-commits
libc-commits at lists.llvm.org
Sat Oct 12 02:24:56 PDT 2024
================
@@ -115,22 +112,22 @@ LLVM_LIBC_FUNCTION(float16, sinpif16, (float16 x)) {
// Degree-6 minimax even polynomial for sin(y*pi/32)/y generated by Sollya
// with:
// > Q = fpminimax(sin(y*pi/32)/y, [|0, 2, 4, 6|], [|SG...|], [0, 0.5]);
- sin_y = y * fputil::polyeval(ysq, 0x1.921fb6p-4f, -0x1.4aeabcp-13f,
- 0x1.a03354p-21f, -0x1.ad02d2p-20f);
+ float sin_y = y * fputil::polyeval(ysq, 0x1.921fb6p-4f, -0x1.4aeabcp-13f,
+ 0x1.a03354p-21f, -0x1.ad02d2p-20f);
// Note that cosm1_y = cos(y*pi/32) - 1 = cos_y - 1
- // Derivation: // sin(x * pi)
- // = sin((k + y) * pi/32) // = sin_y *
- // cos_k + cos_y * sin_k // = cos_k * sin_y +
- // sin_k * (1 + cos_y - 1) Degree-6 minimax even polynomial for cos(y*pi/32)
- // generated by Sollya with: > P = fpminimax(cos(y*pi/32), [|0, 2, 4, 6|],
- // [|1, SG...|], [0, 0.5]);
- cosm1_y = ysq * fputil::polyeval(ysq, -0x1.3bd3ccp-8f, 0x1.03a61ap-18f,
- 0x1.a6f7a2p-29f);
-
- if (LIBC_UNLIKELY(sin_y == 0 && sin_k == 0)) {
+ // Derivation:
+ // sin(x * pi) = sin((k + y) * pi/32)
+ // = sin_y * cos_k + cos_y * sin_k
+ // = cos_k * sin_y + sin_k * (1 + cos_y - 1)
+ // Degree-6 minimax even polynomial for cos(y*pi/32)
+ // generated by Sollya with:
----------------
overmighty wrote:
Nit: formatting.
```suggestion
// Degree-6 minimax even polynomial for cos(y*pi/32) generated by Sollya with:
```
https://github.com/llvm/llvm-project/pull/110994
More information about the libc-commits
mailing list