std.math

功能介绍

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

包括了以下能力:

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

API 列表

函数

函数名功能
abs(Float16)求一个半精度浮点数的绝对值。
abs(Float32)求一个单精度浮点数的绝对值。
abs(Float64)求一个双精度浮点数的绝对值。
abs(Int16)求一个 16 位有符号整数的绝对值。
abs(Int32)求一个 32 位有符号整数的绝对值。
abs(Int64)求一个 64 位有符号整数的绝对值。
abs(Int8)求一个 8 位有符号整数的绝对值。
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)计算双精度浮点数的反正切函数值,单位为弧度。
atan2(Float16, Float16)计算两个半精度浮点数的反正切函数值,单位为弧度。
atan2(Float32, Float32)计算两个单精度浮点数的反正切函数值,单位为弧度。
atan2(Float64, Float64)计算两个双精度浮点数的反正切函数值,单位为弧度。
atanh(Float16)计算半精度浮点数的反双曲正切函数值。
atanh(Float32)计算单精度浮点数的反双曲正切函数值。
atanh(Float64)计算双精度浮点数的反双曲正切函数值。
cbrt(Float16)求半精度浮点数的立方根。
cbrt(Float32)求单精度浮点数的立方根。
cbrt(Float64)求双精度浮点数的立方根。
ceil(Float16)求半精度浮点数的向上取整值。
ceil(Float32)求单精度浮点数的向上取整值。
ceil(Float64)求双精度浮点数的向上取整值。
checkedAbs(Int16)检查并求一个 16 位有符号整数的绝对值。如果入参是 16 位有符号整数的最小值,函数返回 None;否则,返回 Some(abs(x))。
checkedAbs(Int32)检查并求一个 32 位有符号整数的绝对值。如果入参是 32 位有符号整数的最小值,函数返回 None;否则,返回 Some(abs(x))。
checkedAbs(Int64)检查并求一个 64 位有符号整数的绝对值。如果入参是 64 位有符号整数的最小值,函数返回 None;否则,返回 Some(abs(x))。
checkedAbs(Int8)检查并求一个 8 位有符号整数的绝对值。如果入参是 8 位有符号整数的最小值,函数返回 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(Int16) (deprecated)求 16 位整型的二进制表达中的 1 的位的个数。
countOne(Int32) (deprecated)求 32 位整型的二进制表达中的 1 的位的个数。
countOne(Int64) (deprecated)求 64 位整型的二进制表达中的 1 的位的个数。
countOne(Int8) (deprecated)求 8 位整型的二进制表达中的 1 的位的个数。
countOne(UInt16) (deprecated)求 16 位无符号整型的二进制表达中的 1 的位的个数。
countOne(UInt32) (deprecated)求 32 位无符号整型的二进制表达中的 1 的位的个数。
countOne(UInt64) (deprecated)求 64 位无符号整型的二进制表达中的 1 的位的个数。
countOne(UInt8) (deprecated)求 8 位无符号整型的二进制表达中的 1 的位的个数。
countOnes(Int16)求 16 位整型的二进制表达中的 1 的位的个数。
countOnes(Int32)求 32 位整型的二进制表达中的 1 的位的个数。
countOnes(Int64)求 64 位整型的二进制表达中的 1 的位的个数。
countOnes(Int8)求 8 位整型的二进制表达中的 1 的位的个数。
countOnes(UInt16)求 16 位无符号整型的二进制表达中的 1 的位的个数。
countOnes(UInt32)求 32 位无符号整型的二进制表达中的 1 的位的个数。
countOnes(UInt64)求 64 位无符号整型的二进制表达中的 1 的位的个数。
countOnes(UInt8)求 8 位无符号整型的二进制表达中的 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)求浮点数的向下取整值。
fmod(Float16, Float16)求两个半精度浮点数相除的余数。
fmod(Float32, Float32)求两个单精度浮点数相除的余数。
fmod(Float64, Float64)求两个双精度浮点数相除的余数。
gamma(Float16)求浮点数的 Gamma 值。
gamma(Float32)求浮点数的 Gamma 值。
gamma(Float64)求浮点数的 Gamma 值。
gcd(Int16, Int16)求两个 16 位有符号整数的最大公约数。
gcd(Int32, Int32)求两个 32 位有符号整数的最大公约数。
gcd(Int64, Int64)求两个 64 位有符号整数的最大公约数。
gcd(Int8, Int8)求两个 8 位有符号整数的最大公约数。
gcd(UInt16, UInt16)求两个 16 位无符号整数的最大公约数。
gcd(UInt32, UInt32)求两个 32 位无符号整数的最大公约数。
gcd(UInt64, UInt64)求两个 64 位无符号整数的最大公约数。
gcd(UInt8, UInt8)求两个 8 位无符号整数的最大公约数。
lcm(Int16, Int16)求两个 16 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(Int32, Int32)求两个 32 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(Int64, Int64)求两个 64 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(Int8, Int8)求两个 8 位有符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt16, UInt16)求两个 16 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt32, UInt32)求两个 32 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt64, UInt64)求两个 64 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
lcm(UInt8, UInt8)求两个 8 位无符号整数的最小的非负的公倍数,当入参有 0 时才返回 0。
leadingZeros(Int16)求 16 位有符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(Int32)求 32 位有符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(Int64)求 64 位有符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(Int8)求 8 位有符号整数的二进制表达中的从最高位算起,包含符号位,连续位为 0 的个数。如果最高位不是 0,则返回 0。
leadingZeros(UInt16)求 16 位无符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。
leadingZeros(UInt32)求 32 位无符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。
leadingZeros(UInt64)求 64 位无符号整数的二进制表达中的从最高位算起,连续位为 0 的个数。
leadingZeros(UInt8)求 8 位无符号整数的二进制表达中的从最高位算起,连续位为 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)求浮点数 base 的 exponent 次幂。
pow(Float32, Int32)求浮点数 base 的 exponent 次幂。
pow(Float64, Float64)求浮点数 base 的 exponent 次幂。
pow(Float64, Int64)求浮点数 base 的 exponent 次幂。
reverse(UInt16)求无符号整数按位反转后的数。
reverse(UInt32)求无符号整数按位反转后的数。
reverse(UInt64)求无符号整数按位反转后的数。
reverse(UInt8)求无符号整数按位反转后的数。
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(Int16)求 16 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(Int32)求 32 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(Int64)求 64 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(Int8)求 16 位有符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt16)求 16 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt32)求 32 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt64)求 64 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trailingZeros(UInt8)求 8 位无符号整数的二进制表达中的从最低位算起,连续位为 0 的个数。如果最低位不是 0,则返回 0。
trunc(Float16)求浮点数的截断取整值。
trunc(Float32)求浮点数的截断取整值。
trunc(Float64)求浮点数的截断取整值。

接口

接口名功能
FloatingPoint<T>本接口提供了浮点数相关的方法。
Integer<T>本接口提供了整数类型相关的方法。
MathExtension (deprecated)为了导出 prop 而作辅助接口,浮点数导出 PI,E 属性。
MaxMinValue<T>提供获取最大值和最小值的方法。
Number<T>提供数值类型相关的方法。

枚举

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