IPnom Home • Manuals • FreeBSD

 FreeBSD Man Pages

Man Sections:Commands (1)System Calls (2)Library Functions (3)Device Drivers (4)File Formats (5)Miscellaneous (7)System Utilities (8)
Keyword Live Search (10 results max):
 Type in part of a command in the search box.
 


atan2(3)

NAME

     atan2, atan2f -- arc tangent functions of two variables


LIBRARY

     Math Library (libm, -lm)


SYNOPSIS

     #include <math.h>

     double
     atan2(double y, double x);

     float
     atan2f(float y, float x);


DESCRIPTION

     The atan2() and the atan2f() functions compute the principal value of the
     arc tangent of y/x, using the signs of both arguments to determine the
     quadrant of the return value.


RETURN VALUES

     The atan2() and the atan2f() functions, if successful, return the arc
     tangent of y/x in the range [-pi, +pi] radians.  Here are some of the
     special cases:

     atan2(y, x) :=	  atan(y/x)			  if x > 0,
			  sign(y)*(pi - atan(|y/x|))	  if x < 0,
			  0				  if x = y = 0, or
			  sign(y)*pi/2			  if x = 0 != y.


NOTES

     The function atan2() defines "if x > 0," atan2(0, 0) = 0 despite that
     previously atan2(0, 0) may have generated an error message.  The reasons
     for assigning a value to atan2(0, 0) are these:

	   1.	Programs that test arguments to avoid computing atan2(0, 0)
		must be indifferent to its value.  Programs that require it to
		be invalid are vulnerable to diverse reactions to that inva-
		lidity on diverse computer systems.

	   2.	The atan2() function is used mostly to convert from rectangu-
		lar (x,y) to polar (r,theta) coordinates that must satisfy x =
		r*cos theta and y = r*sin theta.  These equations are satis-
		fied when (x=0,y=0) is mapped to (r=0,theta=0).  In general,
		conversions to polar coordinates should be computed thus:

		      r    := hypot(x,y);  ... := sqrt(x*x+y*y)
		      theta	:= atan2(y,x).

	   3.	The foregoing formulas need not be altered to cope in a rea-
		sonable way with signed zeros and infinities on a machine that
		conforms to IEEE 754; the versions of hypot(3) and atan2()
		provided for such a machine are designed to handle all cases.
		That is why atan2(+-0, -0) = +-pi for instance.  In general
		the formulas above are equivalent to these:

		      r := sqrt(x*x+y*y); if r = 0 then x := copysign(1,x);

FreeBSD 5.4		       January 14, 2005 		   FreeBSD 5.4

SPONSORED LINKS




Man(1) output converted with man2html , sed , awk