parrotcode: Some utility functions | |
Contents | C |
src/utils.c - Some utility functions
Prototypes are in src/misc.h.
Opcode helper functions that don't really fit elsewhere.
INTVAL intval_mod(INTVAL i2, INTVAL i3)
x mod y = x - y * floor(x / y)
FLOATVAL floatval_mod(FLOATVAL n2, FLOATVAL n3)
n2 mod n3
.lcc
compiler.PMC *foldup(Parrot_Interp interpreter, INTVAL skip)
skip
and return them in an Array
PMC.Based on the rand48()
family of functions.
static void next_rand(_rand_buf X)
X
.static FLOATVAL _erand48(_rand_buf buf)
double
in the interval [0.0, 1.0)
.static FLOATVAL _drand48(void)
double
in the interval [0.0, 1.0)
.static long _jrand48(_rand_buf buf)
long
in the interval [-2^31, 2^31)
.static long _nrand48(_rand_buf buf)
long
in the interval [0, 2^31)
.static long _lrand48(void)
long
in the interval [0, 2^31)
.static long _mrand48(void)
long
in the interval [-2^31, 2^31)
.static void _srand48(long seed)
seed
. The low order 16 bits are set to the arbitrary value 0x330e.FLOATVAL Parrot_float_rand(INTVAL how_random)
FLOATVAL
in the interval [0.0, 1.0)
.how_random
is ignored.INTVAL Parrot_uint_rand(INTVAL how_random)
INTVAL
in the interval [0, 2^31)
.how_random
is ignored.INTVAL Parrot_int_rand(INTVAL how_random)
INTVAL
in the interval [-2^31, 2^31)
.how_random
is ignored.INTVAL Parrot_range_rand(INTVAL from, INTVAL to, INTVAL how_random)
INTVAL
in the range [from, to]
.how_random
is ignored.void Parrot_srand(INTVAL seed)
seed
.void *Parrot_make_la(Interp *interpreter, PMC *array)
long
s with one more element than the number of elements in *array
. The elements are then copied from *array
to the new array, and the last (extra) element is set to 0.src/nci.c
.void Parrot_destroy_la(long *array)
Parrot_make_la()
.void *Parrot_make_cpa(Interp *interpreter, PMC *array)
char *
s with one more element than the number of elements in *array
. The elements are then copied from *array
to the new array, and the last (extra) element is set to 0.void Parrot_destroy_cpa(char **array)
Parrot_make_cpa()
.PMC *tm_to_array(Parrot_Interp, struct tm *)
Initial version by leo 2003.09.09.
|