aboutsummaryrefslogtreecommitdiff
path: root/src/base/math/atan2.c
blob: a681a8055bba649bebe98b5ac37a018adf2bc9dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <u.h>
#include <base.h>
/*
	atan2 discovers what quadrant the angle
	is in and calls atan.
*/

double
math·atan2(double arg1, double arg2)
{

	if(arg1+arg2 == arg1) {
		if(arg1 >= 0)
			return math·PIO2;
		return -math·PIO2;
	}
	arg1 = math·atan(arg1/arg2);
	if(arg2 < 0) {
		if(arg1 <= 0)
			return arg1 + math·PI;
		return arg1 - math·PI;
	}
	return arg1;
}