Source file src/pkg/math/cmplx/isnan.go
1 // Copyright 2010 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package cmplx
6
7 import "math"
8
9 // IsNaN returns true if either real(x) or imag(x) is NaN
10 // and neither is an infinity.
11 func IsNaN(x complex128) bool {
12 switch {
13 case math.IsInf(real(x), 0) || math.IsInf(imag(x), 0):
14 return false
15 case math.IsNaN(real(x)) || math.IsNaN(imag(x)):
16 return true
17 }
18 return false
19 }
20
21 // NaN returns a complex ``not-a-number'' value.
22 func NaN() complex128 {
23 nan := math.NaN()
24 return complex(nan, nan)
25 }