clojure.math
Clojure wrapper functions for java.lang.Math static methods.
Function calls are inlined for performance, and type hinted for primitive
long or double parameters where appropriate. In general, Math methods are
optimized for performance and have bounds for error tolerance. If
greater precision is needed, use java.lang.StrictMath directly instead.
For more complete information, see:
https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html
clojure.math 中的变量
a
- acos
- 返回 a 的反余弦值,范围在 0.0 到 π 之间。如果 a 是 ##NaN 或 |a|>1 => ##NaN 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#acos-double-
- add-exact
- 返回 x 和 y 的和,如果发生溢出,则抛出 ArithmeticException。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#addExact-long-long-
- asin
- 返回一个角度的反正弦值,范围在 -π/2 到 π/2 之间。如果 a 是 ##NaN 或 |a|>1 => ##NaN 如果 a 为零 => 与 a 符号相同的零 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#asin-double-
- atan
- 返回 a 的反正切值,范围在 -π/2 到 π/2 之间。如果 a 是 ##NaN => ##NaN 如果 a 为零 => 与 a 符号相同的零 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#atan-double-
- atan2
- 返回从直角坐标 (x, y) 转换为极坐标 (r, theta) 的角度 theta。通过计算 y/x 的反正切值来计算相位 theta,范围在 -π 到 π 之间。有关特殊情况的更多详细信息,请参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#atan2-double-double-
c
- cbrt
- 返回 a 的立方根。如果 a 是 ##NaN => ##NaN 如果 a 是 ##Inf 或 ##-Inf => a 如果 a 为零 => 符号与 a 匹配的零 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#cbrt-double-
- ceil
- 返回大于或等于 a 的最小双精度值,并且等于一个数学整数。如果 a 是 ##NaN 或 ##Inf 或 ##-Inf 或已经等于一个整数 => a 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#ceil-double-
- copy-sign
- 返回一个双精度值,其大小为第一个参数的大小,符号为第二个参数的符号。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#copySign-double-double-
- cos
- 返回一个角度的余弦值。如果 a 是 ##NaN、##-Inf、##Inf => ##NaN 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#cos-double-
- cosh
- 返回 x 的双曲余弦值,(e^x + e^-x)/2。如果 x 是 ##NaN => ##NaN 如果 x 是 ##Inf 或 ##-Inf => ##Inf 如果 x 为零 => 1.0 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#cosh-double-
d
- decrement-exact
- 返回 a 减 1 的值,如果发生溢出,则抛出 ArithmeticException。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#decrementExact-long-
e
- E
- 自然对数的底数 e 的常量。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#E
- exp
- 返回欧拉数 e 的 a 次方。如果 a 是 ##NaN => ##NaN 如果 a 是 ##Inf => ##Inf 如果 a 是 ##-Inf => +0.0 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#exp-double-
- expm1
- 返回 e^x - 1。接近 0 时,expm1(x)+1 比 exp(x) 更接近 e^x 的精确值。如果 x 是 ##NaN => ##NaN 如果 x 是 ##Inf => #Inf 如果 x 是 ##-Inf => -1.0 如果 x 为零 => x 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#expm1-double-
f
- floor
- 返回小于或等于 a 的最大双精度值,并且等于一个数学整数。如果 a 是 ##NaN 或 ##Inf 或 ##-Inf 或已经等于一个整数 => a 如果 a 小于零但大于 -1.0 => -0.0 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#floor-double-
- floor-div
- 舍入到负无穷大(而不是零)的整数除法。特殊情况 (floorDiv Long/MIN_VALUE -1) 会溢出并返回 Long/MIN_VALUE。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#floorDiv-long-long-
- floor-mod
- 整数模 x - (floorDiv(x, y) * y)。符号与 y 匹配,范围在 -|y| < r < |y| 之间。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#floorMod-long-long-
g
- get-exponent
- 返回 d 的指数。如果 d 是 ##NaN、##Inf、##-Inf => Double/MAX_EXPONENT + 1 如果 d 为零或次正规数 => Double/MIN_EXPONENT - 1 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#getExponent-double-
h
- hypot
- 返回 sqrt(x^2 + y^2),不会出现中间下溢或溢出。如果 x 或 y 是 ##Inf 或 ##-Inf => ##Inf 如果 x 或 y 是 ##NaN,且两者都不是 ##Inf 或 ##-Inf => ##NaN 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#hypot-double-double-
i
- IEEE-remainder
- 根据 IEEE 754 返回余数,使得 remainder = dividend - divisor * n,其中 n 是最接近 dividend / divisor 精确值的整数。如果两个整数的接近程度相同,则 n 为偶数。如果余数为零,则符号将与被除数匹配。如果被除数或除数是 ##NaN,或者被除数是 ##Inf 或 ##-Inf,或者除数为零 => ##NaN 如果被除数是有限的,而除数是无限的 => 被除数 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#IEEEremainder-double-double-
- increment-exact
- 返回 a 加 1 的值,如果发生溢出,则抛出 ArithmeticException。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#incrementExact-long-
l
- log
- 返回 a 的自然对数(以 e 为底)。如果 a 是 ##NaN 或负数 => ##NaN 如果 a 是 ##Inf => ##Inf 如果 a 为零 => ##-Inf 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#log-double-
- log10
- 返回 a 的对数(以 10 为底)。如果 a 是 ##NaN 或负数 => ##NaN 如果 a 是 ##Inf => ##Inf 如果 a 为零 => ##-Inf 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#log10-double-
- log1p
- 返回 ln(1+x)。对于较小的 x 值,log1p(x) 比 log(1.0+x) 更准确。如果 x 是 ##NaN 或 < -1 => ##NaN 如果 x 是 ##Inf => ##Inf 如果 x 为 -1 => ##-Inf 如果 x 为 0 => 0,符号与 x 匹配 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#log1p-double-
m
- multiply-exact
- 返回 x 和 y 的乘积,如果发生溢出,则抛出 ArithmeticException。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#multiplyExact-long-long-
n
- negate-exact
- 返回 a 的负数,如果发生溢出,则抛出 ArithmeticException。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#negateExact-long-
- next-after
- 返回第二个参数方向上与 start 相邻的浮点数。如果参数相等,则返回第二个参数。如果任一参数是 #NaN => #NaN 如果两个参数都是带符号的零 => direction 如果 start 是 +-Double/MIN_VALUE,且 direction 会导致幅度变小 => 符号与 start 匹配的零 如果 start 是 ##Inf 或 ##-Inf,且 direction 会导致幅度变小 => 与 start 符号相同的 Double/MAX_VALUE 如果 start 等于 +=Double/MAX_VALUE,且 direction 会导致幅度变大 => 符号与 start 匹配的 ##Inf 或 ##-Inf 参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#nextAfter-double-double-
- next-down
- 返回 d 在 ##-Inf 方向上的相邻双精度值。如果 d 为 ##NaN => ##NaN;如果 d 为 ##-Inf => ##-Inf;如果 d 为零 => -Double/MIN_VALUE。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#nextDown-double-
- next-up(下一个更大的值)
- 返回 d 在 ##Inf 方向上的相邻双精度值。如果 d 为 ##NaN => ##NaN;如果 d 为 ##Inf => ##Inf;如果 d 为零 => Double/MIN_VALUE。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#nextUp-double-
p
- PI(圆周率)
- 圆周率常量,即圆周长与其直径的比值。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#PI
- pow(幂运算)
- 返回 a 的 b 次幂。有关特殊情况的更多详细信息,请参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#pow-double-double-
r
- random(随机数)
- 返回 0.0 到 1.0 之间的正双精度值,以近似随机分布的伪随机方式选择。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#random--
- rint(舍入到最接近的整数)
- 返回最接近 a 且等于数学整数的双精度值。如果两个值相等接近,则返回偶数。如果 a 为 ##NaN 或 ##Inf 或 ##-Inf 或零 => a。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#rint-double-
- round(舍入)
- 返回最接近 a 的长整型值。如果与两个值相等接近,则返回更接近 ##Inf 的值。如果 a 为 ##NaN => 0;如果 a 为 ##-Inf 或小于 Long/MIN_VALUE => Long/MIN_VALUE;如果 a 为 ##Inf 或大于 Long/MAX_VALUE => Long/MAX_VALUE。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#round-double-
s
- scalb(按 2 的幂缩放)
- 返回 d * 2^scaleFactor,按 2 的幂进行缩放。如果指数介于 Double/MIN_EXPONENT 和 Double/MAX_EXPONENT 之间,则答案是精确的。如果 d 为 ##NaN => ##NaN;如果 d 为 ##Inf 或 ##-Inf => 分别为 ##Inf 或 ##-Inf;如果 d 为零 => 与 d 符号相同的零。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#nextDown-double-
- signum(符号函数)
- 返回 d 的符号函数 - 零为零,大于 0 为 1.0,小于 0 为 -1.0。如果 d 为 ##NaN => ##NaN。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#signum-double-
- sin(正弦)
- 返回角度的正弦值。如果 a 为 ##NaN、##-Inf、##Inf => ##NaN;如果 a 为零 => 与 a 符号相同的零。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#sin-double-
- sinh(双曲正弦)
- 返回 x 的双曲正弦值,(e^x - e^-x)/2。如果 x 为 ##NaN => ##NaN;如果 x 为 ##Inf 或 ##-Inf 或零 => x。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#sinh-double-
- sqrt(平方根)
- 返回 a 的正平方根。如果 a 为 ##NaN 或负数 => ##NaN;如果 a 为 ##Inf => ##Inf;如果 a 为零 => a。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#sqrt-double-
- subtract-exact(精确减法)
- 返回 x 和 y 的差,如果发生溢出,则抛出 ArithmeticException。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#subtractExact-long-long-
t
- tan(正切)
- 返回角度的正切值。如果 a 为 ##NaN、##-Inf、##Inf => ##NaN;如果 a 为零 => 与 a 符号相同的零。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#tan-double-
- tanh(双曲正切)
- 返回 x 的双曲正切值,sinh(x)/cosh(x)。如果 x 为 ##NaN => ##NaN;如果 x 为零 => 符号相同的零;如果 x 为 ##Inf => +1.0;如果 x 为 ##-Inf => -1.0。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#tanh-double-
- to-degrees(转换为度数)
- 将以弧度表示的角度转换为近似等效的度数。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#toDegrees-double-
- to-radians(转换为弧度)
- 将以度数表示的角度转换为近似等效的弧度。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#toRadians-double-
u
- ulp(最后一位单位)
- 返回 d 的 ulp(最后一位单位)的大小。如果 d 为 ##NaN => ##NaN;如果 d 为 ##Inf 或 ##-Inf => ##Inf;如果 d 为零 => Double/MIN_VALUE;如果 d 为 +/- Double/MAX_VALUE => 2^971。参见:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#ulp-double-