std:: pow (std::complex)
|
Определено в заголовке
<complex>
|
||
|
template
<
class
T
>
std:: complex < T > pow ( const std:: complex < T > & x, int y ) ; |
(1) | (до C++11) |
|
template
<
class
T
>
std:: complex < T > pow ( const std:: complex < T > & x, const std:: complex < T > & y ) ; |
(2) | |
|
template
<
class
T
>
std:: complex < T > pow ( const std:: complex < T > & x, const T & y ) ; |
(3) | |
|
template
<
class
T
>
std:: complex < T > pow ( const T & x, const std:: complex < T > & y ) ; |
(4) | |
|
Дополнительные перегрузки
(начиная с C++11)
|
||
|
Определено в заголовке
<complex>
|
||
| (A) | ||
|
template
<
class
T1,
class
T2
>
std::
complex
<
/* общий-тип */
>
|
(до C++23) | |
|
template
<
class
T1,
class
T2
>
std::
complex
<
std::
common_type_t
<
T1, T2
>>
|
(начиная с C++23) | |
| (B) | ||
|
template
<
class
T,
class
NonComplex
>
std::
complex
<
/* общий-тип */
>
|
(до C++23) | |
|
template
<
class
T,
class
NonComplex
>
std::
complex
<
std::
common_type_t
<
T, NonComplex
>>
|
(начиная с C++23) | |
| (C) | ||
|
template
<
class
T,
class
NonComplex
>
std::
complex
<
/* общий-тип */
>
|
(до C++23) | |
|
template
<
class
T,
class
NonComplex
>
std::
complex
<
std::
common_type_t
<
T, NonComplex
>>
|
(начиная с C++23) | |
| (since C++11) |
Содержание |
Параметры
| x | - | основание |
| y | - | показатель степени |
Возвращаемое значение
.
Примечания
Перегрузка (1) была предоставлена в C++98 для соответствия дополнительным перегрузкам (2) функции std::pow . Эти перегрузки были удалены в результате решения LWG issue 550 , а перегрузка (1) была удалена в результате решения LWG issue 844 .
Дополнительные перегрузки не обязаны быть предоставлены в точности как (A-C) . Они должны быть лишь достаточными для обеспечения того, чтобы для их первого аргумента base и второго аргумента exponent :
|
Если base и/или exponent имеют тип std:: complex < T > :
|
(до C++23) |
|
Если один аргумент имеет тип
std::
complex
<
T1
>
, а другой аргумент имеет тип
Если std:: common_type_t < T1, T2 > не является корректно сформированным, то программа является некорректной. |
(начиная с C++23) |
Пример
#include <complex> #include <iostream> int main() { std::cout << std::fixed; std::complex<double> z(1.0, 2.0); std::cout << "(1,2)^2 = " << std::pow(z, 2) << '\n'; std::complex<double> z2(-1.0, 0.0); // квадратный корень из -1 std::cout << "-1^0.5 = " << std::pow(z2, 0.5) << '\n'; std::complex<double> z3(-1.0, -0.0); // другая сторона разреза std::cout << "(-1,-0)^0.5 = " << std::pow(z3, 0.5) << '\n'; std::complex<double> i(0.0, 1.0); // i^i = exp(-pi / 2) std::cout << "i^i = " << std::pow(i, i) << '\n'; }
Вывод:
(1,2)^2 = (-3.000000,4.000000) -1^0.5 = (0.000000,1.000000) (-1,-0)^0.5 = (0.000000,-1.000000) i^i = (0.207880,0.000000)
Смотрите также
|
комплексный квадратный корень в области правой полуплоскости
(шаблон функции) |
|
|
(C++11)
(C++11)
|
возводит число в заданную степень (
x
y
)
(функция) |
|
применяет функцию
std::pow
к двум valarray или valarray и значению
(шаблон функции) |
|
|
Документация C
для
cpow
|
|