mirror of
https://github.com/fluencelabs/musl
synced 2025-06-27 21:52:02 +00:00
complex: add C11 CMPLX macros and replace cpack with them
This commit is contained in:
@ -44,22 +44,22 @@ double complex cexp(double complex z)
|
||||
|
||||
/* cexp(x + I 0) = exp(x) + I 0 */
|
||||
if ((hy | ly) == 0)
|
||||
return cpack(exp(x), y);
|
||||
return CMPLX(exp(x), y);
|
||||
EXTRACT_WORDS(hx, lx, x);
|
||||
/* cexp(0 + I y) = cos(y) + I sin(y) */
|
||||
if (((hx & 0x7fffffff) | lx) == 0)
|
||||
return cpack(cos(y), sin(y));
|
||||
return CMPLX(cos(y), sin(y));
|
||||
|
||||
if (hy >= 0x7ff00000) {
|
||||
if (lx != 0 || (hx & 0x7fffffff) != 0x7ff00000) {
|
||||
/* cexp(finite|NaN +- I Inf|NaN) = NaN + I NaN */
|
||||
return cpack(y - y, y - y);
|
||||
return CMPLX(y - y, y - y);
|
||||
} else if (hx & 0x80000000) {
|
||||
/* cexp(-Inf +- I Inf|NaN) = 0 + I 0 */
|
||||
return cpack(0.0, 0.0);
|
||||
return CMPLX(0.0, 0.0);
|
||||
} else {
|
||||
/* cexp(+Inf +- I Inf|NaN) = Inf + I NaN */
|
||||
return cpack(x, y - y);
|
||||
return CMPLX(x, y - y);
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,6 +78,6 @@ double complex cexp(double complex z)
|
||||
* - x = NaN (spurious inexact exception from y)
|
||||
*/
|
||||
exp_x = exp(x);
|
||||
return cpack(exp_x * cos(y), exp_x * sin(y));
|
||||
return CMPLX(exp_x * cos(y), exp_x * sin(y));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user