Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <math.h>
2
#include <errno.h>
3
/*
4
	atan2 discovers what quadrant the angle
5
	is in and calls atan.
6
*/
7
#define pio2 1.5707963267948966192313217
8
#define pi   3.1415926535897932384626434;
9
 
10
double
11
atan2(double arg1, double arg2)
12
{
13
 
14
	if(arg1 == 0.0 && arg2 == 0.0){
15
		errno = EDOM;
16
		return 0.0;
17
	}
18
	if(arg1+arg2 == arg1) {
19
		if(arg1 >= 0)
20
			return pio2;
21
		return -pio2;
22
	}
23
	arg1 = atan(arg1/arg2);
24
	if(arg2 < 0) {
25
		if(arg1 <= 0)
26
			return arg1 + pi;
27
		return arg1 - pi;
28
	}
29
	return arg1;
30
}