From abf8ee049a00676e2b45faaf79b5eff44f20f467 Mon Sep 17 00:00:00 2001 From: Koki Fushimi Date: Mon, 4 Jun 2018 16:48:11 +0900 Subject: [PATCH] Broaden the argument types --- lib/pure/math.nim | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/pure/math.nim b/lib/pure/math.nim index cd7bf5fe2e..9cadfb6b74 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: "".}