mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-02 03:02:31 +00:00
* fix js unsigned integer
* Use `std` prefix for standard library modules
* fix #17118
(cherry picked from commit 32bf10126c)
This commit is contained in:
@@ -11,7 +11,8 @@
|
||||
#import vmdeps, vm
|
||||
from math import sqrt, ln, log10, log2, exp, round, arccos, arcsin,
|
||||
arctan, arctan2, cos, cosh, hypot, sinh, sin, tan, tanh, pow, trunc,
|
||||
floor, ceil, `mod`
|
||||
floor, ceil, `mod`, cbrt, arcsinh, arccosh, arctanh, erf, erfc, gamma,
|
||||
lgamma
|
||||
|
||||
from os import getEnv, existsEnv, dirExists, fileExists, putEnv, walkDir, getAppFilename
|
||||
from md5 import getMD5
|
||||
@@ -147,6 +148,7 @@ proc registerAdditionalOps*(c: PCtx) =
|
||||
setResult a, c.config.projectPath.string
|
||||
|
||||
wrap1f_math(sqrt)
|
||||
wrap1f_math(cbrt)
|
||||
wrap1f_math(ln)
|
||||
wrap1f_math(log10)
|
||||
wrap1f_math(log2)
|
||||
@@ -155,6 +157,9 @@ proc registerAdditionalOps*(c: PCtx) =
|
||||
wrap1f_math(arccos)
|
||||
wrap1f_math(arcsin)
|
||||
wrap1f_math(arctan)
|
||||
wrap1f_math(arcsinh)
|
||||
wrap1f_math(arccosh)
|
||||
wrap1f_math(arctanh)
|
||||
wrap2f_math(arctan2)
|
||||
wrap1f_math(cos)
|
||||
wrap1f_math(cosh)
|
||||
@@ -167,6 +172,10 @@ proc registerAdditionalOps*(c: PCtx) =
|
||||
wrap1f_math(trunc)
|
||||
wrap1f_math(floor)
|
||||
wrap1f_math(ceil)
|
||||
wrap1f_math(erf)
|
||||
wrap1f_math(erfc)
|
||||
wrap1f_math(gamma)
|
||||
wrap1f_math(lgamma)
|
||||
|
||||
wrap1s(getMD5, md5op)
|
||||
|
||||
|
||||
@@ -213,6 +213,25 @@ block:
|
||||
doAssert(classify(trunc(f_nan.float32)) == fcNan)
|
||||
doAssert(classify(trunc(0.0'f32)) == fcZero)
|
||||
|
||||
block:
|
||||
when not defined(js):
|
||||
# check for no side effect annotation
|
||||
proc mySqrt(num: float): float {.noSideEffect.} =
|
||||
# xxx unused
|
||||
sqrt(num)
|
||||
|
||||
# check gamma function
|
||||
doAssert gamma(5.0) == 24.0 # 4!
|
||||
doAssert almostEqual(gamma(0.5), sqrt(PI))
|
||||
doAssert almostEqual(gamma(-0.5), -2 * sqrt(PI))
|
||||
doAssert lgamma(1.0) == 0.0 # ln(1.0) == 0.0
|
||||
doAssert almostEqual(lgamma(0.5), 0.5 * ln(PI))
|
||||
doAssert erf(6.0) > erf(5.0)
|
||||
doAssert erfc(6.0) < erfc(5.0)
|
||||
|
||||
when not defined(js) and not defined(windows): # xxx pending bug #17017
|
||||
doAssert gamma(-1.0).isNaN
|
||||
|
||||
block: # sgn() tests
|
||||
assert sgn(1'i8) == 1
|
||||
assert sgn(1'i16) == 1
|
||||
|
||||
Reference in New Issue
Block a user