Skip to content

Latest commit

 

History

History
314 lines (175 loc) · 5.63 KB

File metadata and controls

314 lines (175 loc) · 5.63 KB

#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) = ±0
Ceil(±Inf) = ±Inf
Ceil(NaN) = NaN

###func Floor(x float64) float64

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

特殊值场景

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

###func Trunc(x float64) float64

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

特殊值场景

Trunc(±0) = ±0
Trunc(±Inf) = ±Inf
Trunc(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, NaN
Modf(NaN) = NaN, NaN

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

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

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

特殊值场景

Nextafter(NaN, y) = NaN
Nextafter(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) = NaN
Dim(-Inf, -Inf) = NaN
Dim(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(pp + qq)

###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阶