aboutsummaryrefslogtreecommitdiff
path: root/SyncRNG.R
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2015-07-30 16:07:50 +0200
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2015-07-30 16:07:50 +0200
commitdec32e1516a05db805ff75a9e016e8bea04d1d8e (patch)
tree1087efc189d5ca533ac01fec6746347212d66202 /SyncRNG.R
parentadded readme (diff)
downloadSyncRNG-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.R29
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)
+ }
+ )
+ )