diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2015-07-30 16:07:50 +0200 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2015-07-30 16:07:50 +0200 |
| commit | dec32e1516a05db805ff75a9e016e8bea04d1d8e (patch) | |
| tree | 1087efc189d5ca533ac01fec6746347212d66202 /SyncRNG.R | |
| parent | added readme (diff) | |
| download | SyncRNG-dec32e1516a05db805ff75a9e016e8bea04d1d8e.tar.gz SyncRNG-dec32e1516a05db805ff75a9e016e8bea04d1d8e.zip | |
name change to SyncRNG and documentation in the .c file
Diffstat (limited to 'SyncRNG.R')
| -rw-r--r-- | SyncRNG.R | 29 |
1 files changed, 29 insertions, 0 deletions
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) + } + ) + ) |
