URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [math/] [logb.go] - Rev 801
Go to most recent revision | Compare with Previous | Blame | View Log
// 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(x) returns the binary exponent of x.//// Special cases are:// Logb(±Inf) = +Inf// Logb(0) = -Inf// Logb(NaN) = NaNfunc Logb(x float64) float64 {// special casesswitch {case x == 0:return Inf(-1)case IsInf(x, 0):return Inf(1)case IsNaN(x):return x}return float64(ilogb(x))}// Ilogb(x) returns the binary exponent of x as an integer.//// Special cases are:// Ilogb(±Inf) = MaxInt32// Ilogb(0) = MinInt32// Ilogb(NaN) = MaxInt32func Ilogb(x float64) int {// special casesswitch {case x == 0:return MinInt32case IsNaN(x):return MaxInt32case IsInf(x, 0):return MaxInt32}return ilogb(x)}// logb returns the binary exponent of x. It assumes x is finite and// non-zero.func ilogb(x float64) int {x, exp := normalize(x)return int((Float64bits(x)>>shift)&mask) - bias + exp}
Go to most recent revision | Compare with Previous | Blame | View Log
