From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/c/numeric%2Fmath%2Fcospi.html | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 devdocs/c/numeric%2Fmath%2Fcospi.html (limited to 'devdocs/c/numeric%2Fmath%2Fcospi.html') diff --git a/devdocs/c/numeric%2Fmath%2Fcospi.html b/devdocs/c/numeric%2Fmath%2Fcospi.html new file mode 100644 index 00000000..f260c5fb --- /dev/null +++ b/devdocs/c/numeric%2Fmath%2Fcospi.html @@ -0,0 +1,77 @@ +

cospi, cospif, cospil, cospid32, cospid64, cospid128

Defined in header <math.h>
float       cospif( float arg );
+
(1) (since C23)
double      cospi( double arg );
+
(2) (since C23)
long double cospil( long double arg );
+
(3) (since C23)
_Decimal32  cospid32( _Decimal32 arg );
+
(4) (since C23)
_Decimal64  cospid64( _Decimal64 arg );
+
(5) (since C23)
_Decimal128 cospid128( _Decimal128 arg );
+
(6) (since C23)
Defined in header <tgmath.h>
#define cospi( arg )
+
(7) (since C23)
+1-6) Computes the cosine of π·arg measured in radians, thus regarding arg as a measurement in half-revolutions.
+7) Type-generic macro: calls the correct function based on the type of arg. If the argument has integer type, (2) (cospi) is called.
+ +

The functions (4-6) are declared if and only if the implementation predefines __STDC_IEC_60559_DFP__ (i.e. the implementation supports decimal floating-point numbers).

+
(since C23)

Parameters

+ +
arg - floating-point value whose product with π represents an angle in radians

Return value

If no errors occur, the cosine of π·arg (cos(π×arg)) in the range [-1, +1], is returned.

+

Error handling

Errors are reported as specified in math_errhandling.

+

If the implementation supports IEEE floating-point arithmetic (IEC 60559):

+

Example

#include <errno.h>
+#include <fenv.h>
+#include <math.h>
+#include <stdio.h>
+ 
+#ifndef __GNUC__
+#pragma STDC FENV_ACCESS ON
+#endif
+ 
+#if __STDC_VERSION__ < 202311L
+// A naive implementation of a subset of cospi family
+double cospi(double arg)
+{
+    return cos(arg * (double)3.1415926535897932384626433);
+}
+#endif
+ 
+int main(void)
+{
+    const double pi = acos(-1);
+ 
+    // typical usage
+    printf("cospi(1) = %f, cos(pi) = %f\n", cospi(1), cos(pi));
+    printf("cospi(0.5) = %f, cos(pi/2) = %f\n", cospi(0.5), cos(pi / 2));
+    printf("cospi(-0.75) = %f, cos(-3*pi/4) = %f\n", cospi(-0.75), cos(-3 * pi / 4));
+ 
+    // special values
+    printf("cospi(+0) = %f\n", cospi(0.0));
+    printf("cospi(-0) = %f\n", cospi(-0.0));
+ 
+    // error handling
+    feclearexcept(FE_ALL_EXCEPT);
+    printf("cospi(INFINITY) = %f\n", cospi(INFINITY));
+    if (fetestexcept(FE_INVALID))
+        puts("    FE_INVALID raised");
+}

Possible output:

+
cospi(1) = -1.000000, cos(pi) = -1.000000
+cospi(0.5) = 0.000000, cos(pi/2) = 0.000000
+cospi(-0.75) = -0.707107, cos(-3*pi/4) = -0.707107
+cospi(+0) = 1.000000
+cospi(-0) = 1.000000
+cospi(INFINITY) = -nan
+    FE_INVALID raised

References

See also

+
+
(C99)(C99)
computes cosine (\({\small\cos{x} }\)cos(x))
(function)
+

+ © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
+ https://en.cppreference.com/w/c/numeric/math/cospi +

+
-- cgit v1.2.3