| // Copyright 2010 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 cmplx |
| |
| import "math" |
| |
| // IsNaN reports whether either real(x) or imag(x) is NaN |
| // and neither is an infinity. |
| func IsNaN(x complex128) bool { |
| switch { |
| case math.IsInf(real(x), 0) || math.IsInf(imag(x), 0): |
| return false |
| case math.IsNaN(real(x)) || math.IsNaN(imag(x)): |
| return true |
| } |
| return false |
| } |
| |
| // NaN returns a complex ``not-a-number'' value. |
| func NaN() complex128 { |
| nan := math.NaN() |
| return complex(nan, nan) |
| } |