Espacios de nombres
Variantes

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

De cppreference.com
 
 
Archivos de encabezado de la biblioteca estándar
 

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

Clases

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

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]


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);
    }
    }
}

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>&);   
    
};

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>&);
    
};