#include <rmol/bom/BucketHolder.hpp>
Public Member Functions | |
const double | getCabinCapacity () const |
const double | getTotalMeanDemand () const |
const double | getDemandFactor () const |
const double | getOptimalRevenue () const |
const short | getSize () const |
const double | getPreviousCumulatedProtection () const |
void | fillup (BookingLimitVector_T &) const |
Bucket & | getCurrentBucket () const |
Bucket & | getNextBucket () const |
Bucket & | getTaggedBucket () const |
void | begin () |
void | iterate () |
bool | hasNotReachedEnd () const |
void | tag () |
void | recalculate () |
const double | getLowestAverageYield () |
void | toStream (std::ostream &) const |
void | fromStream (std::istream &) |
std::string | toString () const |
const std::string | describeKey () const |
const std::string | describeShortKey () const |
const std::string | display () const |
const std::string | shortDisplay () const |
Protected Member Functions | |
void | calculateProtectionAndBookingLimits () |
void | calculateMeanDemandAndOptimalRevenue () |
Friends | |
class | FacBucketHolder |
Holder of a BucketList object (for memory allocation and recollection purposes).
Definition at line 18 of file BucketHolder.hpp.
const double RMOL::BucketHolder::getCabinCapacity | ( | ) | const [inline] |
Get the cabin capacity.
Definition at line 27 of file BucketHolder.hpp.
const double RMOL::BucketHolder::getTotalMeanDemand | ( | ) | const [inline] |
Get the total mean demand.
Definition at line 31 of file BucketHolder.hpp.
const double RMOL::BucketHolder::getDemandFactor | ( | ) | const [inline] |
Get the demand factor.
Definition at line 35 of file BucketHolder.hpp.
const double RMOL::BucketHolder::getOptimalRevenue | ( | ) | const [inline] |
Get the optimal revenue.
Definition at line 39 of file BucketHolder.hpp.
const short RMOL::BucketHolder::getSize | ( | ) | const |
Get the size of list of buckets/classes.
Definition at line 33 of file BucketHolder.cpp.
Referenced by calculateProtectionAndBookingLimits(), getLowestAverageYield(), RMOL::Emsr::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsrA(), RMOL::Emsr::heuristicOptimisationByEmsrAwithSellup(), RMOL::Emsr::heuristicOptimisationByEmsrB(), RMOL::MCOptimiser::legOptimisationByMC(), RMOL::DPOptimiser::optimalOptimisationByDP(), RMOL::Optimiser::optimalOptimisationByMCIntegration(), and RMOL::MCOptimiser::optimalOptimisationByMCIntegration().
const double RMOL::BucketHolder::getPreviousCumulatedProtection | ( | ) | const |
Get the cumulated protection of the previous bucket. If the current bucket is the first one, the function returns 0.0.
Definition at line 156 of file BucketHolder.cpp.
References RMOL::Bucket::getCumulatedProtection().
Referenced by RMOL::MCOptimiser::optimalOptimisationByMCIntegration().
void RMOL::BucketHolder::fillup | ( | BookingLimitVector_T & | ioBookingLimitVector | ) | const |
Fill up the vector of cumulated booking limits.
Definition at line 268 of file BucketHolder.cpp.
References RMOL::Bucket::getCumulatedBookingLimit().
Referenced by RMOL::RMOL_Service::heuristicOptimisationByEmsrA(), RMOL::RMOL_Service::heuristicOptimisationByEmsrAwithSellup(), RMOL::RMOL_Service::heuristicOptimisationByEmsrB(), RMOL::RMOL_Service::legOptimisationByMC(), RMOL::RMOL_Service::optimalOptimisationByDP(), and RMOL::RMOL_Service::optimalOptimisationByMCIntegration().
Bucket & RMOL::BucketHolder::getCurrentBucket | ( | ) | const |
Get the current element (bucket/class).
Definition at line 102 of file BucketHolder.cpp.
Referenced by calculateProtectionAndBookingLimits(), RMOL::SellupProbabilityCalculator::calculateSellupProbability(), getLowestAverageYield(), RMOL::RMOL_Service::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsrA(), RMOL::Emsr::heuristicOptimisationByEmsrAwithSellup(), RMOL::Emsr::heuristicOptimisationByEmsrB(), RMOL::MCOptimiser::legOptimisationByMC(), RMOL::DPOptimiser::optimalOptimisationByDP(), and RMOL::MCOptimiser::optimalOptimisationByMCIntegration().
Bucket & RMOL::BucketHolder::getNextBucket | ( | ) | const |
Get the next element (bucket/class).
Definition at line 110 of file BucketHolder.cpp.
Referenced by calculateProtectionAndBookingLimits(), getLowestAverageYield(), RMOL::Emsr::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsrA(), RMOL::Emsr::heuristicOptimisationByEmsrAwithSellup(), RMOL::Emsr::heuristicOptimisationByEmsrB(), RMOL::MCOptimiser::legOptimisationByMC(), RMOL::DPOptimiser::optimalOptimisationByDP(), and RMOL::MCOptimiser::optimalOptimisationByMCIntegration().
Bucket & RMOL::BucketHolder::getTaggedBucket | ( | ) | const |
Get the tagged element (bucket/class).
Definition at line 118 of file BucketHolder.cpp.
void RMOL::BucketHolder::begin | ( | ) |
Initialise the internal iterators on Buckets: The current iterator is set on the first Bucket, the next iterator is set on the second bucket.
Definition at line 126 of file BucketHolder.cpp.
Referenced by calculateProtectionAndBookingLimits(), RMOL::SellupProbabilityCalculator::calculateSellupProbability(), getLowestAverageYield(), RMOL::RMOL_Service::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsrA(), RMOL::Emsr::heuristicOptimisationByEmsrAwithSellup(), RMOL::Emsr::heuristicOptimisationByEmsrB(), RMOL::MCOptimiser::legOptimisationByMC(), RMOL::DPOptimiser::optimalOptimisationByDP(), and RMOL::MCOptimiser::optimalOptimisationByMCIntegration().
void RMOL::BucketHolder::iterate | ( | ) |
Iterate for one element (bucket/class): increment both internal iterators on Buckets.
Definition at line 146 of file BucketHolder.cpp.
Referenced by calculateProtectionAndBookingLimits(), RMOL::SellupProbabilityCalculator::calculateSellupProbability(), getLowestAverageYield(), RMOL::RMOL_Service::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsr(), RMOL::Emsr::heuristicOptimisationByEmsrA(), RMOL::Emsr::heuristicOptimisationByEmsrAwithSellup(), RMOL::Emsr::heuristicOptimisationByEmsrB(), RMOL::MCOptimiser::legOptimisationByMC(), RMOL::DPOptimiser::optimalOptimisationByDP(), and RMOL::MCOptimiser::optimalOptimisationByMCIntegration().
bool RMOL::BucketHolder::hasNotReachedEnd | ( | ) | const |
States whether or not the end of the (bucket/class) list has been reached.
Definition at line 140 of file BucketHolder.cpp.
Referenced by RMOL::SellupProbabilityCalculator::calculateSellupProbability(), and RMOL::RMOL_Service::heuristicOptimisationByEmsr().
void RMOL::BucketHolder::tag | ( | ) |
Tag one element (bucket/class) for later direct access.
Definition at line 135 of file BucketHolder.cpp.
void RMOL::BucketHolder::recalculate | ( | ) |
Re-calculate the following values for the buckets/classes:
Definition at line 258 of file BucketHolder.cpp.
References calculateMeanDemandAndOptimalRevenue(), and calculateProtectionAndBookingLimits().
Referenced by RMOL::MCOptimiser::legOptimisationByMC(), and RMOL::MCOptimiser::optimalOptimisationByMCIntegration().
const double RMOL::BucketHolder::getLowestAverageYield | ( | ) |
Definition at line 237 of file BucketHolder.cpp.
References begin(), RMOL::Bucket::getAverageYield(), getCurrentBucket(), getNextBucket(), getSize(), and iterate().
Referenced by RMOL::Forecaster::qEquivalentBookingCalculation().
void RMOL::BucketHolder::toStream | ( | std::ostream & | ioOut | ) | const [virtual] |
Dump a Business Object into an output stream.
ostream& | the output stream. |
Implements RMOL::BomAbstract.
Definition at line 62 of file BucketHolder.cpp.
References toString().
void RMOL::BucketHolder::fromStream | ( | std::istream & | ioIn | ) | [virtual] |
Read a Business Object from an input stream.
istream& | the input stream. |
Implements RMOL::BomAbstract.
Definition at line 67 of file BucketHolder.cpp.
std::string RMOL::BucketHolder::toString | ( | ) | const [virtual] |
Get the serialised version of the Place object.
Implements RMOL::BomAbstract.
Definition at line 50 of file BucketHolder.cpp.
References describeShortKey().
Referenced by toStream().
const std::string RMOL::BucketHolder::describeKey | ( | ) | const [virtual] |
Get a string describing the whole key (differentiating two objects at any level).
Implements RMOL::BomAbstract.
Definition at line 45 of file BucketHolder.cpp.
References describeShortKey().
Referenced by shortDisplay().
const std::string RMOL::BucketHolder::describeShortKey | ( | ) | const [virtual] |
Get a string describing the short key (differentiating two objects at the same level).
Implements RMOL::BomAbstract.
Definition at line 38 of file BucketHolder.cpp.
Referenced by describeKey(), and toString().
const std::string RMOL::BucketHolder::display | ( | ) | const |
Display the full Place context.
Definition at line 78 of file BucketHolder.cpp.
References RMOL::Bucket::display(), and shortDisplay().
Referenced by RMOL::RMOL_Service::heuristicOptimisationByEmsr(), RMOL::RMOL_Service::heuristicOptimisationByEmsrA(), RMOL::RMOL_Service::heuristicOptimisationByEmsrAwithSellup(), RMOL::RMOL_Service::heuristicOptimisationByEmsrB(), RMOL::RMOL_Service::legOptimisationByMC(), RMOL::RMOL_Service::optimalOptimisationByDP(), and RMOL::RMOL_Service::optimalOptimisationByMCIntegration().
const std::string RMOL::BucketHolder::shortDisplay | ( | ) | const |
Display a short Place context.
Definition at line 71 of file BucketHolder.cpp.
References describeKey().
Referenced by display().
void RMOL::BucketHolder::calculateProtectionAndBookingLimits | ( | ) | [protected] |
Re-calculate the protections and booking limits (from cumulated protections).
Definition at line 198 of file BucketHolder.cpp.
References begin(), RMOL::Bucket::getCumulatedProtection(), getCurrentBucket(), getNextBucket(), getSize(), iterate(), RMOL::Bucket::setCumulatedBookingLimit(), and RMOL::Bucket::setProtection().
Referenced by recalculate().
void RMOL::BucketHolder::calculateMeanDemandAndOptimalRevenue | ( | ) | [protected] |
Re-calculate the total mean demand and optimal revenue (from the demand, prices and protections).
Definition at line 172 of file BucketHolder.cpp.
References RMOL::Bucket::getAverageYield(), RMOL::Bucket::getMean(), and RMOL::Bucket::getProtection().
Referenced by recalculate().
friend class FacBucketHolder [friend] |
Friend Classes
Those classes need to access the internal attributes of this object in order to construct and initialise it.
Definition at line 22 of file BucketHolder.hpp.