17 i64 s1 = args[0].asInt();
18 i64 s2 = args[1].asInt();
20 if (s1 <= 0 || s2 <= 0)
22 throw std::runtime_error(
"rand_seed(): Both values must be positive integers");
32 i64 min = args[0].asInt();
33 i64 max = args[1].asInt();
37 throw std::runtime_error(
"rand_get(): min value cannot be greater than max value");
static i64 rand_next_range(const std::vector< Value > &args, VM *vm)
Get a random number in range.
static void checkArgCount(const std::vector< Value > &args, size_t minimumArguments, const std::string &name, bool allowMoreArguments=false)
static f64 rand_next_float(const std::vector< Value > &args, VM *vm)
Get a random float (technically a f64 at a low level).
static void registerRandomFunctions(VM *vm)
static Value rand_seed(const std::vector< Value > &args, VM *vm)
Seed the random number generator.
void registerNativeFunction(const std::string &name, NativeFunction fn)
Register a native function.
A value in the Phasor VM.
Phasor::f64 PHASORstd_rand_next_double()
void PHASORstd_rand_seed(Phasor::u64 s0, Phasor::u64 s1)
Phasor::i64 PHASORstd_rand_next_range(Phasor::i64 min, Phasor::i64 max)
The Phasor Programming Language and Runtime.