summary refs log tree commit diff stats
path: root/lib/pure/math.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pure/math.nim')
-rw-r--r--lib/pure/math.nim7
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>".}
'n50' href='#n50'>50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127