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%2Fcomplex%2Fcmplx.html | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 devdocs/c/numeric%2Fcomplex%2Fcmplx.html (limited to 'devdocs/c/numeric%2Fcomplex%2Fcmplx.html') diff --git a/devdocs/c/numeric%2Fcomplex%2Fcmplx.html b/devdocs/c/numeric%2Fcomplex%2Fcmplx.html new file mode 100644 index 00000000..12dde11f --- /dev/null +++ b/devdocs/c/numeric%2Fcomplex%2Fcmplx.html @@ -0,0 +1,33 @@ +

CMPLXF, CMPLX, CMPLXL

Defined in header <complex.h>
float complex       CMPLXF( float real, float imag );
+
(since C11)
double complex      CMPLX( double real, double imag );
+
(since C11)
long double complex CMPLXL( long double real, long double imag );
+
(since C11)

Each of these macros expands to an expression that evaluates to the value of the specified complex type, with the real part having the value of real (converted to the specified argument type) and the imaginary part having the value of imag (converted to the specified argument type)

+

The expressions are suitable for use as initializers for objects with static or thread storage duration, as long as the expressions real and imag are also suitable.

+

Parameters

+ + +
real - the real part of the complex number to return
imag - the imaginary part of the complex number to return

Return value

A complex number composed of real and imag as the real and imaginary parts.

+

Notes

These macros are implemented as if the imaginary types are supported (even if they are otherwise not supported and _Imaginary_I is actually undefined) and as if defined as follows:

+
#define CMPLX(x, y) ((double complex)((double)(x) + _Imaginary_I * (double)(y)))
+#define CMPLXF(x, y) ((float complex)((float)(x) + _Imaginary_I * (float)(y)))
+#define CMPLXL(x, y) ((long double complex)((long double)(x) + \
+                      _Imaginary_I * (long double)(y)))

Example

#include <stdio.h>
+#include <complex.h>
+ 
+int main(void)
+{
+    double complex z = CMPLX(0.0, -0.0);
+    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
+}

Output:

+
z = 0.0-0.0i

References

See also

+ +
+
(C99)
the imaginary unit constant i
(macro constant)
C++ documentation for complex
+

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

+
-- cgit v1.2.3