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

