Spec-Zone.ru › C

CMPLXF, CMPLX, CMPLXL

Определено в заголовочном файле <complex.h>
float complex       CMPLXF( float real, float imag );
(с C11)
double complex      CMPLX( double real, double imag );
(с C11)
long double complex CMPLXL( long double real, long double imag );
(с C11)

Каждый из этих макросов расширяется до выражения, которое вычисляет значение указанного комплексного типа, где вещественная часть имеет значение real (преобразованное к указанному типу аргумента), а мнимая часть имеет значение imag (преобразованное к указанному типу аргумента).

Выражения подходят для использования в качестве инициализаторов объектов со статическим или потоковым сроком хранения, при условии, что выражения real и imag также подходят.

Параметры

real - вещественная часть возвращаемого комплексного числа
imag - мнимая часть возвращаемого комплексного числа

Возвращаемое значение

Комплексное число, составленное из real и imag в качестве вещественной и мнимой части.

Примечания

Эти макросы реализуются так, как будто типы мнимых чисел поддерживаются (даже если они не поддерживаются в противном случае и _Imaginary_I фактически не определено) и как если бы они были определены следующим образом:

#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)))

Пример

#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));
}

Вывод:

z = 0.0-0.0i

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.3.9.3 Макросы CMPLX (стр. 197)

См. также

_Imaginary_I
(C99)
константа мнимой единицы i
(макро-константа)
Документация C++ для complex

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API