std::complex
Definido en el archivo de encabezado <complex>
|
||
template< class T > class complex; |
(1) | |
template<> class complex<float>; |
(2) | |
template<> class complex<double>; |
(3) | |
template<> class complex<long double>; |
(4) | |
Las especializaciones std::complex<float>, std::complex<double>, y std::complex<long double> son LiteralType para representar y manipular números complejos.
Contenido |
[editar] Parámetros de plantilla
T | - | El tipo de los componentes real e imaginario. El comportamiento no está especificado (y puede fallar al compilar) si T no es float, double o long double y no definido si T no es NumericType. |
[editar] Tipos miembro
Tipo miembro | Definición |
value_type
|
T
|
[editar] Funciones miembro
Construye un número complejo. (función miembro pública) | |
Asigna el contenido. (función miembro pública) | |
Accede a la parte real del número complejo. (función miembro pública) | |
Accede a la parte imaginaria del número complejo. (función miembro pública) | |
Asignación compuesta de dos números complejos o un complejo y un escalar. (función miembro pública) |
[editar] Funciones no miembro
Aplica operadores unarios a números complejos. (plantilla de función) | |
Realiza la aritmética de números complejos en dos valores complejos o un complejo y un escalar. (plantilla de función) | |
Compara dos números complejos o un complejo y un escalar. (plantilla de función) | |
Serializa y deserializa un número complejo. (plantilla de función) | |
Devuelve el componente real. (plantilla de función) | |
Devuelve el componente imaginario. (plantilla de función) | |
Devuelve la magnitud de un número complejo. (plantilla de función) | |
Devuelve el ángulo de fase. (plantilla de función) | |
Devuelve la magnitud al cuadrado. (plantilla de función) | |
Devuelve el complejo conjugado. (plantilla de función) | |
(C++11) |
Devuelve la proyección sobre la esfera de Riemann. (plantilla de función) |
Construye un número complejo a partir de una magnitud y un ángulo de fase. (plantilla de función) | |
Funciones exponenciales | |
Base e exponencial compleja. (plantilla de función) | |
Logaritmo natural complejo con los cortes de ramificaciones a lo largo del eje real negativo. (plantilla de función) | |
Logaritmo común complejo con los cortes de ramificaciones a lo largo del eje real negativo. (plantilla de función) | |
Funciones de potencias | |
Potencia compleja; uno o ambos argumentos pueden ser un número complejo. (plantilla de función) | |
Raíz cuadrada en el rango del plano medio derecho. (plantilla de función) | |
Funciones trigonométricas | |
Calcula el seno de un número complejo (sen(z)). (plantilla de función) | |
Calcula el coseno de un número complejo (cos(z)). (plantilla de función) | |
Calcula la tangente de un número complejo (tan(z)). (plantilla de función) | |
(C++11) |
Calcula el arco seno de un número complejo (arcsin(z)). (plantilla de función) |
(C++11) |
Calcula el arco coseno de un número complejo (arccos(z)). (plantilla de función) |
(C++11) |
Calcula la arco tangente de un número complejo (arctan(z)). (plantilla de función) |
Funciones hiperbólicas | |
Calcula el seno hiperbólico de un número complejo (sinh(z)). (plantilla de función) | |
Calcula el coseno hiperbólico de un número complejo (cosh(z)). (plantilla de función) | |
Calcula tangente hiperbólica de un número complejo (tanh(z)). (plantilla de función) | |
(C++11) |
Calcula el área del seno hiperbólico de un número complejo (arsinh(z)). (plantilla de función) |
(C++11) |
Calcula el área del coseno hiperbólico de un número complejo (arcosh(z)). (plantilla de función) |
(C++11) |
Calcula el área de la tangente hiperbólica de un número complejo (artanh(z)). (plantilla de función) |
[editar] Acceso orientado a arrays
Para cualquier objeto Para cualquier puntero a un elemento de un array de La intención de este requerimiento es preservar la compatibilidad binaria entre los tipos de números complejos de la biblioteca de C++ y los tipos de números complejos del lenguaje C (y arrays de los mismos), que tienen un requerimiento de representación de objetos idéntico. |
(desde C++11) |
[editar] Notas de implementación
Para satisfacer los requerimientos del acceso orientado a arrays, una implementación está restringida para almacenar los componentes reales e imaginarios de una especialización std::complex en ubicaciones de memoria separadas y adyacentes. Las posibles declaraciones para sus datos miembro no estáticos incluyen:
Una implementación no puede declarar datos miembro no estáticos adicionales que ocuparían almacenamiento separado de los componentes reales e imaginarios, y debe asegurarse de que la especialización de la plantilla de clase no contenga ningún relleno. La implementación también debe garantizar que las optimizaciones para el acceso al array tengan en cuenta la posibilidad de que un puntero a value_type pueda estar creando un alias de una especialización std::complex o un array del mismo. |
(desde C++11) |
[editar] Literales
Definido en el espacio de nombres
std::literals::complex_literals | |
Un literal std::complex que representa un número imaginario puro. (función) |
[editar] Ejemplo
#include <iostream> #include <iomanip> #include <complex> #include <cmath> int main() { using namespace std::complex_literals; std::cout << std::fixed << std::setprecision(1); std::complex<double> z1 = 1i * 1i; // unidad imaginaria al cuadrado std::cout << "i * i = " << z1 << '\n'; std::complex<double> z2 = std::pow(1i, 2); // unidad imaginaria al cuadrado std::cout << "pow(i, 2) = " << z2 << '\n'; const double PI = std::acos(-1); // o std::numbers::pi en C++20 std::complex<double> z3 = std::exp(1i * PI); // fórmula de Euler std::cout << "exp(i * pi) = " << z3 << '\n'; std::complex<double> z4 = 1. + 2i, z5 = 1. - 2i; // conjugados std::cout << "(1+2i)*(1-2i) = " << z4*z5 << '\n'; }
Salida:
i * i = (-1.0,0.0) pow(i, 2) = (-1.0,0.0) exp(i * pi) = (-1.0,0.0) (1+2i)*(1-2i) = (5.0,0.0)
[editar] Véase también
Documentación de C para Aritmética de números complejos
|