Espacios de nombres
Variantes
Acciones

Archivo de encabezado de la biblioteca estándar <complex>

De cppreference.com
< cpp‎ | header
 
 
Archivos de encabezado de la biblioteca estándar
Algoritmos
<algorithm>
<numeric>
Cadenas
<cctype>
<cstring>
<cuchar> (C++11)
<cwchar>
<cwctype>
<string_view> (C++17)
<string>
Procesamiento de texto
<clocale>
<codecvt> (C++11/17/26*)
<locale>
<regex> (C++11)
<text_encoding> (C++26)   
Numéricos
<cfenv> (C++11)
<cmath>
<complex>
<linalg> (C++26)
<numbers> (C++20)
<random> (C++11)
<simd> (C++26)
<valarray>
Tiempo
<chrono> (C++11)
<ctime>
Compatibilidad con C
<ccomplex> (C++11/17/20*)
<ciso646> (hasta C++20)
<cstdalign> (C++11/17/20*)
<cstdbool> (C++11/17/20*)
<ctgmath> (C++11/17/20*)
 

Este archivo de encabezado es parte de la biblioteca numérica.

Contenido

[editar] Clases

Un tipo de número complejo.
(plantilla de clase)
Un tipo de número complejo.
(especialización de plantilla de clase)

[editar] Funciones

Operaciones
Aplica operadores unarios a números complejos.
(plantilla de función) [editar]
Realiza la aritmética de números complejos en dos valores complejos o un complejo y un escalar.
(plantilla de función) [editar]
Compara dos números complejos o un complejo y un escalar.
(plantilla de función) [editar]
Serializa y deserializa un número complejo.
(plantilla de función) [editar]
Devuelve el componente real.
(plantilla de función) [editar]
Devuelve el componente imaginario.
(plantilla de función) [editar]
Devuelve la magnitud de un número complejo.
(plantilla de función) [editar]
Devuelve el ángulo de fase.
(plantilla de función) [editar]
Devuelve la magnitud al cuadrado.
(plantilla de función) [editar]
Devuelve el complejo conjugado.
(plantilla de función) [editar]
(C++11)
Devuelve la proyección sobre la esfera de Riemann.
(plantilla de función) [editar]
Construye un número complejo a partir de una magnitud y un ángulo de fase.
(plantilla de función) [editar]
Funciones exponenciales
Base e exponencial compleja.
(plantilla de función) [editar]
Logaritmo natural complejo con los cortes de ramificaciones a lo largo del eje real negativo.
(plantilla de función) [editar]
Logaritmo común complejo con los cortes de ramificaciones a lo largo del eje real negativo.
(plantilla de función) [editar]
Funciones de potencias
Potencia compleja; uno o ambos argumentos pueden ser un número complejo.
(plantilla de función) [editar]
Raíz cuadrada en el rango del plano medio derecho.
(plantilla de función) [editar]
Funciones trigonométricas
Calcula el seno de un número complejo (sen(z)).
(plantilla de función) [editar]
Calcula el coseno de un número complejo (cos(z)).
(plantilla de función) [editar]
Calcula la tangente de un número complejo (tan(z)).
(plantilla de función) [editar]
Calcula el arco seno de un número complejo (arcsin(z)).
(plantilla de función) [editar]
Calcula el arco coseno de un número complejo (arccos(z)).
(plantilla de función) [editar]
Calcula la arco tangente de un número complejo (arctan(z)).
(plantilla de función) [editar]
Funciones hiperbólicas
Calcula el seno hiperbólico de un número complejo (sinh(z)).
(plantilla de función) [editar]
Calcula el coseno hiperbólico de un número complejo (cosh(z)).
(plantilla de función) [editar]
Calcula tangente hiperbólica de un número complejo (tanh(z)).
(plantilla de función) [editar]
Calcula el área del seno hiperbólico de un número complejo (arsinh(z)).
(plantilla de función) [editar]
Calcula el área del coseno hiperbólico de un número complejo (arcosh(z)).
(plantilla de función) [editar]
Calcula el área de la tangente hiperbólica de un número complejo (artanh(z)).
(plantilla de función) [editar]
Literales
Un literal std::complex que representa un número imaginario puro.
(función) [editar]


