C++ Valarray 库 - atan2 函数
描述
它以相同的顺序返回一个 valarray,其中包含所有元素的反正切的主值。 计算它的切线是坐标 y/x 的商,使用它们的符号来确定适当的象限。
声明
以下是 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);
参数
x − 它包含定义了一元函数 abs 的类型的元素。
y − 它是一个具有 y 坐标的 valarray 元素。
返回值
它以相同的顺序返回一个 valarray,其中包含所有元素的反正切的主值。 计算它的切线是坐标 y/x 的商,使用它们的符号来确定适当的象限。
异常
Basic guarantee − 如果对元素执行的任何操作引发异常。
数据竞争
所有有效复制的元素都被访问。
示例
在下面的示例中解释了 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; }
让我们编译并运行上面的程序,这将产生以下结果 −
results: 3.14159 0.785398 -2.03444