github.com/gopherd/gonum@v0.0.4/internal/cmplx64/isnan.go (about) 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 // Copyright ©2017 The Gonum Authors. All rights reserved. 6 // Use of this source code is governed by a BSD-style 7 // license that can be found in the LICENSE file. 8 9 package cmplx64 10 11 import math "github.com/gopherd/gonum/internal/math32" 12 13 // IsNaN returns true if either real(x) or imag(x) is NaN 14 // and neither is an infinity. 15 func IsNaN(x complex64) bool { 16 switch { 17 case math.IsInf(real(x), 0) || math.IsInf(imag(x), 0): 18 return false 19 case math.IsNaN(real(x)) || math.IsNaN(imag(x)): 20 return true 21 } 22 return false 23 } 24 25 // NaN returns a complex ``not-a-number'' value. 26 func NaN() complex64 { 27 nan := math.NaN() 28 return complex(nan, nan) 29 }