C++ valarray 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);
    std::atan2 计算valarray元素的atan2,以相同顺序返回包含所有元素的反正切的主值的valarray。 计算得出的切线是坐标y / x的商,使用它们的符号来确定适当的象限。该函数对x和y中的每个元素调用一次atan2(非限制)。 如果任何一个是单个T值,它将用于所有调用。此函数会使cmath的atan2重载。
  • 参数

    参数 描述
    y 带有y坐标的valarray或元素。
    x valarray或具有x坐标的元素。
    如果两个参数都是valarray对象,并且它们的大小不匹配,则该行为是不确定的。
  • 返回值

    具有y / x的反正切值的valarray对象。
  • 示例

    
    // 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;
    }
    
    尝试一下
    输出
    
    results: 3.14159 0.785398 -2.03444
    
  • 相关页面

    atan2 (cmath) 用两个参数计算反正切(函数)
    atan 计算valarray元素的反正切(函数模板)
    tan 计算valarray元素的切线(函数模板)