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