std.math 包

功能介绍

math 包提供常见的数学运算,常数定义,浮点数处理等功能。

包括了以下能力:

  1. 科学常数与类型常数定义;
  2. 浮点数的判断,规整;
  3. 常用的位运算;
  4. 通用的数学函数,如绝对值,三角函数,指数,对数计算;
  5. 最大公约数与最小公倍数。

API 列表

函数

函数名功能
abs(Float16)求一个半精度浮点数的绝对值。
abs(Float32)求一个单精度浮点数的绝对值。
abs(Float64)求一个双精度浮点数的绝对值。
abs(Int8)求一个 8 位有符号整数的绝对值。
abs(Int16)求一个 16 位有符号整数的绝对值。
abs(Int32)求一个 32 位有符号整数的绝对值。
abs(Int64)求一个 64 位有符号整数的绝对值。
acos(Float16)计算半精度浮点数的反余弦函数值,单位为弧度。
acos(Float32)计算单精度浮点数的反余弦函数值,单位为弧度。
acos(Float64)计算双精度浮点数的反余弦函数值,单位为弧度。
acosh(Float16)计算半精度浮点数的反双曲余弦函数值。
acosh(Float32)计算单精度浮点数的反双曲余弦函数值。
acosh(Float64)计算双精度浮点数的反双曲余弦函数值。
asin(Float16)计算半精度浮点数的反正弦函数值,单位为弧度。
asin(Float32)计算单精度浮点数的反正弦函数值,单位为弧度。
asin(Float64)计算双精度浮点数的反正弦函数值,单位为弧度。
asinh(Float16)计算半精度浮点数的反双曲正弦函数值。
asinh(Float32)计算单精度浮点数的反双曲正弦函数值。
asinh(Float64)计算双精度浮点数的反双曲正弦函数值。
atan(Float16)计算半精度浮点数的反正切函数值,单位为弧度。
atan(Float32)计算单精度浮点数的反正切函数值,单位为弧度。
atan(Float64)计算双精度浮点数的反正切函数值,单位为弧度。
atanh(Float16)计算半精度浮点数的反双曲正切函数值。
atanh(Float32)计算单精度浮点数的反双曲正切函数值。
atanh(Float64)计算双精度浮点数的反双曲正切函数值。
cbrt(Float16)求半精度浮点数的立方根。
cbrt(Float32)求单精度浮点数的立方根。
cbrt(Float64)求双精度浮点数的立方根。
ceil(Float16)求半精度浮点数的向上取整值。
ceil(Float32)求单精度浮点数的向上取整值。
ceil(Float64)求双精度浮点数的向上取整值。
checkedAbs(Int8)检查并求一个 8 位有符号整数的绝对值。如果入参是 8 位有符号整数的最小值,函数返回 None;否则,返回 Some(abs(x))
checkedAbs(Int16)检查并求一个 16 位有符号整数的绝对值。如果入参是 16 位有符号整数的最小值,函数返回 None;否则,返回 Some(abs(x))
checkedAbs(Int32)检查并求一个 32 位有符号整数的绝对值。如果入参是 32 位有符号整数的最小值,函数返回 None;否则,返回 Some(abs(x))
checkedAbs(Int64)检查并求一个 64 位有符号整数的绝对值。如果入参是 64 位有符号整数的最小值,函数返回 None;否则,返回 Some(abs(x))
clamp(Float16, Float16, Float16)求浮点数的范围区间数。如果此浮点数在该范围区间则返回此浮点数;如果此浮点数小于这个范围区间,则返回该范围区间的最小值;如果此浮点数大于这个范围区间,则返回该范围区间的最大值;如果是 NaN 则返回 NaN
clamp(Float32, Float32, Float32)求浮点数的范围区间数。如果此浮点数在该范围区间则返回此浮点数;如果此浮点数小于这个范围区间,则返回该范围区间的最小值;如果此浮点数大于这个范围区间,则返回该范围区间的最大值;如果是 NaN 则返回 NaN
clamp(Float64, Float64, Float64)求浮点数的范围区间数。如果此浮点数在该范围区间则返回此浮点数;如果此浮点数小于这个范围区间,则返回该范围区间的最小值;如果此浮点数大于这个范围区间,则返回该范围区间的最大值;如果是 NaN 则返回 NaN
cos(Float16)计算半精度浮点数的余弦函数值,入参单位为弧度。
cos(Float32)计算单精度浮点数的余弦函数值,入参单位为弧度。
cos(Float64)计算双精度浮点数的余弦函数值,入参单位为弧度。
cosh(Float16)计算半精度浮点数的双曲余弦函数值。
cosh(Float32)计算单精度浮点数的双曲余弦函数值。
cosh(Float64)计算双精度浮点数的双曲余弦函数值。
countOne(Int8)求 8 位整型的二进制表达中的 1 的位的个数。
countOne(Int16)求 16 位整型的二进制表达中的 1 的位的个数。
countOne(Int32)求 32 位整型的二进制表达中的 1 的位的个数。
countOne(Int64)求 64 位整型的二进制表达中的 1 的位的个数。
countOne(UInt8)求 8 位无符号整型的二进制表达中的 1 的位的个数。
countOne(UInt16)求 16 位无符号整型的二进制表达中的 1 的位的个数。
countOne(UInt32)求 32 位无符号整型的二进制表达中的 1 的位的个数。
countOne(UInt64)求 64 位无符号整型的二进制表达中的 1 的位的个数。
erf(Float16)求半精度浮点数的误差值。
erf(Float32)求单精度浮点数的误差值。
erf(Float64)求双精度浮点数的误差值。
exp(Float16)求自然常数 e 的 x 次幂。
exp(Float32)求自然常数 e 的 x 次幂。
exp(Float64)求自然常数 e 的 x 次幂。
exp2(Float16)求 2 的 x 次幂。
exp2(Float32)求 2 的 x 次幂。
exp2(Float64)求 2 的 x 次幂。
floor(Float16)求浮点数的向下取整值。
floor(Float32)求浮点数的向下取整值。
floor(Float64)求浮点数的向下取整值。
gamma(Float16)求浮点数的 Gamma 值。
gamma(Float32)求浮点数的 Gamma 值。
gamma(Float64)求浮点数的 Gamma 值。
gcd(Int8, Int8)求两个 8 位有符号整数的最大公约数。
gcd(Int16, Int16)求两个 16 位有符号整数的最大公约数。
gcd(Int32, Int32)求两个 32 位有符号整数的最大公约数。
gcd(Int64, Int64)求两个 64 位有符号整数的最大公约数。
gcd(UInt16, UInt16)求两个 16 位无符号整数的最大公约数。
gcd(UInt32, UInt32)求两个 32 位无符号整数的最大公约数。
gcd(UInt64, UInt64)求两个 64 位无符号整数的最大公约数。
gcd(UInt8, UInt8)求两个 8 位无符号整数的最大公约数。
lcm(Int8, Int8)求两个 8 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(Int16, Int16)求两个 16 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(Int32, Int32)求两个 32 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(Int64, Int64)求两个 64 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt8, UInt8)求两个 8 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt16, UInt16)求两个 16 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt32, UInt32)求两个 32 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt64, UInt64)求两个 64 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
leadingZeros(Int8)求 8 位有符号整数的二进制表达中的从最高位算起,包含符号位,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(Int16)求 16 位有符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(Int32)求 32 位有符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(Int64)求 64 位有符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(UInt8)求 8 位无符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。
leadingZeros(UInt16)求 16 位无符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。
leadingZeros(UInt32)求 32 位无符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。
leadingZeros(UInt64)求 64 位无符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。
log(Float16)求以 e 为底 x 的对数。
log(Float32)求以 e 为底 x 的对数。
log(Float64)求以 e 为底 x 的对数。
log10(Float16)求以 10 为底 x 的对数。
log10(Float32)求以 10 为底 x 的对数。
log10(Float64)求以 10 为底 x 的对数。
log2(Float16)求以 2 为底 x 的对数。
log2(Float32)求以 2 为底 x 的对数。
log2(Float64)求以 2 为底 x 的对数。
logBase(Float16, Float16)求以 base 为底 x 的对数。
logBase(Float32, Float32)求以 base 为底 x 的对数。
logBase(Float64, Float64)求以 base 为底 x 的对数。
pow(Float32, Float32)求浮点数 baseexponent 次幂。
pow(Float32, Int32)求浮点数 baseexponent 次幂。
pow(Float64, Float64)求浮点数 baseexponent 次幂。
pow(Float64, Int64)求浮点数 baseexponent 次幂。
reverse(UInt8)求无符号整数按位反转后的数。
reverse(UInt16)求无符号整数按位反转后的数。
reverse(UInt32)求无符号整数按位反转后的数。
reverse(UInt64)求无符号整数按位反转后的数。
rotate(Int16, Int8)求整数的按位旋转后的结果。
rotate(Int32, Int8)求整数的按位旋转后的结果。
rotate(Int64, Int8)求整数的按位旋转后的结果。
rotate(Int8, Int8)求整数的按位旋转后的结果。
rotate(UInt16, Int8)求整数的按位旋转后的结果。
rotate(UInt32, Int8)求整数的按位旋转后的结果。
rotate(UInt64, Int8)求整数的按位旋转后的结果。
rotate(UInt8, Int8)求整数的按位旋转后的结果。
round(Float16)此函数采用 IEEE-754 的向最近舍入规则,计算浮点数的舍入值。
round(Float32)此函数采用 IEEE-754 的向最近舍入规则,计算浮点数的舍入值。
round(Float64)此函数采用 IEEE-754 的向最近舍入规则,计算浮点数的舍入值。
sin(Float16)计算半精度浮点数的正弦函数值,入参单位为弧度。
sin(Float32)计算单精度浮点数的正弦函数值,入参单位为弧度。
sin(Float64)计算双精度浮点数的正弦函数值,入参单位为弧度。
sinh(Float16)计算半精度浮点数的双曲正弦函数值。
sinh(Float32)计算单精度浮点数的双曲正弦函数值。
sinh(Float64)计算双精度浮点数的双曲正弦函数值。
sqrt(Float16)求浮点数的算术平方根。
sqrt(Float32)求浮点数的算术平方根。
sqrt(Float64)求浮点数的算术平方根。
tan(Float16)计算半精度浮点数的正切函数值,入参单位为弧度。
tan(Float32)计算单精度浮点数的正切函数值,入参单位为弧度。
tan(Float64)计算双精度浮点数的正切函数值,入参单位为弧度。
tanh(Float16)计算半精度浮点数的双曲正切函数值。
tanh(Float32)计算单精度浮点数的双曲正切函数值。
tanh(Float64)计算双精度浮点数的双曲正切函数值。
trailingZeros(Int8)求 16 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(Int16)求 16 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(Int32)求 32 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(Int64)求 64 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt8)求 8 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt16)求 16 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt32)求 32 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt64)求 64 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trunc(Float16)求浮点数的截断取整值。
trunc(Float32)求浮点数的截断取整值。
trunc(Float64)求浮点数的截断取整值。

接口

接口名功能
MathExtension为了导出 prop 而作辅助接口,浮点数导出 PI,E 属性。

枚举

枚举功能
RoundingMode舍入规则枚举类,共包含 6 中舍入规则。除包含 IEEE 754 浮点数规定约定的 5 种舍入规则外,提供使用较多的 “四舍五入” 舍入规则。