[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