diff options
| author | Gertjan van den Burg <burg@ese.eur.nl> | 2015-07-31 16:21:25 +0200 |
|---|---|---|
| committer | Gertjan van den Burg <burg@ese.eur.nl> | 2015-07-31 16:21:25 +0200 |
| commit | 2971238c8957df1bce0629c12d8c209b39328590 (patch) | |
| tree | 5c84f9bede77ea23d6bc3467cbb82e619feb85ac /SyncRNG.R | |
| parent | more reliable way to import SyncRNG from R (diff) | |
| download | SyncRNG-2971238c8957df1bce0629c12d8c209b39328590.tar.gz SyncRNG-2971238c8957df1bce0629c12d8c209b39328590.zip | |
reformat to proper python and R packages
Diffstat (limited to 'SyncRNG.R')
| -rw-r--r-- | SyncRNG.R | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/SyncRNG.R b/SyncRNG.R deleted file mode 100644 index 90e6fd5..0000000 --- a/SyncRNG.R +++ /dev/null @@ -1,63 +0,0 @@ -library(methods) - -frame.files <- lapply(sys.frames(), function(x) x$ofile) -frame.files <- Filter(Negate(is.null), frame.files) - -script.dir <- normalizePath(dirname(frame.files[[length(frame.files)]])) -source.file <- paste(script.dir, '/', 'RSyncRNG.so', sep='') - -dyn.load(source.file) - -SyncRNG <- setRefClass('SyncRNG', - fields=list( - seed='numeric', - state='numeric', - BPF='numeric' - ), - methods=list( - initialize=function(..., seed=0) { - BPF <<- 32 - seed <<- seed - tmp <- .Call('R_syncrng_seed', - as.numeric(seed)) - state <<- tmp[1:4] - callSuper(...) - }, - randi=function() { - tmp <- .Call('R_syncrng_rand', - as.numeric(state)) - state <<- tmp[1:4] - return(tmp[5]) - }, - rand=function() { - r <- randi() - return (r * 2.3283064365387e-10) - }, - randbelow=function(n) { - maxsize <- 2^BPF - if (n >= maxsize) { - warning(paste("Underlying random generator ", - "does not supply\n enough bits ", - "to choose from a population ", - "range this large.\n")) - return(round(rand() * n)) - } - rem <- maxsize %% n - limit <- (maxsize - rem) / maxsize - r <- rand() - while (r >= limit) - r <- rand() - return(round(r*maxsize) %% n) - }, - shuffle=function(x) { - y <- x - for (i in rev(1:(length(y)-1))) { - j <- randbelow(i+1) - tmp <- y[i+1] - y[i+1] <- y[j+1] - y[j+1] <- tmp - } - return(y) - } - ) - ) |
