Exemplo n.º 1
0
JNIEXPORT void JNICALL Java_org_simgrid_msg_RngStream_advanceState(JNIEnv *env, jobject jrngstream, jint e, jint g) {
  RngStream rngstream = jrngstream_to_native(env, jrngstream);
  if (!rngstream)
    return;

  RngStream_AdvanceState(rngstream, (long)e, (long)g);
}
Exemplo n.º 2
0
VALUE rng_advance_state(VALUE self, VALUE dispacement) {
  VALUE stream_ptr = rb_iv_get(self, "@stream_prt");
  RngStream stream;
  Data_Get_Struct(stream_ptr, RngStream, stream);
  RngStream_AdvanceState(stream, 0, FIX2LONG(dispacement));
  return self;
}
Exemplo n.º 3
0
SEXP r_advance_state (SEXP sexp_e, SEXP sexp_c,
                      SEXP sexp_streamCg,SEXP sexp_streamBg,
                      SEXP sexp_streamIg,
                      SEXP sexp_streamAnti,SEXP sexp_streamIncPrec,
                      SEXP sexp_streamName)
{
    SEXP sexp_stream;
    RngStream stream;
    int i;
    long e, c;
    const char *name;
    size_t len;

    stream = (RngStream) malloc (sizeof (struct RngStream_InfoState));
    if (stream == NULL) {
        error("r_advance_state: No more memory\n\n");
    }

    e = REAL(sexp_e)[0];
    c = REAL(sexp_c)[0];
    for (i=0; i<6; i++) {
        stream->Cg[i] = REAL(sexp_streamCg)[i];
        stream->Bg[i] = REAL(sexp_streamBg)[i];
        stream->Ig[i] = REAL(sexp_streamIg)[i];
    }
    stream->Anti = INTEGER(sexp_streamAnti)[0];
    stream->IncPrec = INTEGER(sexp_streamIncPrec)[0];
    name = CHAR(STRING_ELT(sexp_streamName,0));
    len = strlen(name);
    stream->name = malloc(len+1);
    if (stream->name == NULL) {
        free(stream);
        error("r_set_stream_seed: No more memory\n\n");
    }
    strncpy(stream->name, name, len+1);

    RngStream_AdvanceState (stream, e, c);

    PROTECT(sexp_stream = allocVector(REALSXP, 20));

    for (i = 0; i < 6; ++i) {
        REAL(sexp_stream)[i] = (double) stream->Cg[i];
        REAL(sexp_stream)[i+6] = (double) stream->Bg[i];
        REAL(sexp_stream)[i+12] = (double) stream->Ig[i];
    }
    REAL(sexp_stream)[18] = (int) stream->Anti;
    REAL(sexp_stream)[19] = (int) stream->IncPrec;
    UNPROTECT(1);

    free(stream);
    return sexp_stream;
}