mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
rsc's algorithm - applied gofmt -w misc src - partial CL (last chunk) R=rsc, r http://go/go-review/1024041
27 lines
542 B
Go
27 lines
542 B
Go
// 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;
|
|
}
|