Source File
logb.go
Belonging Package
math
// 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 math// Logb returns the binary exponent of x.//// Special cases are:// Logb(±Inf) = +Inf// Logb(0) = -Inf// Logb(NaN) = NaNfunc ( float64) float64 {// special casesswitch {case == 0:return Inf(-1)case IsInf(, 0):return Inf(1)case IsNaN():return}return float64(ilogb())}// Ilogb returns the binary exponent of x as an integer.//// Special cases are:// Ilogb(±Inf) = MaxInt32// Ilogb(0) = MinInt32// Ilogb(NaN) = MaxInt32func ( float64) int {// special casesswitch {case == 0:return MinInt32case IsNaN():return MaxInt32case IsInf(, 0):return MaxInt32}return ilogb()}// logb returns the binary exponent of x. It assumes x is finite and// non-zero.func ( float64) int {, := normalize()return int((Float64bits()>>shift)&mask) - bias +}