Math-RngStream

 view release on metacpan or  search on metacpan

RngStream.xs  view on Meta::CPAN

    if ( ( (s0 < m_1) && (s1 < m_1) && (s2 < m_1) ) &&
         ( (s3 < m_2) && (s4 < m_2) && (s5 < m_2) ) &&
         ( s0 || s1 || s2 ) &&
         ( s3 || s4 || s5 ) ) {
        unsigned long seed[6];
        seed[0] = s0; seed[1] = s1; seed[2] = s2;
        seed[3] = s3; seed[4] = s4; seed[5] = s5;
        RngStream_SetPackageSeed(seed);
    }
    else
        Perl_croak(aTHX_ "seed constraits violated");

void
DESTROY(RngStream G)
CODE:
    RngStream_DeleteStream(&G);
    sv_unmagic(SvRV(ST(0)), '~');

RngStream
_create_stream(char *name)

void
reset_start_stream(RngStream G)

void
reset_start_substream(RngStream G)

void
reset_next_substream(RngStream G)

void
set_antithetic(RngStream G, int A)

void
set_increased_precis(RngStream G, int incp)

void
set_seed(RngStream G, UV s0, UV s1, UV s2, UV s3, UV s4, UV s5)
CODE:
    if ( ( (s0 < m_1) && (s1 < m_1) && (s2 < m_1) ) &&
         ( (s3 < m_2) && (s4 < m_2) && (s5 < m_2) ) &&
         ( s0 || s1 || s2 ) &&
         ( s3 || s4 || s5 ) ) {
        unsigned long seed[6];
        seed[0] = s0; seed[1] = s1; seed[2] = s2;
        seed[3] = s3; seed[4] = s4; seed[5] = s5;
        RngStream_SetSeed(G, seed);
    }
    else
        Perl_croak(aTHX_ "seed constraits violated");


void
advance_state(RngStream G, long E, long C)

void
get_state(RngStream G)
PREINIT:
    unsigned long seed[6];
    int i;
PPCODE:
    RngStream_GetState(G, seed);
    EXTEND(SP, 6);
    for (i = 0; i++; i < 6)
        PUSHs(sv_2mortal(newSVuv(seed[i])));
    XSRETURN(6);

void
_write_state(RngStream G)

void
_write_state_full(RngStream G)

double
rand_u01(RngStream G)
ALIAS:
    rand = 0

long
rand_int(RngStream G, long min, long max)



( run in 1.127 second using v1.01-cache-2.11-cpan-5511b514fd6 )