[editar] Sinopsis

namespace std {
 
    template<class T> class complex;
 
    template<> class complex<float>;
    template<> class complex<double>;
    template<> class complex<long double>;
 
    // operadores:
    template<class T> constexpr complex<T> operator+(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator+(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
 
    template<class T> constexpr complex<T> operator-(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator-(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator-(const T&, const complex<T>&);
 
    template<class T> constexpr complex<T> operator*(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator*(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator*(const T&, const complex<T>&);
 
    template<class T> constexpr complex<T> operator/(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr complex<T> operator/(const complex<T>&, const T&);
    template<class T> constexpr complex<T> operator/(const T&, const complex<T>&);
 
    template<class T> constexpr complex<T> operator+(const complex<T>&);
    template<class T> constexpr complex<T> operator-(const complex<T>&);
 
    template<class T> constexpr bool operator==(
        const complex<T>&, const complex<T>&);
    template<class T> constexpr bool operator==(const complex<T>&, const T&);
    template<class T> constexpr bool operator==(const T&, const complex<T>&);
 
    template<class T> constexpr bool operator!=(const complex<T>&, const complex<T>&);
    template<class T> constexpr bool operator!=(const complex<T>&, const T&);
    template<class T> constexpr bool operator!=(const T&, const complex<T>&);
 
    template<class T, class charT, class traits>
    basic_istream<charT, traits>&
    operator>>(basic_istream<charT, traits>&, complex<T>&);
 
    template<class T, class charT, class traits>
    basic_ostream<charT, traits>&
    operator<<(basic_ostream<charT, traits>&, const complex<T>&);
 
    // valores:
    template<class T> constexpr T real(const complex<T>&);
    template<class T> constexpr T imag(const complex<T>&);
 
    template<class T> T abs(const complex<T>&);
    template<class T> T arg(const complex<T>&);
    template<class T> constexpr T norm(const complex<T>&);
 
    template<class T> constexpr complex<T> conj(const complex<T>&);
    template<class T> complex<T> proj(const complex<T>&);
    template<class T> complex<T> polar(const T&, const T& = 0);
 
    // transcendentales:
    template<class T> complex<T> acos(const complex<T>&);
    template<class T> complex<T> asin(const complex<T>&);
    template<class T> complex<T> atan(const complex<T>&);
 
    template<class T> complex<T> acosh(const complex<T>&);
    template<class T> complex<T> asinh(const complex<T>&);
    template<class T> complex<T> atanh(const complex<T>&);
 
    template<class T> complex<T> cos  (const complex<T>&);
    template<class T> complex<T> cosh (const complex<T>&);
    template<class T> complex<T> exp  (const complex<T>&);
    template<class T> complex<T> log  (const complex<T>&);
    template<class T> complex<T> log10(const complex<T>&);
 
    template<class T> complex<T> pow(const complex<T>&, const T&);
    template<class T> complex<T> pow(const complex<T>&, const complex<T>&);
    template<class T> complex<T> pow(const T&, const complex<T>&);
 
    template<class T> complex<T> sin    (const complex<T>&);
    template<class T> complex<T> sinh   (const complex<T>&);
    template<class T> complex<T> sqrt   (const complex<T>&);
    template<class T> complex<T> tan    (const complex<T>&);
    template<class T> complex<T> tanh   (const complex<T>&);
 
    // literales complejos:
    inline namespace literals {
    inline namespace complex_literals {
        constexpr complex<long double> operator""il(long double);
        constexpr complex<long double> operator""il(unsigned long long);
        constexpr complex<double> operator""i(long double);
        constexpr complex<double> operator""i(unsigned long long);
        constexpr complex<float> operator""if(long double);
        constexpr complex<float> operator""if(unsigned long long);
    }
    }
}

[editar] Clase std::complex

template<class T>
class complex {
public:
    typedef T value_type;
    constexpr complex(const T& re = T(), const T& im = T());
    constexpr complex(const complex&);
    template<class X> constexpr complex(const complex<X>&);
 
    constexpr T real() const;
    constexpr void real(T);
    constexpr T imag() const;
    constexpr void imag(T);
 
    constexpr complex<T>& operator= (const T&);
    constexpr complex<T>& operator+=(const T&);
    constexpr complex<T>& operator-=(const T&);
    constexpr complex<T>& operator*=(const T&);
    constexpr complex<T>& operator/=(const T&);
 
    constexpr complex& operator=(const complex&);     
    template<class X> constexpr complex<T>& operator= (const complex<X>&);   
    template<class X> constexpr complex<T>& operator+=(const complex<X>&);   
    template<class X> constexpr complex<T>& operator-=(const complex<X>&);   
    template<class X> constexpr complex<T>& operator*=(const complex<X>&);   
    template<class X> constexpr complex<T>& operator/=(const complex<X>&);   
 
};

[editar] Especializaciones de std::complex

template<> class complex<float> {
public:
    typedef float value_type;
 
    constexpr complex(float re = 0.0f, float im = 0.0f);
    explicit constexpr complex(const complex<double>&);
    explicit constexpr complex(const complex<long double>&);
 
    constexpr float real() const;
    constexpr void real(float);
    constexpr float imag() const;
    constexpr void imag(float);
 
    constexpr complex<float>& operator= (float);
    constexpr complex<float>& operator+=(float);
    constexpr complex<float>& operator-=(float);
    constexpr complex<float>& operator*=(float);
    constexpr complex<float>& operator/=(float);
 
    constexpr complex<float>& operator=(const complex<float>&);
    template<class X> constexpr complex<float>& operator= (const complex<X>&);
    template<class X> constexpr complex<float>& operator+=(const complex<X>&);
    template<class X> constexpr complex<float>& operator-=(const complex<X>&);
    template<class X> constexpr complex<float>& operator*=(const complex<X>&);
    template<class X> constexpr complex<float>& operator/=(const complex<X>&);
};
 
template<> class complex<double> {
public:
    typedef double value_type;
 
    constexpr complex(double re = 0.0, double im = 0.0);
    constexpr complex(const complex<float>&);
    explicit constexpr complex(const complex<long double>&);
 
    constexpr double real() const;
    constexpr void real(double);
    constexpr double imag() const;
    constexpr void imag(double);
 
    constexpr complex<double>& operator= (double);
    constexpr complex<double>& operator+=(double);
    constexpr complex<double>& operator-=(double);
    constexpr complex<double>& operator*=(double);
    constexpr complex<double>& operator/=(double);
 
    constexpr complex<double>& operator=(const complex<double>&);
    template<class X> constexpr complex<double>& operator= (const complex<X>&);
    template<class X> constexpr complex<double>& operator+=(const complex<X>&);
    template<class X> constexpr complex<double>& operator-=(const complex<X>&);
    template<class X> constexpr complex<double>& operator*=(const complex<X>&);
    template<class X> constexpr complex<double>& operator/=(const complex<X>&);
};
 
template<> class complex<long double> {
public:
    typedef long double value_type;
 
    constexpr complex(long double re = 0.0L, long double im = 0.0L);
    constexpr complex(const complex<float>&);
    constexpr complex(const complex<double>&);
 
    constexpr long double real() const;
    constexpr void real(long double);
    constexpr long double imag() const;
    constexpr void imag(long double);
 
    constexpr complex<long double>& operator=(const complex<long double>&);
    constexpr complex<long double>& operator= (long double);
    constexpr complex<long double>& operator+=(long double);
    constexpr complex<long double>& operator-=(long double);
    constexpr complex<long double>& operator*=(long double);
    constexpr complex<long double>& operator/=(long double);
 
    template<class X> constexpr complex<long double>& operator= (const complex<X>&);
    template<class X> constexpr complex<long double>& operator+=(const complex<X>&);
    template<class X> constexpr complex<long double>& operator-=(const complex<X>&);
    template<class X> constexpr complex<long double>& operator*=(const complex<X>&);
    template<class X> constexpr complex<long double>& operator/=(const complex<X>&);
 
};