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) Вычисляет комплексную экспоненту по основанию e от z.
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/c/numeric/complex/cexp

Spec-Zone.ru

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