go源码阅读笔记(math.4)

来源:互联网 发布:数据库第六版pdf 编辑:程序博客网 时间:2024/05/17 06:47

go源码阅读笔记(math.4)

参考godoc API

API列表

func NaN() float64

函数返回一个IEEE 754“这不是一个数字”值。

func IsNaN(f float64) (is bool)

判断f是否是NaN值

func Inf(sign int) float64

如果sign>=0返回正无穷大,否则返回负无穷大

func IsInf(f float64, sign int) bool

判断其是否是无穷大数

func Float32bits(f float32) uint32

函数返回浮点数f的IEEE 754格式二进制表示的值对应的4字节无符号整数(每位值不变)。主要是用于位运算之类的,转换成无符号整数,这样不会使用浮点运算器,速度快

func Float32frombits(b uint32) float32

将4字节无符号整数每位不变,转换成float32值,与Float32bits对应

func Float64bits(f float64) uint64

与Float32bits类似

func Float64frombits(b uint64) float64

与Float32frombits类似

func Signbit(x float64) bool

func Signbit(x float64) bool {    return Float64bits(x)&(1<<63) != 0}

如果x是负数或者负0(一种0的表示方式),则返回true

func Copysign(x, y float64) float64

// Copysign returns a value with the magnitude// of x and the sign of y.func Copysign(x, y float64) float64 {    const sign = 1 << 63    return Float64frombits(Float64bits(x)&^sign | Float64bits(y)&sign)}

返回拥有x的量值(绝对值)和y的标志位(正负号)的浮点数。

func Ceil(x float64) float64

返回不小于x的最小整数(的浮点值)

特殊值场景

Ceil(±0) = ±0Ceil(±Inf) = ±InfCeil(NaN) = NaN

func Floor(x float64) float64

返回不大于x的最小整数(的浮点值)

特殊值场景

Floor(±0) = ±0Floor(±Inf) = ±InfFloor(NaN) = NaN

func Trunc(x float64) float64

返回x的整数部分(浮点数类型)

特殊值场景

Trunc(±0) = ±0Trunc(±Inf) = ±InfTrunc(NaN) = NaN

func Modf(f float64) (int float64, frac float64)

返回f的整数部分和小数部分,结果的正负号和都x相同,比如1.1返回1.0和0.1,-1.1返回-1.0和-0.1

特殊值场景

Modf(±Inf) = ±Inf, NaNModf(NaN) = NaN, NaN

今天太晚了,后面的下次再补。

func Nextafter(x, y float64) (r float64)

参数x到参数y的方向上,下一个可表示的数值;如果x==y将返回x。

特殊值场景

Nextafter(NaN, y) = NaNNextafter(x, NaN) = NaN

func Abs(x float64) float64

返回x的绝对值

func Max(x, y float64) float64

返回x和y中大的。。

func Min(x, y float64) float64

返回x和y中小的。。

func Dim(x, y float64) float64

函数返回x-y和0中的较大者

特殊值场景

Dim(+Inf, +Inf) = NaNDim(-Inf, -Inf) = NaNDim(x, NaN) = Dim(NaN, x) = NaN

func Mod(x, y float64) float64

取余运算,可以理解为 x-Trunc(x/y)*y,结果正负号跟x相同

func Remainder(x, y float64) float64

IEEE 754差数求值,即x减去最接近x/y的整数值(如果有两个整数与x/y距离相同,则取其中的偶数)与y的乘积。

以下均为数学用函数……

func Sqrt(x float64) float64

返回x的二次方根

func Cbrt(x float64) float64

返回x的三次方根

func Hypot(p, q float64) float64

返回Sqrt(p*p + q*q)

func Sin(x float64) float64

求正弦

func Cos(x float64) float64

求余弦

func Tan(x float64) float64

求正切

func Sincos(x float64) (sin, cos float64)

返回x的sin值和cos值

sin, cos = math.Sincos(x)

func Asin(x float64) float64

求反正弦

func Acos(x float64) float64

求反余弦

func Atan(x float64) float64

求反正切

func Atan2(y, x float64) float64

类似Atan(y/x),但会根据x,y的正负号确定象限

func Sinh(x float64) float64

双曲正弦

func Cosh(x float64) float64

双曲余弦

func Tanh(x float64) float64

双曲正切

func Asinh(x float64) float64

反双曲正弦

func Acosh(x float64) float64

反双曲余弦

func Atanh(x float64) float64

反双曲正切

func Log(x float64) float64

自然对数

func Log1p(x float64) float64

等价于Log(1+x),在x趋近于0时,准确度高

func Log2(x float64) float64

2为底的对数

func Log10(x float64) float64

10为底的对数

func Logb(x float64) float64

返回x的二进制指数值,可以理解为Trunc(Log2(x))

func Ilogb(x float64) int

类似Logb,但返回值是整型

func Frexp(f float64) (frac float64, exp int)

返回一个标准化小数frac和2的整型指数exp,满足f == frac * 2**exp,且0.5 <= Abs(frac) < 1

func Ldexp(frac float64, exp int) float64

Frexp的反函数,返回 frac * 2**exp

func Exp(x float64) float64

返回E**x;x绝对值很大时可能会溢出为0或者+Inf,x绝对值很小时可能会下溢为1

func Expm1(x float64) float64

等价于Exp(x)-1,但是在x接近零时更精确;x绝对值很大时可能会溢出为-1或+Inf

func Exp2(x float64) float64

返回2**x

func Pow(x, y float64) float64

返回x**y

func Pow10(e int) float64

10**e

func Gamma(x float64) float64

伽玛函数(当x为正整数时,值为(x-1)!)

func Lgamma(x float64) (lgamma float64, sign int)

返回Gamma(x)的自然对数和正负号

func Erf(x float64) float64

误差函数

func Erfc(x float64) float64

余补误差函数

func J0(x float64) float64

第一类贝塞尔函数,0阶

func J1(x float64) float64

第一类贝塞尔函数,1阶

func Jn(n int, x float64) float64

第一类贝塞尔函数,n阶

func Y0(x float64) float64

第二类贝塞尔函数,0阶

func Y1(x float64) float64

第二类贝塞尔函数,1阶

func Yn(n int, x float64) float64

第二类贝塞尔函数,n阶

0 0