From dec32e1516a05db805ff75a9e016e8bea04d1d8e Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Thu, 30 Jul 2015 16:07:50 +0200 Subject: name change to SyncRNG and documentation in the .c file --- SyncRNG.R | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 SyncRNG.R (limited to 'SyncRNG.R') diff --git a/SyncRNG.R b/SyncRNG.R new file mode 100644 index 0000000..23be4d2 --- /dev/null +++ b/SyncRNG.R @@ -0,0 +1,29 @@ +library(methods) + +dyn.load('RSyncRNG.so') + +SyncRNG <- setRefClass('SyncRNG', + fields=list( + seed='numeric', + state='numeric' + ), + methods=list( + initialize=function(..., seed=0) { + seed <<- seed + tmp <- .Call('R_syncrng_seed', + as.integer(seed)) + state <<- tmp[1:4] + callSuper(...) + }, + randi=function() { + tmp <- .Call('R_syncrng_rand', + as.integer(state)) + state <<- tmp[1:4] + return(tmp[5]) + }, + rand=function() { + r <- randi() + return (r * 2.3283064365387e-10) + } + ) + ) -- cgit v1.2.3