SCM

SCM Repository

[rmetrics] Diff of /pkg/randtoolbox/R/runifInterface.R
ViewVC logotype

Diff of /pkg/randtoolbox/R/runifInterface.R

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3972, Fri Mar 13 16:44:44 2009 UTC revision 3973, Sat Mar 14 13:09:15 2009 UTC
# Line 1  Line 1 
1  set.generator <- function(name=c("congruRand", "default"), parameters=NULL, seed=NULL, ...)  set.generator <- function(name=c("congruRand", "default"), parameters=NULL, seed=NULL, ...,
2                    only.description=FALSE)
3  {  {
4          name <- match.arg(name)          name <- match.arg(name)
5          dots <- list(...)          dots <- list(...)
# Line 11  Line 12 
12                  }                  }
13                  if (!identical(names(parameters), c("mod", "mult", "incr"))) {                  if (!identical(names(parameters), c("mod", "mult", "incr"))) {
14                          param.names <- paste(names(parameters),collapse=" ")                          param.names <- paste(names(parameters),collapse=" ")
15                          stop("parameters \"", param.names, "\" are not correct for congruRand")                          stop("parameter list \"", param.names, "\" is not correct for congruRand")
16                  }                  }
17                  if (is.null(seed)) {                  if (is.null(seed)) {
18                          seed <- floor(2^32 * runif(1))                          seed <- floor(as.double(parameters["mod"]) * runif(1))
19                  }                  }
20                  state <- c(seed=seed)                  state <- c(seed=seed)
21                  description <- list(name=name, parameters=parameters, state=state)                  description <- list(name=name, parameters=parameters, state=state)
22                    if (only.description) {
23                            return(description)
24                    } else {
25                  put.state(description)                  put.state(description)
26                    }
27          } else if (name == "default") {          } else if (name == "default") {
28                  RNGkind("default")                  RNGkind("default")
29                  if (!is.null(seed)) {                  if (!is.null(seed)) {
# Line 36  Line 41 
41          parameters <- description$parameters          parameters <- description$parameters
42          state <- description$state          state <- description$state
43          if (name == "congruRand") {          if (name == "congruRand") {
44                  .C("set_generator",                  aux <- .C("check_state_congru",
45                            as.double(parameters["mod"]),
46                            as.double(parameters["mult"]),
47                            as.double(parameters["incr"]),
48                            as.double(state["seed"]),
49                            err = integer(1),
50                            PACKAGE="randtoolbox")
51                    if (aux$err != 0) {
52                            stop("check congruRand error: ", aux$err)
53                    }
54                    .C("set_user_unif_init",
55                          as.integer(1),                          as.integer(1),
56                          PACKAGE="randtoolbox")                          PACKAGE="randtoolbox")
57                  RNGkind("user-supplied")                  RNGkind("user-supplied")
58                    .C("set_user_unif_rand",
59                            as.integer(1),
60                            PACKAGE="randtoolbox")
61                  .C("put_state_congru",                  .C("put_state_congru",
62                          as.double(parameters["mod"]),                          as.double(parameters["mod"]),
63                          as.double(parameters["mult"]),                          as.double(parameters["mult"]),

Legend:
Removed from v.3972  
changed lines
  Added in v.3973

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge