OSFEG-C++  1.4.6
OpenSF Error Generation Library
Stochastic.h
1 /*
2  * openSF Error Generation Libraries (OSFEG)
3  * Deimos Space, S.L.U.
4  *
5  * This file is part of OSFEG. OSFEG is free software; you can redistribute it
6  * and/or modify it under the terms of the 'ESA Software Community Licence Permissive' as
7  * published by the European Space Agency; either version 2.4 of the License,
8  * or (at your option) any later version. You should have received a
9  * copy of the 'ESA Software Community Licence Permissive - v2.4' along with this program
10  * or one can be found at <http://eop-cfi.esa.int/index.php/docs-and-mission-data/licensing-documents>.
11  *
12  */
13 
14 #ifndef STOCHASTIC_H_
15 #define STOCHASTIC_H_
16 
17 #include "stl_tree/Composite.h"
18 #include "Random.h"
19 #include "RandomFunctions.h"
20 #include <string>
21 
22 using namespace std;
23 
39 class Stochastic: public Composite
40 {
41 private:
42 
46  string type;
47 
51  Random *random;
52 
57  RandomFunctions *randomFunctions;
58 
64  double getBeta();
65 
71  double getGamma();
72 
78  double getExponential();
79 
85  double getNormal();
86 
92  double getUniform();
93 
99  double getTruncatedGaussian();
100 
106  double getCustomPDF();
107 
113  int getPoisson();
114 
120  int getUniformDiscrete();
121 
127  double getNextValue();
128 public:
129 
136  Stochastic(string type, int32_t seed);
137 
142 
150  double getValue(double time);
151 
155  void setSeed(int32_t seed);
156 
160  void reset();
161 };
162 
163 #endif /* STOCHASTIC_H_ */
Definition: Composite.h:25
Definition: RandomFunctions.h:28
Random numbers engine with additional distributions.
Definition: Random.h:109
Definition: Stochastic.h:40
void setSeed(int32_t seed)
Stochastic(string type, int32_t seed)
void reset()
double getValue(double time)