std:: polar (std::complex)
|
Défini dans l'en-tête
<complex>
|
||
|
template
<
class
T
>
std:: complex < T > polar ( const T & r, const T & theta = T ( ) ) ; |
||
Retourne un nombre complexe avec une magnitude r et un angle de phase theta .
Le comportement est indéfini si r est négatif ou NaN, ou si theta est infini.
Table des matières |
Paramètres
| r | - | magnitude |
| theta | - | angle de phase |
Valeur de retour
Un nombre complexe déterminé par r et theta .
Notes
std :: polar ( r, theta ) est équivalent à l'une des expressions suivantes :
- r * std:: exp ( theta * 1i )
- r * ( cos ( theta ) + sin ( theta ) * 1i )
- std:: complex ( r * cos ( theta ) , r * sin ( theta ) ) .
Utiliser polar au lieu de exp peut être environ 4.5x plus rapide dans les boucles vectorisées.
Exemple
#include <cmath> #include <complex> #include <iomanip> #include <iostream> #include <numbers> using namespace std::complex_literals; int main() { constexpr auto π_2{std::numbers::pi / 2.0}; constexpr auto mag{1.0}; std::cout << std::fixed << std::showpos << std::setprecision(1) << " θ: │ polaire: │ exp: │ complexe: │ trig:\n"; for (int n{}; n != 4; ++n) { const auto θ{n * π_2}; std::cout << std::setw(4) << 90 * n << "° │ " << std::polar(mag, θ) << " │ " << mag * std::exp(θ * 1.0i) << " │ " << std::complex(mag * cos(θ), mag * sin(θ)) << " │ " << mag * (cos(θ) + 1.0i * sin(θ)) << '\n'; } }
Sortie :
θ: │ polaire: │ exp: │ complexe: │ trig: +0° │ (+1.0,+0.0) │ (+1.0,+0.0) │ (+1.0,+0.0) │ (+1.0,+0.0) +90° │ (+0.0,+1.0) │ (+0.0,+1.0) │ (+0.0,+1.0) │ (+0.0,+1.0) +180° │ (-1.0,+0.0) │ (-1.0,+0.0) │ (-1.0,+0.0) │ (-1.0,+0.0) +270° │ (-0.0,-1.0) │ (-0.0,-1.0) │ (-0.0,-1.0) │ (-0.0,-1.0)
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 2459 | C++98 | comportement incertain pour certaines entrées | rendu indéfini |
| LWG 2870 | C++98 | valeur par défaut du paramètre theta non dépendante | rendue dépendante |
Voir aussi
|
renvoie la magnitude d'un nombre complexe
(modèle de fonction) |
|
|
renvoie l'angle de phase
(modèle de fonction) |
|
|
exponentielle complexe de base
e
(modèle de fonction) |