Broaden the argument types

This commit is contained in:
Koki Fushimi
2018-06-04 16:48:11 +09:00
parent f849db1c5c
commit abf8ee049a

View File

@@ -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>".}