diff options
author | Koki Fushimi <paalon1936@gmail.com> | 2018-06-04 16:48:11 +0900 |
---|---|---|
committer | Koki Fushimi <paalon1936@gmail.com> | 2018-06-04 16:48:11 +0900 |
commit | abf8ee049a00676e2b45faaf79b5eff44f20f467 (patch) | |
tree | c0ee2b7359967e331d0b9b1f0e770b53254acc7a /lib/pure | |
parent | f849db1c5c38a36c32628e3e95f3e9e8cee55d20 (diff) | |
download | Nim-abf8ee049a00676e2b45faaf79b5eff44f20f467.tar.gz |
Broaden the argument types
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/math.nim | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/pure/math.nim b/lib/pure/math.nim index cd7bf5fe2..9cadfb6b7 100644 --- a/lib/pure/math.nim +++ b/lib/pure/math.nim @@ -148,8 +148,13 @@ else: # JS proc ln*(x: float32): float32 {.importc: "Math.log", nodecl.} proc ln*(x: float64): float64 {.importc: "Math.log", nodecl.} -proc log*[T: SomeFloat](b, x: T): T = ln(x) / ln(b) +proc log*[B, X: SomeFloat](b: B, x: X): auto = ## Computes the logarithm base ``b`` of ``x`` + when B is float64 or X is float64 + var r: float64 + else: + var r: float32 + result = ln(x) / ln(b) when not defined(JS): # C proc log10*(x: float32): float32 {.importc: "log10f", header: "<math.h>".} |