Merge branch 'num_methods' of git://github.com/MarcoLizza/wren into MarcoLizza-num_methods
This commit is contained in:
@@ -886,16 +886,50 @@ DEF_PRIMITIVE(num_cos)
|
||||
RETURN_NUM(cos(AS_NUM(args[0])));
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_deg)
|
||||
{
|
||||
RETURN_NUM(floor(AS_NUM(args[0]) * 57.2957795130823208768));
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_floor)
|
||||
{
|
||||
RETURN_NUM(floor(AS_NUM(args[0])));
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_fraction)
|
||||
{
|
||||
double integer;
|
||||
double fractional = modf(AS_NUM(args[0]) , &integer);
|
||||
RETURN_NUM(fractional);
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_isNan)
|
||||
{
|
||||
RETURN_BOOL(isnan(AS_NUM(args[0])));
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_rad)
|
||||
{
|
||||
RETURN_NUM(floor(AS_NUM(args[0]) / 57.2957795130823208768));
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_sign)
|
||||
{
|
||||
double value = AS_NUM(args[0]);
|
||||
if (value > 0)
|
||||
{
|
||||
RETURN_NUM(1);
|
||||
}
|
||||
else if (value < 0)
|
||||
{
|
||||
RETURN_NUM(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
RETURN_NUM(0);
|
||||
}
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_sin)
|
||||
{
|
||||
RETURN_NUM(sin(AS_NUM(args[0])));
|
||||
@@ -936,6 +970,13 @@ DEF_PRIMITIVE(num_toString)
|
||||
RETURN_VAL(wrenNewString(vm, buffer, length));
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_truncate)
|
||||
{
|
||||
double integer;
|
||||
modf(AS_NUM(args[0]) , &integer);
|
||||
RETURN_NUM(integer);
|
||||
}
|
||||
|
||||
DEF_PRIMITIVE(num_fromString)
|
||||
{
|
||||
if (!validateString(vm, args, 1, "Argument")) return PRIM_ERROR;
|
||||
@@ -1522,11 +1563,16 @@ void wrenInitializeCore(WrenVM* vm)
|
||||
PRIMITIVE(vm->numClass, "abs", num_abs);
|
||||
PRIMITIVE(vm->numClass, "ceil", num_ceil);
|
||||
PRIMITIVE(vm->numClass, "cos", num_cos);
|
||||
PRIMITIVE(vm->numClass, "deg", num_deg);
|
||||
PRIMITIVE(vm->numClass, "floor", num_floor);
|
||||
PRIMITIVE(vm->numClass, "fraction", num_fraction);
|
||||
PRIMITIVE(vm->numClass, "isNan", num_isNan);
|
||||
PRIMITIVE(vm->numClass, "rad", num_rad);
|
||||
PRIMITIVE(vm->numClass, "sign", num_sign);
|
||||
PRIMITIVE(vm->numClass, "sin", num_sin);
|
||||
PRIMITIVE(vm->numClass, "sqrt", num_sqrt);
|
||||
PRIMITIVE(vm->numClass, "toString", num_toString);
|
||||
PRIMITIVE(vm->numClass, "truncate", num_truncate);
|
||||
|
||||
// These are defined just so that 0 and -0 are equal, which is specified by
|
||||
// IEEE 754 even though they have different bit representations.
|
||||
|
||||
Reference in New Issue
Block a user