Libreria C ++ Valarray - Funzione atan2

Descrizione

Restituisce un valarray contenente il valore principale dell'arco tangente di tutti gli elementi, nello stesso ordine. La tangente per la quale viene calcolata è il quoziente delle coordinate y / x, utilizzando il loro segno per determinare il quadrante appropriato.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione 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);

Parametri

  • x - Contiene elementi di un tipo per il quale è definita la funzione unaria abs.

  • y - È un elemento valarray con le coordinate y.

Valore di ritorno

Restituisce un valarray contenente il valore principale dell'arco tangente di tutti gli elementi, nello stesso ordine. La tangente per la quale viene calcolata è il quoziente delle coordinate y / x, utilizzando il loro segno per determinare il quadrante appropriato.

Eccezioni

Basic guarantee - se qualsiasi operazione eseguita sugli elementi genera un'eccezione.

Gare di dati

Si accede a tutti gli elementi effettivamente copiati.

Esempio

Nell'esempio seguente viene illustrata la funzione 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;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

results: 3.14159 0.785398 -2.03444