RMOL Logo  1.00.0
C++ library of Revenue Management and Optimisation classes and functions
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
DemandGeneratorList.cpp
Go to the documentation of this file.
1 // //////////////////////////////////////////////////////////////////////
2 // Import section
3 // //////////////////////////////////////////////////////////////////////
4 // RMOL
5 #include <rmol/bom/DemandGeneratorList.hpp>
6 
7 namespace RMOL {
8 
9  // //////////////////////////////////////////////////////////////////////
11  const DistributionParameterList_T aDistributionParameterList;
12  init (aDistributionParameterList);
13  }
14 
15  // //////////////////////////////////////////////////////////////////////
17  DemandGeneratorList (const DemandGeneratorList& iDemandGeneratorList) {
18  // TODO: copy the distribution parameters of the input generator list
19  const DistributionParameterList_T aDistributionParameterList;
20  init (aDistributionParameterList);
21  }
22 
23  // //////////////////////////////////////////////////////////////////////
25  DemandGeneratorList (const DistributionParameterList_T& iDistributionParameterList) {
26  init (iDistributionParameterList);
27  }
28 
29  // //////////////////////////////////////////////////////////////////////
31  }
32 
33  // //////////////////////////////////////////////////////////////////////
34  void DemandGeneratorList::
35  init (const DistributionParameterList_T& iDistributionParameterList) {
36 
37  DistributionParameterList_T::const_iterator itParams =
38  iDistributionParameterList.begin();
39  for ( ; itParams != iDistributionParameterList.end(); itParams++) {
40  const FldDistributionParameters& aParams = *itParams;
41 
42  const Gaussian gaussianGenerator (aParams);
43 
44  _demandGeneratorList.push_back (gaussianGenerator);
45  }
46  }
47 
48  // //////////////////////////////////////////////////////////////////////
50  generateVariateList (VariateList_T& ioVariateList) const {
51 
52  // Iterate on the (number of) classes/buckets, n
53  DemandGeneratorList_T::const_iterator itGenerator =
54  _demandGeneratorList.begin();
55  for ( ; itGenerator != _demandGeneratorList.end(); itGenerator++) {
56  const Gaussian& gaussianGenerator = *itGenerator;
57 
58  // Generate a random variate following the Gaussian distribution
59  const double generatedVariate = gaussianGenerator.generateVariate ();
60  ioVariateList.push_back (generatedVariate);
61  }
62  }
63 
64 }