conjf, conj, conjl - cppreference.com (original) (raw)
| Defined in header <complex.h> | ||
|---|---|---|
| float complex conjf( float complex z ); | (1) | (since C99) |
| double complex conj( double complex z ); | (2) | (since C99) |
| long double complex conjl( long double complex z ); | (3) | (since C99) |
| Defined in header <tgmath.h> | ||
| #define conj( z ) | (4) | (since C99) |
1-3) Computes the complex conjugate of z by reversing the sign of the imaginary part.
- Type-generic macro: if
zhas type long double complex, long double imaginary, or long double,conjlis called. Ifzhas type float complex, float imaginary, or float,conjfis called. Ifzhas type double complex, double imaginary, double, or any integer type,conjis called.
[edit] Parameters
[edit] Return value
The complex conjugate of z.
[edit] Notes
On C99 implementations that do not implement I as _Imaginary_I, conj may be used to obtain complex numbers with negative zero imaginary part. In C11, the macro CMPLX is used for that purpose.
[edit] Example
#include <stdio.h> #include <complex.h> int main(void) { double complex z = 1.0 + 2.0I; double complex z2 = conj(z); printf("The conjugate of %.1f%+.1fi is %.1f%+.1fi\n", creal(z), cimag(z), creal(z2), cimag(z2)); printf("Their product is %.1f%+.1fi\n", creal(zz2), cimag(z*z2)); }
Output:
The conjugate of 1.0+2.0i is 1.0-2.0i Their product is 5.0+0.0i
[edit] References
C11 standard (ISO/IEC 9899:2011):
7.3.9.4 The conj functions (p: 198)
7.25 Type-generic math <tgmath.h> (p: 373-375)
G.7 Type-generic math <tgmath.h> (p: 545)
C99 standard (ISO/IEC 9899:1999):
7.3.9.3 The conj functions (p: 179)
7.22 Type-generic math <tgmath.h> (p: 335-337)
G.7 Type-generic math <tgmath.h> (p: 480)