10 #include <stdair/stdair_basic_types.hpp>
11 #include <stdair/service/Logger.hpp>
23 const short lNbOfFlights =
27 const short lNbOfUncensoredData =
30 if (lNbOfUncensoredData > 1) {
32 const stdair::NbOfBookings_T lNbOfUncensoredBookings =
35 const double lMeanOfUncensoredBookings =
36 static_cast<double>(lNbOfUncensoredBookings/lNbOfUncensoredData);
38 const double lStdDevOfUncensoredBookings =
40 (lMeanOfUncensoredBookings, lNbOfUncensoredData);
42 std::vector<bool> toBeUnconstrained =
45 double lDemandMean = lMeanOfUncensoredBookings;
46 double lStdDev = lStdDevOfUncensoredBookings;
52 bool stopUnconstraining =
false;
53 while (stopUnconstraining ==
false) {
54 stopUnconstraining =
true;
56 for (
short i = 0; i < lNbOfFlights; ++i) {
57 if (toBeUnconstrained.at(i) ==
true) {
59 const stdair::NbOfBookings_T demand =
64 const stdair::NbOfBookings_T expectedDemand =
65 ioHistoricalBookingHolder.
66 calculateExpectedDemand (lDemandMean, lStdDev, i, demand);
70 static_cast<double>(expectedDemand - demand);
75 if (absDiff < 0.001) {
76 toBeUnconstrained.at (i) =
false;
79 stopUnconstraining =
false;
87 if (stopUnconstraining ==
false) {
static void unconstrain(HistoricalBookingHolder &)
const stdair::NbOfBookings_T getNbOfUncensoredBookings() const
const double getUncensoredStandardDeviation(const double &iMeanOfUncensoredBookings, const short iNbOfUncensoredData) const
void setUnconstrainedDemand(const stdair::NbOfBookings_T &iExpectedDemand, const short i)
const short getNbOfUncensoredData() const
const std::vector< bool > getListOfToBeUnconstrainedFlags() const
const short getNbOfFlights() const
const stdair::NbOfBookings_T & getUnconstrainedDemand(const short i) const
const double getDemandMean() const
const double getStandardDeviation(const double) const