-
Notifications
You must be signed in to change notification settings - Fork 19
Math natives
native math_random(min=0, max=cellmax);Returns a random signed integer between min and max (inclusive). The distribution is uniform.
native math_random_unsigned(min=0, max=-1);Returns a random unsigned integer between min and max (inclusive). The distribution is uniform.
native Float:math_random_float(Float:min=0.0, Float:max=1.0);Returns a random floating point number between min and max (inclusive). The distribution is uniform.
native math_random_seed(seed);Configures the internal pseudo-random number generator with a new seed. Raises an error if the current generator is generator_random_device.
native math_random_generator(random_generator:type);Switches the (pseudo-)random number generator in use to the one identified by type. The state of the old generator will be preserved and used if it is switched back to. The default generator is generator_mt19937.
native math_round(Float:val);
native math_floor(Float:val);
native math_ceiling(Float:val);
native math_truncate(Float:val);Rounds a floating point number to the nearest integer. Raises a domain error if the number doesn't fit in a cell.
native math_iadd({_,signed}:a, {_,signed}:b);
native math_isub({_,signed}:a, {_,signed}:b);
native math_imul({_,signed}:a, {_,signed}:b);
native math_idiv({_,signed}:a, {_,signed}:b);
native math_imod({_,signed}:a, {_,signed}:b);
native math_iinc({_,signed}:a);
native math_idec({_,signed}:a);Performs a signed arithmetic operation on two signed values.
native math_iadd_ovf({_,signed}:a, {_,signed}:b);
native math_isub_ovf({_,signed}:a, {_,signed}:b);
native math_imul_ovf({_,signed}:a, {_,signed}:b);
native math_iinc_ovf({_,signed}:a);
native math_idec_ovf({_,signed}:a);Performs a signed arithmetic operation on two signed values. If the result does not fit in a single cell, raises a domain error.
native math_uadd({_,unsigned}:a, {_,unsigned}:b);
native math_usub({_,unsigned}:a, {_,unsigned}:b);
native math_umul({_,unsigned}:a, {_,unsigned}:b);
native math_udiv({_,unsigned}:a, {_,unsigned}:b);
native math_umod({_,unsigned}:a, {_,unsigned}:b);
native math_uinc({_,unsigned}:a);
native math_udec({_,unsigned}:a);Performs an unsigned arithmetic operation on two unsigned values.
native math_uadd_ovf({_,unsigned}:a, {_,unsigned}:b);
native math_usub_ovf({_,unsigned}:a, {_,unsigned}:b);
native math_umul_ovf({_,unsigned}:a, {_,unsigned}:b);
native math_uinc_ovf({_,unsigned}:a);
native math_udec_ovf({_,unsigned}:a);Performs an unsigned arithmetic operation on two unsigned values. If the result does not fit in a single cell, raises a domain error.
native bool:math_ilt({_,signed}:a, {_,signed}:b);
native bool:math_ilte({_,signed}:a, {_,signed}:b);
native bool:math_igt({_,signed}:a, {_,signed}:b);
native bool:math_igte({_,signed}:a, {_,signed}:b);
native bool:math_ult({_,unsigned}:a, {_,unsigned}:b);
native bool:math_ulte({_,unsigned}:a, {_,unsigned}:b);
native bool:math_ugt({_,unsigned}:a, {_,unsigned}:b);
native bool:math_ugte({_,unsigned}:a, {_,unsigned}:b);Compares two signed or two unsigned values.