Spec-Zone.ru › C

cexpf, cexp, cexpl

Определено в заголовке <complex.h>
float complex       cexpf( float complex z );
(1) (с C99)
double complex      cexp( double complex z );
(2) (с C99)
long double complex cexpl( long double complex z );
(3) (с C99)
Определено в заголовке <tgmath.h>
#define exp( z )
(4) (с C99)
1-3) Вычисляет комплексную экспоненту числа z по основанию e.
4) Тип-независимая макрокоманда: Если z имеет тип long double complex, вызывается cexpl. Если z имеет тип double complex, вызывается cexp, если z имеет тип float complex, вызывается cexpf. Если z — вещественное или целое число, то макрос вызывает соответствующую вещественную функцию (expf, exp, expl). Если z — мнимое число, вызывается соответствующая версия с комплексным аргументом.

Параметры

z - комплексный аргумент

Значение результата

Если ошибок нет, возвращается значение e в степени z, \(\small e^z\)ez.

Обработка ошибок и специальные значения

Ошибки сообщаются в соответствии с math_errhandling.

Если реализация поддерживает арифметику с плавающей точкой IEEE,

  • cexp(conj(z)) == conj(cexp(z))
  • Если z равно ±0+0i, результат равен 1+0i
  • Если z равно x+∞i (для любого конечного x), результат равен NaN+NaNi и генерируется FE_INVALID.
  • Если z равно x+NaNi (для любого конечного x), результат равен NaN+NaNi и может генерироваться FE_INVALID.
  • Если z равно +∞+0i, результат равен +∞+0i
  • Если z равно -∞+yi (для любого конечного y), результат равен +0cis(y)
  • Если z равно +∞+yi (для любого конечного ненулевого y), результат равен +∞cis(y)
  • Если z равно -∞+∞i, результат равен ±0±0i (знаки не определены)
  • Если z равно +∞+∞i, результат равен ±∞+NaNi и генерируется FE_INVALID (знак действительной части не определен)
  • Если z равно -∞+NaNi, результат равен ±0±0i (знаки не определены)
  • Если z равно +∞+NaNi, результат равен ±∞+NaNi (знак действительной части не определен)
  • Если z равно NaN+0i, результат равен NaN+0i
  • Если z равно NaN+yi (для любого ненулевого y), результат равен NaN+NaNi и может генерироваться FE_INVALID
  • Если z равно NaN+NaNi, результат равен NaN+NaNi

где \(\small{\rm cis}(y)\)cis(y) равно \(\small \cos(y)+{\rm i}\sin(y)\)cos(y) + i sin(y)

Примечания

Комплексная экспонента \(\small e^z\)ez для \(\small z = x + {\rm i}y\)z = x+iy равна \(\small e^x {\rm cis}(y)\)ex cis(y), или \(\small e^x (\cos(y)+{\rm i}\sin(y))\)ex (cos(y) + i sin(y))

Функция экспоненты — целая функция в комплексной плоскости и не имеет разрывов.

Пример

#include <stdio.h>
#include <math.h>
#include <complex.h>
 
int main(void)
{
    double PI = acos(-1);
    double complex z = cexp(I * PI); // Euler's formula
    printf("exp(i*pi) = %.1f%+.1fi\n", creal(z), cimag(z));
 
}

Вывод:

exp(i*pi) = -1.0+0.0i

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.3.7.1 Функции cexp (стр: 194)
    • 7.25 Тип-независимая математика <tgmath.h> (стр: 373-375)
    • G.6.3.1 Функции cexp (стр: 543)
    • G.7 Тип-независимая математика <tgmath.h> (стр: 545)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.3.7.1 Функции cexp (стр: 176)
    • 7.22 Тип-независимая математика <tgmath.h> (стр: 335-337)
    • G.6.3.1 Функции cexp (стр: 478)
    • G.7 Тип-независимая математика <tgmath.h> (стр: 480)

См. также

clogclogfclogl
(C99)(C99)(C99)
вычисляет комплекный натуральный логарифм
(функция)
expexpfexpl
(C99)(C99)
вычисляет e в степени данного числа (\({\small e^x}\)ex)
(функция)
Документация C++ для exp

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

Spec-Zone.ru

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