Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      CMPLXF, CMPLX, CMPLXL

      From cppreference.com
      <c‎ |numeric‎ |complex
       
       
       
      Complex number arithmetic
      Types and the imaginary constant
      (C99)
      (C99)    
      CMPLX
      (C11)
      (C99)
      Manipulation
      (C99)
      (C99)
      (C99)
      (C99)
      (C99)
      (C99)
      Power and exponential functions
      (C99)
      (C99)
      (C99)
      (C99)
      Trigonometric functions
      (C99)
      (C99)
      (C99)
      (C99)
      (C99)
      (C99)
      Hyperbolic functions
      (C99)
      (C99)
      (C99)
      (C99)
      (C99)
      (C99)
       
      Defined in header<complex.h>
      floatcomplex       CMPLXF(float real,float imag);
      (since C11)
      doublecomplex      CMPLX(double real,double imag);
      (since C11)
      longdoublecomplex CMPLXL(longdouble real,longdouble 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 ofreal (converted to the specified argument type) and the imaginary part having the value ofimag (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 expressionsreal andimag are also suitable.

      Contents

      [edit]Parameters

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

      [edit]Return value

      A complex number composed ofreal andimag as the real and imaginary parts.

      [edit]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)))

      [edit]Example

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

      Output:

      z = 0.0-0.0i

      [edit]References

      • C11 standard (ISO/IEC 9899:2011):
      • 7.3.9.3 The CMPLX macros (p: 197)

      [edit]See also

      the imaginary unit constant i
      (macro constant)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/numeric/complex/CMPLX&oldid=77485"

      [8]ページ先頭

      ©2009-2025 Movatter.jp