summaryrefslogtreecommitdiff
path: root/src/pkg/math/atan2.go
blob: 26d3a1d682779b593557f815f8da7cc24a03f90c (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
25
26
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package math

// Atan2 returns the arc tangent of y/x, using
// the signs of the two to determine the quadrant
// of the return value.
func Atan2(y, x float64) float64 {
	// Determine the quadrant and call atan.
	if y+x == y {
		if y >= 0 {
			return Pi / 2
		}
		return -Pi / 2;
	}
	q := Atan(y / x);
	if x < 0 {
		if q <= 0 {
			return q + Pi
		}
		return q - Pi;
	}
	return q;
}