Espacios de nombres
Variantes
Acciones

std::polar(std::complex)

De cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
Definido en el archivo de encabezado <complex>
template<class T >
complex<T> polar(const T& r, const T& theta = T());

Devuelve un número complejo con magnitud r y ángulo de fase theta.

El comportamiento no está definido si r es negativo o NaN, o si theta es infinito.

Contenido

[editar]Parámetros

r - La magnitud.
theta - El ángulo de fase.

[editar]Valor de retorno

Un número complejo determinado por r y theta.

[editar]Notas

std::polar(r, theta) es equivelente a cualquiera de las expresiones siguientes:

  • r *std::exp(theta * 1i)
  • r *(cos(theta)+ sin(theta)* 1i)
  • std::complex(r * cos(theta), r * sin(theta)).

Usar polar en lugar de exp puede ser aproximadamente 4.5x más rápido en bucles vectorizados.

[editar]Ejemplo

#include <cmath>#include <complex>#include <iomanip>#include <iostream>#include <numbers>usingnamespace std::complex_literals;   int main(){constexprauto π_2 {std::numbers::pi/2.0};constexprauto mag {1.0};   std::cout<<std::fixed<<std::showpos<<std::setprecision(1)<<" θ: │ polar: │ exp: │ complex: │ trig:\n";for(int n{}; n !=4;++n){constauto θ {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';}}

Salida:

 θ: │ polar: │ exp: │ complex: │ 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)

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2459 C++98 El comportamiento no estaba claro para algunas entradas. Se hizo no definido.
LWG 2870 C++98 El valor por defecto del parámetro theta no era dependiente, Se hizo dependiente.

[editar]Véase también

Devuelve la magnitud de un número complejo.
(plantilla de función)[editar]
Devuelve el ángulo de fase.
(plantilla de función)[editar]
Base e exponencial compleja.
(plantilla de función)[editar]
close