Source file src/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 reports whether 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  }
    26  

View as plain text