Skip to content

Commit

Permalink
core; num; add exp & log2
Browse files Browse the repository at this point in the history
I've had a couple use cases in time that the code is significantly clearer with these, and makes porting less error prone
  • Loading branch information
ruby0x1 committed Jul 11, 2020
1 parent 0e8d56f commit 433fbc4
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 1 deletion.
10 changes: 9 additions & 1 deletion doc/site/modules/core/num.markdown
Expand Up @@ -96,7 +96,15 @@ Whether the number is [not a number](http://en.wikipedia.org/wiki/NaN). This is

### **log**

The natural logarithm of the number.
The natural logarithm of the number. Returns `nan` if the base is negative.

### **log2**

The binary (base-2) logarithm of the number. Returns `nan` if the base is negative.

### **exp**

The exponential `e` (Euler’s number) raised to the number. This: `eⁿ`.

### **pow**(power)

Expand Down
4 changes: 4 additions & 0 deletions src/vm/wren_core.c
Expand Up @@ -652,6 +652,8 @@ DEF_NUM_FN(sin, sin)
DEF_NUM_FN(sqrt, sqrt)
DEF_NUM_FN(tan, tan)
DEF_NUM_FN(log, log)
DEF_NUM_FN(log2, log2)
DEF_NUM_FN(exp, exp)

DEF_PRIMITIVE(num_mod)
{
Expand Down Expand Up @@ -1299,6 +1301,8 @@ void wrenInitializeCore(WrenVM* vm)
PRIMITIVE(vm->numClass, "sqrt", num_sqrt);
PRIMITIVE(vm->numClass, "tan", num_tan);
PRIMITIVE(vm->numClass, "log", num_log);
PRIMITIVE(vm->numClass, "log2", num_log2);
PRIMITIVE(vm->numClass, "exp", num_exp);
PRIMITIVE(vm->numClass, "%(_)", num_mod);
PRIMITIVE(vm->numClass, "~", num_bitwiseNot);
PRIMITIVE(vm->numClass, "..(_)", num_dotDot);
Expand Down
3 changes: 3 additions & 0 deletions test/core/number/exp.wren
@@ -0,0 +1,3 @@
System.print(5.exp) // expect: 148.41315910258
System.print(10.exp) // expect: 22026.465794807
System.print((-1).exp) // expect: 0.36787944117144
4 changes: 4 additions & 0 deletions test/core/number/log2.wren
@@ -0,0 +1,4 @@
System.print(1024.log2) // expect: 10
System.print(2048.log2) // expect: 11
System.print(100.log2) // expect: 6.6438561897747
System.print((-1).log2) // expect: nan

0 comments on commit 433fbc4

Please sign in to comment.