summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKoki Fushimi <paalon1936@gmail.com>2018-06-05 02:32:39 +0900
committerKoki Fushimi <paalon1936@gmail.com>2018-06-05 02:32:39 +0900
commit090ffa386961459d529c2561d3e196be6df83c50 (patch)
tree22fff12372819ba81daefd278c8fa6417abc41ad
parent41601e93074c1ff657b5e696f9d5e73e57ac660c (diff)
downloadNim-090ffa386961459d529c2561d3e196be6df83c50.tar.gz
Use concrete expression
-rw-r--r--lib/pure/math.nim13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/pure/math.nim b/lib/pure/math.nim
index 9fe24e358..95a0a345c 100644
--- a/lib/pure/math.nim
+++ b/lib/pure/math.nim
@@ -148,14 +148,13 @@ else: # JS
   proc ln*(x: float32): float32 {.importc: "Math.log", nodecl.}
   proc ln*(x: float64): float64 {.importc: "Math.log", nodecl.}
 
-proc log*[X, B: SomeFloat](x: X, base: B): auto =
+proc log*[T: SomeFloat](x, base: T): T =
   ## Computes the logarithm ``base`` of ``x``
-  when B is float64 or X is float64:
-    var r: float64
-  else:
-    var r: float32
-  r = ln(x) / ln(base)
-  return r
+  ln(x) / ln(base)
+proc log*(x: float64, base: float32): float64 =
+  ln(x) / ln(base)
+proc log*(x: float32, base: float64): float64 =
+  ln(x) / ln(base)
 
 when not defined(JS): # C
   proc log10*(x: float32): float32 {.importc: "log10f", header: "<math.h>".}