Namespaces
Variants

cexpf, cexp, cexpl

From cppreference.net
Определено в заголовке <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) Вычисляет комплексную экспоненту по основанию e от z .
4) Типонезависимый макрос: Если z имеет тип long double complex , вызывается cexpl . Если z имеет тип double complex , вызывается cexp , если z имеет тип float complex , вызывается cexpf . Если z является вещественным или целочисленным, то макрос вызывает соответствующую вещественную функцию ( expf , exp , expl ). Если z является мнимым, вызывается соответствующая версия для комплексного аргумента.

Содержание

Параметры

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

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

Если ошибок не возникает, возвращается e в степени z , e z
.

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

Ошибки сообщаются в соответствии с 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

где cis(y) это cos(y) + i sin(y)

Примечания

Комплексная экспоненциальная функция e z
для z = x+iy равна e x
cis(y)
, или e x
(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); // Формула Эйлера
    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 The cexp functions (стр. 194)
  • 7.25 Type-generic math <tgmath.h> (стр. 373-375)
  • G.6.3.1 The cexp functions (стр. 543)
  • G.7 Type-generic math <tgmath.h> (стр. 545)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.3.7.1 The cexp functions (стр. 176)
  • 7.22 Type-generic math <tgmath.h> (стр. 335-337)
  • G.6.3.1 The cexp functions (стр. 478)
  • G.7 Type-generic math <tgmath.h> (стр. 480)

Смотрите также

(C99) (C99) (C99)
вычисляет комплексный натуральный логарифм
(функция)
(C99) (C99)
вычисляет e в заданной степени ( e x )
(функция)