$treeview $search $mathjax
00001 // ////////////////////////////////////////////////////////////////////// 00002 // Import section 00003 // ////////////////////////////////////////////////////////////////////// 00004 // RMOL 00005 #include <rmol/bom/DemandGeneratorList.hpp> 00006 00007 namespace RMOL { 00008 00009 // ////////////////////////////////////////////////////////////////////// 00010 DemandGeneratorList::DemandGeneratorList () { 00011 const DistributionParameterList_T aDistributionParameterList; 00012 init (aDistributionParameterList); 00013 } 00014 00015 // ////////////////////////////////////////////////////////////////////// 00016 DemandGeneratorList:: 00017 DemandGeneratorList (const DemandGeneratorList& iDemandGeneratorList) { 00018 // TODO: copy the distribution parameters of the input generator list 00019 const DistributionParameterList_T aDistributionParameterList; 00020 init (aDistributionParameterList); 00021 } 00022 00023 // ////////////////////////////////////////////////////////////////////// 00024 DemandGeneratorList:: 00025 DemandGeneratorList (const DistributionParameterList_T& iDistributionParameterList) { 00026 init (iDistributionParameterList); 00027 } 00028 00029 // ////////////////////////////////////////////////////////////////////// 00030 DemandGeneratorList::~DemandGeneratorList () { 00031 } 00032 00033 // ////////////////////////////////////////////////////////////////////// 00034 void DemandGeneratorList:: 00035 init (const DistributionParameterList_T& iDistributionParameterList) { 00036 00037 DistributionParameterList_T::const_iterator itParams = 00038 iDistributionParameterList.begin(); 00039 for ( ; itParams != iDistributionParameterList.end(); itParams++) { 00040 const FldDistributionParameters& aParams = *itParams; 00041 00042 const Gaussian gaussianGenerator (aParams); 00043 00044 _demandGeneratorList.push_back (gaussianGenerator); 00045 } 00046 } 00047 00048 // ////////////////////////////////////////////////////////////////////// 00049 void DemandGeneratorList:: 00050 generateVariateList (VariateList_T& ioVariateList) const { 00051 00052 // Iterate on the (number of) classes/buckets, n 00053 DemandGeneratorList_T::const_iterator itGenerator = 00054 _demandGeneratorList.begin(); 00055 for ( ; itGenerator != _demandGeneratorList.end(); itGenerator++) { 00056 const Gaussian& gaussianGenerator = *itGenerator; 00057 00058 // Generate a random variate following the Gaussian distribution 00059 const double generatedVariate = gaussianGenerator.generateVariate (); 00060 ioVariateList.push_back (generatedVariate); 00061 } 00062 } 00063 00064 }