From 2650794340fa64ae822f865db567995c214400d5 Mon Sep 17 00:00:00 2001 From: underscorediscovery Date: Mon, 31 Oct 2016 17:21:55 -0230 Subject: [PATCH 1/3] Update AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cbd5ae26..d0556f92 100644 --- a/AUTHORS +++ b/AUTHORS @@ -18,3 +18,4 @@ Alexander Roper Will Speak Damien Radtke Max Ferguson +Sven Bergström From 955e92761d2e5d1331579e16e4a6e51ec567e2a3 Mon Sep 17 00:00:00 2001 From: underscorediscovery Date: Mon, 31 Oct 2016 17:22:13 -0230 Subject: [PATCH 2/3] Add .pow(_) to Num --- src/vm/wren_core.c | 6 ++++++ test/core/number/pow.wren | 4 ++++ 2 files changed, 10 insertions(+) create mode 100644 test/core/number/pow.wren diff --git a/src/vm/wren_core.c b/src/vm/wren_core.c index 5f1a2007..0d195567 100644 --- a/src/vm/wren_core.c +++ b/src/vm/wren_core.c @@ -644,6 +644,11 @@ DEF_PRIMITIVE(num_atan2) RETURN_NUM(atan2(AS_NUM(args[0]), AS_NUM(args[1]))); } +DEF_PRIMITIVE(num_pow) +{ + RETURN_NUM(pow(AS_NUM(args[0]), AS_NUM(args[1]))); +} + DEF_PRIMITIVE(num_fraction) { double dummy; @@ -1272,6 +1277,7 @@ void wrenInitializeCore(WrenVM* vm) PRIMITIVE(vm->numClass, "..(_)", num_dotDot); PRIMITIVE(vm->numClass, "...(_)", num_dotDotDot); PRIMITIVE(vm->numClass, "atan(_)", num_atan2); + PRIMITIVE(vm->numClass, "pow(_)", num_pow); PRIMITIVE(vm->numClass, "fraction", num_fraction); PRIMITIVE(vm->numClass, "isInfinity", num_isInfinity); PRIMITIVE(vm->numClass, "isInteger", num_isInteger); diff --git a/test/core/number/pow.wren b/test/core/number/pow.wren new file mode 100644 index 00000000..f9d3c269 --- /dev/null +++ b/test/core/number/pow.wren @@ -0,0 +1,4 @@ +System.print(2.pow(4)) // expect: 16 +System.print(2.pow(10)) // expect: 1024 + +System.print(1.pow(0)) // expect: 1 From a2868913c5920a3e474b9b345ceb240f8959333d Mon Sep 17 00:00:00 2001 From: underscorediscovery Date: Mon, 31 Oct 2016 17:22:32 -0230 Subject: [PATCH 3/3] Add .log to Num --- src/vm/wren_core.c | 2 ++ test/core/number/log.wren | 3 +++ 2 files changed, 5 insertions(+) create mode 100644 test/core/number/log.wren diff --git a/src/vm/wren_core.c b/src/vm/wren_core.c index 0d195567..ed452361 100644 --- a/src/vm/wren_core.c +++ b/src/vm/wren_core.c @@ -596,6 +596,7 @@ DEF_NUM_FN(negate, -) DEF_NUM_FN(sin, sin) DEF_NUM_FN(sqrt, sqrt) DEF_NUM_FN(tan, tan) +DEF_NUM_FN(log, log) DEF_PRIMITIVE(num_mod) { @@ -1272,6 +1273,7 @@ void wrenInitializeCore(WrenVM* vm) PRIMITIVE(vm->numClass, "sin", num_sin); PRIMITIVE(vm->numClass, "sqrt", num_sqrt); PRIMITIVE(vm->numClass, "tan", num_tan); + PRIMITIVE(vm->numClass, "log", num_log); PRIMITIVE(vm->numClass, "%(_)", num_mod); PRIMITIVE(vm->numClass, "~", num_bitwiseNot); PRIMITIVE(vm->numClass, "..(_)", num_dotDot); diff --git a/test/core/number/log.wren b/test/core/number/log.wren new file mode 100644 index 00000000..b4d18df6 --- /dev/null +++ b/test/core/number/log.wren @@ -0,0 +1,3 @@ +System.print(3.log) // expect: 1.0986122886681 +System.print(100.log) // expect: 4.6051701859881 +System.print((-1).log) // expect: nan