#include <math.h> double atan2(double y, double x); float atan2f(float y, float x); long double atan2l(long double y, long double x);-lm でリンクする。
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
atan2f(), atan2l(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE; or cc -std=c99
y が +0 (-0) で x が 0 未満の場合、+pi (-pi) が返される。
y が +0 (-0) で x が 0 より大きい場合、+0 (-0) が返される。
y が 0 未満で x が +0 か -0 の場合、-pi/2 が返される。
y が 0 より大きく x が +0 か -0 の場合、pi/2 が返される。
x か y のいずかが NaN の場合、NaN が返される。
y が +0 (-0) で x が -0 の場合、+pi (-pi) が返される。
y が +0 (-0) で x が +0 の場合、+0 (-0) が返される。
y が 0 より大きい (小さい) 有限値で x が負の無限大の場合、+pi (-pi) が返される。
y が 0 より大きい (小さい) 有限値で x が正の無限大の場合、+0 (-0) が返される。
y が正の無限大 (負の無限大) で x が有限値の場合、pi/2 (-pi/2) が返される。
y が正の無限大 (負の無限大) で x が負の無限大の場合、+3*pi/4 (-3*pi/4) が返される。
y が正の無限大 (負の無限大) で x が正の無限大の場合、+pi/4 (-pi/4) が返される。