Latin Hypercube Samples (lhs)  1.0
R, C++, and Rcpp code to generate Latin hypercube samples
All Classes Namespaces Files Functions Variables Typedefs Macros Pages
runif.h
Go to the documentation of this file.
1 
31 #ifndef RUNIF_H
32 #define RUNIF_H
33 
34 #include "OACommonDefines.h"
38 #define SEEDOK 1
39 
42 #define SEEDBAD 0
43 
46 #define SEED_VECTOR_LENGTH (97+1)
47 
48 namespace oacpp
49 {
53  struct SeedSet
54  {
56  SeedSet() {};
58  SeedSet(int one, int two, int three, int four) { is = one; js = two; ks = three; ls = four; };
60  int is;
62  int js;
64  int ks;
66  int ls;
67  };
68 
78  class RUnif
79  {
80  public:
82  RUnif();
84  RUnif(int is, int js, int ks, int ls);
85 
86  ~RUnif() {};
87 
95  void seed(int is, int js, int ks, int ls );
96 
101  void seed(SeedSet & seedSet);
102 
108 
114  void runif(std::vector<double> & x, int n);
115 
122  static int mod(int a, int b);
123 
124  private:
133  static int seedok(int is, int js, int ks, int ls );
134 
140  void ranums(std::vector<double> & x, int n);
141 
142  int m_jent, m_i, m_j, m_k, m_l, ip, jp;
143  std::vector<double> u;
144  double c, cd, cm;
145  };
146 }
147 
148 #endif
oacpp::SeedSet::js
int js
Definition: runif.h:62
oacpp::RUnif::runif
void runif(std::vector< double > &x, int n)
Definition: runif.cpp:112
oacpp::SeedSet::SeedSet
SeedSet()
Definition: runif.h:56
oacpp
Definition: ak.h:39
oacpp::SeedSet::ks
int ks
Definition: runif.h:64
oacpp::SeedSet::SeedSet
SeedSet(int one, int two, int three, int four)
Definition: runif.h:58
oacpp::RUnif::mod
static int mod(int a, int b)
Definition: runif.cpp:53
OACommonDefines.h
oacpp::RUnif::getSeedSet
SeedSet getSeedSet()
Definition: runif.cpp:102
oacpp::RUnif
Definition: runif.h:79
oacpp::RUnif::seed
void seed(int is, int js, int ks, int ls)
Definition: runif.cpp:81
oacpp::SeedSet
Definition: runif.h:54
oacpp::SeedSet::is
int is
Definition: runif.h:58
oacpp::RUnif::RUnif
RUnif()
Definition: runif.cpp:35
oacpp::SeedSet::ls
int ls
Definition: runif.h:66