diff options
Diffstat (limited to 'lib/pure/math.nim')
-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>".} |