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