| // 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; | |
| } |