@@ -75,28 +75,28 @@ LLVM_LIBC_FUNCTION(float16, cospif16, (float16 x)) {
75
75
// polynomials generated by Sollya.
76
76
77
77
// For signed zeros
78
- if (LIBC_UNLIKELY (x_abs == 0U )) return fputil::cast<float16>(1 .0f );
78
+ if (LIBC_UNLIKELY (x_abs == 0U ))
79
+ return fputil::cast<float16>(1 .0f );
79
80
80
81
// Numbers greater or equal to 2^10 are integers, or infinity, or NaN
81
82
if (LIBC_UNLIKELY (x_abs >= 0x6400 )) {
82
83
if (LIBC_UNLIKELY (x_abs <= 0x67FF )) {
83
- return fputil::cast<float16>((x_abs & 0x1 ) ? -1 .0f : 1 .0f );
84
+ return fputil::cast<float16>((x_abs & 0x1 ) ? -1 .0f : 1 .0f );
84
85
}
85
-
86
+
86
87
// Check for NaN or infintiy values
87
88
if (LIBC_UNLIKELY (x_abs >= 0x7c00 )) {
88
89
// If value is equal to infinity
89
90
if (x_abs == 0x7c00 ) {
90
91
fputil::set_errno_if_required (EDOM);
91
- fputil::raise_except_if_required (FE_INVALID);
92
+ fputil::raise_except_if_required (FE_INVALID);
92
93
}
93
94
94
95
return x + FPBits::quiet_nan ().get_val ();
95
96
}
96
-
97
- return fputil::cast<float16>(1 .0f );
97
+
98
+ return fputil::cast<float16>(1 .0f );
98
99
}
99
-
100
100
101
101
float f32 = x;
102
102
float y;
@@ -107,16 +107,16 @@ LLVM_LIBC_FUNCTION(float16, cospif16, (float16 x)) {
107
107
108
108
// Recall;
109
109
// cos(x * pi/32) = cos((k + y) * pi/32)
110
- // = cos(y * pi/32) * cos(k * pi/32)
111
- // - sin(y * pi/32) * sin(k * pi/32)
110
+ // = cos(y * pi/32) * cos(k * pi/32)
111
+ // - sin(y * pi/32) * sin(k * pi/32)
112
112
// Recall, after range reduction, -0.5 <= y <= 0.5. For very small
113
113
// values of y, calculating sin(y * p/32) can be inaccurate. Generating a
114
114
// polynomial for sin(y * p/32)/y instead significantly reduces the relative
115
115
// errors.
116
116
float ysq = y * y;
117
117
118
118
// Degree-6 minimax even polynomial for sin(y*pi/32)/y generated by Sollya
119
- // with:
119
+ // with:
120
120
// > Q = fpminimax(sin(y*pi/32)/y, [|0, 2, 4, 6|], [|SG...|], [0, 0.5]);
121
121
float sin_y = y * fputil::polyeval (ysq, 0x1 .921fb6p-4f , -0x1 .4aeabcp-13f ,
122
122
0x1 .a03354p -21f , -0x1 .ad02d2p -20f );
@@ -136,6 +136,7 @@ LLVM_LIBC_FUNCTION(float16, cospif16, (float16 x)) {
136
136
137
137
// Since, cosm1_y = cos_y - 1, therefore:
138
138
// cos(x * pi) = cos_k(cosm1_y) + cos_k - sin_k * sin_y
139
- return fputil::cast<float16>(fputil::multiply_add (cos_k, cosm1_y, fputil::multiply_add (-sin_k, sin_y, cos_k)));
139
+ return fputil::cast<float16>(fputil::multiply_add (
140
+ cos_k, cosm1_y, fputil::multiply_add (-sin_k, sin_y, cos_k)));
140
141
}
141
142
} // namespace LIBC_NAMESPACE_DECL
0 commit comments