$treeview $search $mathjax
RMOL Logo  1.00.0
$projectbrief
$projectbrief
$searchbox

rmol/bom/old/DemandGeneratorList.cpp

Go to the documentation of this file.
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 }