Biblioteca C ++ Valarray - Función atan2

Descripción

Devuelve un valarray que contiene el valor principal del arco tangente de todos los elementos, en el mismo orden. La tangente para la que se calcula es el cociente de coordenadas y / x, usando su signo para determinar el cuadrante apropiado.

Declaración

A continuación se muestra la declaración de la función std :: atan2.

template<class T> valarray<T> atan2 (const valarray<T>& y, const valarray<T>& x);
template<class T> valarray<T> atan2 (const valarray<T>& y, const T& x);
template<class T> valarray<T> atan2 (const T& y, const valarray<T>& x);

C ++ 11

template<class T> valarray<T> atan2 (const valarray<T>& y, const valarray<T>& x);
template<class T> valarray<T> atan2 (const valarray<T>& y, const T& x);
template<class T> valarray<T> atan2 (const T& y, const valarray<T>& x);

Parámetros

  • x - Contiene elementos de un tipo para el que se define la función unaria abs.

  • y - Es un elemento valarray con la (s) coordenada (s) y.

Valor devuelto

Devuelve un valarray que contiene el valor principal del arco tangente de todos los elementos, en el mismo orden. La tangente para la que se calcula es el cociente de coordenadas y / x, usando su signo para determinar el cuadrante apropiado.

Excepciones

Basic guarantee - si alguna operación realizada en los elementos arroja una excepción.

Carreras de datos

Se accede a todos los elementos efectivamente copiados.

Ejemplo

En el siguiente ejemplo se explica la función std :: atan2.

#include <iostream>    
#include <cstddef>     
#include <cmath>       
#include <valarray>    

int main () {
   double y[] = {0.0, 3.0, -2.0};
   double x[] = {-3.0, 3.0, -1.0};
   std::valarray<double> ycoords (y,3);
   std::valarray<double> xcoords (x,3);

   std::valarray<double> results = atan2 (ycoords,xcoords);

   std::cout << "results:";
   for (std::size_t i=0; i<results.size(); ++i)
      std::cout << ' ' << results[i];
   std::cout << '\n';

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

results: 3.14159 0.785398 -2.03444