function template
<valarray>
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);
Compute atan2 of valarray elements
Returns a valarray containing the principal value of the arc tangent of all the elements, in the same order. The tangent for which it is calculated is the quotient of coordinates y/x, using their sign to determine the appropriate quadrant.
The function calls atan2 (unqualified) once for each element in both x and y; If either is a single T value, it is used for all calls.
This function overloads cmath's atan2.
Parameters
- y
- valarray or element with the y coordinate(s).
- x
- valarray or element with the x coordinate(s).
If both arguments are valarray objects and their sizes don't match, the behavior is undefined.
Return value
A valarray object with the arc tangent values of y/x.
Example
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | // atan2 valarray example
#include <iostream>     // std::cout
#include <cstddef>      // std::size_t
#include <cmath>        // std::atan2
#include <valarray>     // std::valarray, std::atan2
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;
}
 | 
Output:
| 
results: 3.14159 0.785398 -2.03444
 | 
See also
- atan2 (cmath)
- Compute arc tangent with two parameters (function
)
- atan
- Compute arc tangent of valarray elements (function template
)
- tan
- Compute tangent of valarray elements (function template
)