__COSPI(3) | Library Functions Manual | __COSPI(3) |
__cospi
—
cosine-pi function
#include
<math.h>
float
__cospif
(float
x);
double
__cospi
(double
x);
The
__cospi
()
function returns the cosine of pi times x (measured in
radians). This can be computed more accurately than
cos
(M_PI * x), because it can
implicitly use as many bits of pi as are necessary to deliver a well-rounded
result, instead of the 53-bits to which M_PI is limited. For large
x it may also be more efficient, as the argument
reduction involved is significantly simpler.
This function may be especially useful for working with
degrees; whereas
cos
(M_PI
* x / 180.0) cannot produce exact results for angles that naively
"should" be exact, like 90 degrees,
__cospi
(x / 180.0) can be
computed exactly.
__cospi
(-x) is the
same as __cospi
(x) for any
finite x.
__cospi
(n) returns +1 for any
even integer n.
__cospi
(n) returns -1 for any
odd integer n.
__cospi
(n + 0.5) returns +0 for
any integer n.
__cospi
(±infinity) raises
the invalid floating-point exception and returns
NaN.
If you need to apply the __cospi
()
function to SIMD vectors or arrays, using the following functions provided
by the Accelerate.framework may be useful:
#include
<Accelerate/Accelerate.h>
vFloat
vcospif
(vFloat
x);
void
vvcospif
(float
*y, const float *x, const int
*n);
void
vvcospi
(double
*y, const double *x, const int
*n);
December 15, 2012 | macOS 14.6 |