Math-Random-MTwist
view release on metacpan or search on metacpan
new_state(char* CLASS)
CODE:
Newxz(RETVAL, 1, mt_state);
if (RETVAL == NULL)
croak("Could not allocate state memory");
OUTPUT:
RETVAL
void
DESTROY(mt_state* state)
PPCODE:
Safefree(state);
UV
seed32(mt_state* state, uint32_t seed)
CODE:
mts_seed32new(state, seed);
RETVAL = seed;
OUTPUT:
RETVAL
CODE:
RETVAL = goodseed(NULL);
OUTPUT:
RETVAL
void
bestseed(mt_state* state)
void
_bestseed()
PPCODE:
bestseed(NULL);
void
seedfull(mt_state* state, AV* seeds)
PPCODE:
seedfull(state, seeds);
void
_seedfull(AV* seeds)
PPCODE:
seedfull(NULL, seeds);
SV*
irand32(mt_state* state);
ALIAS:
irand64 = 1
irand = 2
CODE:
#if IVSIZE >= 8
if (ix)
PUSHs(&PL_sv_undef); \
mPUSHp(i2d.str, 8); \
} \
} \
} \
void
rd_double(mt_state* state, int index = 0)
PREINIT:
int2dbl i2d;
PPCODE:
i2d = rd_double(state);
RETURN_I2D(items > 1);
void
_rd_double(int index = 0)
PREINIT:
int2dbl i2d;
PPCODE:
i2d = rd_double(NULL);
RETURN_I2D(items != 0);
IV
rd_iuniform32(mt_state* state, IV lower, IV upper);
ALIAS:
rd_iuniform64 = 1
rd_iuniform = 2
CODE:
#if IVSIZE >= 8
SV*
_getstate()
CODE:
RETVAL = newSVpvn((char*)&mt_default_state, sizeof(mt_state));
OUTPUT:
RETVAL
void
setstate(mt_state* state, SV* sv_state)
PPCODE:
set_state_from_sv(sv_state, state);
void
_setstate(SV* sv_state)
PPCODE:
set_state_from_sv(sv_state, &mt_default_state);
BOOT:
{
HV *stash;
stash = gv_stashpv("Math::Random::MTwist", TRUE);
newCONSTSUB(stash, "HAS_UINT64_T", newSViv(HAS_UINT64_T));
newCONSTSUB(stash, "NVMANTBITS", newSViv(NVMANTBITS));
}
( run in 0.725 second using v1.01-cache-2.11-cpan-5511b514fd6 )