diff --git a/deploy/windows/additionnal_files/Qt5Core.dll b/deploy/windows/additionnal_files/Qt5Core.dll deleted file mode 100755 index f0d7f9bc..00000000 Binary files a/deploy/windows/additionnal_files/Qt5Core.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/Qt5Gui.dll b/deploy/windows/additionnal_files/Qt5Gui.dll deleted file mode 100755 index 03a5342e..00000000 Binary files a/deploy/windows/additionnal_files/Qt5Gui.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/Qt5Svg.dll b/deploy/windows/additionnal_files/Qt5Svg.dll deleted file mode 100755 index 7e7910be..00000000 Binary files a/deploy/windows/additionnal_files/Qt5Svg.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/Qt5Widgets.dll b/deploy/windows/additionnal_files/Qt5Widgets.dll deleted file mode 100755 index fef8d15b..00000000 Binary files a/deploy/windows/additionnal_files/Qt5Widgets.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qgif.dll b/deploy/windows/additionnal_files/imageformats/qgif.dll deleted file mode 100755 index dfa12e08..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qgif.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qico.dll b/deploy/windows/additionnal_files/imageformats/qico.dll deleted file mode 100755 index 01bdbfaa..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qico.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qjpeg.dll b/deploy/windows/additionnal_files/imageformats/qjpeg.dll deleted file mode 100755 index 81dda73f..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qjpeg.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qmng.dll b/deploy/windows/additionnal_files/imageformats/qmng.dll deleted file mode 100755 index 73a7e0c0..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qmng.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qsvg.dll b/deploy/windows/additionnal_files/imageformats/qsvg.dll deleted file mode 100755 index 684b9731..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qsvg.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qtga.dll b/deploy/windows/additionnal_files/imageformats/qtga.dll deleted file mode 100755 index 63c0223c..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qtga.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qtiff.dll b/deploy/windows/additionnal_files/imageformats/qtiff.dll deleted file mode 100755 index 63d5af3a..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qtiff.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/imageformats/qwbmp.dll b/deploy/windows/additionnal_files/imageformats/qwbmp.dll deleted file mode 100755 index 4aa8a7c2..00000000 Binary files a/deploy/windows/additionnal_files/imageformats/qwbmp.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/libfftw3f-3.dll b/deploy/windows/additionnal_files/libfftw3f-3.dll deleted file mode 100755 index e40d992a..00000000 Binary files a/deploy/windows/additionnal_files/libfftw3f-3.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/libgcc_s_dw2-1.dll b/deploy/windows/additionnal_files/libgcc_s_dw2-1.dll deleted file mode 100755 index a52e6492..00000000 Binary files a/deploy/windows/additionnal_files/libgcc_s_dw2-1.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/libstdc++-6.dll b/deploy/windows/additionnal_files/libstdc++-6.dll deleted file mode 100755 index 9cb34453..00000000 Binary files a/deploy/windows/additionnal_files/libstdc++-6.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/libwinpthread-1.dll b/deploy/windows/additionnal_files/libwinpthread-1.dll deleted file mode 100755 index c05b2a58..00000000 Binary files a/deploy/windows/additionnal_files/libwinpthread-1.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/platforms/qminimal.dll b/deploy/windows/additionnal_files/platforms/qminimal.dll deleted file mode 100755 index e4c7d472..00000000 Binary files a/deploy/windows/additionnal_files/platforms/qminimal.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/platforms/qoffscreen.dll b/deploy/windows/additionnal_files/platforms/qoffscreen.dll deleted file mode 100755 index a4b99626..00000000 Binary files a/deploy/windows/additionnal_files/platforms/qoffscreen.dll and /dev/null differ diff --git a/deploy/windows/additionnal_files/platforms/qwindows.dll b/deploy/windows/additionnal_files/platforms/qwindows.dll deleted file mode 100755 index 4fd89f7e..00000000 Binary files a/deploy/windows/additionnal_files/platforms/qwindows.dll and /dev/null differ diff --git a/src/mcmc/MCMCLoopMain.cpp b/src/mcmc/MCMCLoopMain.cpp index bb71d545..8254028f 100644 --- a/src/mcmc/MCMCLoopMain.cpp +++ b/src/mcmc/MCMCLoopMain.cpp @@ -450,64 +450,57 @@ void MCMCLoopMain::update() //--------------------- Update Event ----------------------------------------- - // for (Event* event : mModel->mEvents) { - for (QList::iterator event = mModel->mEvents.begin(); event!= mModel->mEvents.end(); ++event) { - - // for ( Date& date : event->mDates ) { - //for ( auto& date : event->mDates ) { - for (QList::iterator date = (*event)->mDates.begin(); date!= (*event)->mDates.end(); ++date) { - date->updateDelta(*event); - date->updateTheta(*event); - date->updateSigma(*event); - date->updateWiggle(); + for (auto&& event : mModel->mEvents) { + for ( auto&& date : event->mDates ) { + date.updateDelta(event); + date.updateTheta(event); + date.updateSigma(event); + date.updateWiggle(); if (doMemo) { - date->mTheta.memo(); - date->mSigma.memo(); - date->mWiggle.memo(); + date.mTheta.memo(); + date.mSigma.memo(); + date.mWiggle.memo(); - date->mTheta.saveCurrentAcceptRate(); - date->mSigma.saveCurrentAcceptRate(); - } + date.mTheta.saveCurrentAcceptRate(); + date.mSigma.saveCurrentAcceptRate(); + } } //--------------------- Update Events ----------------------------------------- #ifdef TEST // event->mTheta.mX = 0.; #else - (*event)->updateTheta(t_min,t_max); + event->updateTheta(t_min,t_max); #endif if (doMemo) { - (*event)->mTheta.memo(); - (*event)->mTheta.saveCurrentAcceptRate(); + event->mTheta.memo(); + event->mTheta.saveCurrentAcceptRate(); } //--------------------- Update Phases -set mAlpha and mBeta they coud be used by the Event in the other Phase ---------------------------------------- - // for (auto phInEv : (*event)->mPhases) - for (QList::iterator phInEv = (*event)->mPhases.begin(); phInEv!= (*event)->mPhases.end(); ++phInEv) - (*phInEv)->updateAll(t_min, t_max); + + for (auto&& phInEv : event->mPhases) + phInEv->updateAll(t_min, t_max); } //--------------------- Memo Phases ----------------------------------------- if (doMemo) { - //for (auto ph : mModel->mPhases) - for (QList::iterator ph = mModel->mPhases.begin(); ph!= mModel->mPhases.end(); ++ph) - (*ph)->memoAll(); + for (auto&& ph : mModel->mPhases) + ph->memoAll(); } //--------------------- Update Phases constraints ----------------------------------------- - // for (auto phConst : mModel->mPhaseConstraints ) - for (QList::iterator phConst = mModel->mPhaseConstraints.begin(); phConst!= mModel->mPhaseConstraints.end(); ++phConst) - (*phConst)->updateGamma(); + for (auto&& phConst : mModel->mPhaseConstraints ) + phConst->updateGamma(); } bool MCMCLoopMain::adapt() { ChainSpecs& chain = mChains[mChainIndex]; - // QList& events = mModel->mEvents; const double taux_min = 41.; // taux_min minimal rate of acceptation=42 const double taux_max = 47.; // taux_max maximal rate of acceptation=46 @@ -518,47 +511,39 @@ bool MCMCLoopMain::adapt() double delta = (chain.mBatchIndex < 10000) ? 0.01 : (1. / sqrt(chain.mBatchIndex)); - //for (int i=0; i::iterator event = mModel->mEvents.begin(); event!= mModel->mEvents.end(); ++event) { - + for (auto&& event : mModel->mEvents ) { - // for (int j=0; jmDates.size(); ++j) { - // Date& date = event->mDates[j]; - for (QList::iterator date = (*event)->mDates.begin(); date!= (*event)->mDates.end(); ++date) { - + for (auto&& date : event->mDates) { //--------------------- Adapt Sigma MH de Theta i ----------------------------------------- - if (date->mMethod == Date::eMHSymGaussAdapt) { - const double taux = 100. * date->mTheta.getCurrentAcceptRate(); + if (date.mMethod == Date::eMHSymGaussAdapt) { + const double taux = 100. * date.mTheta.getCurrentAcceptRate(); if (taux <= taux_min || taux >= taux_max) { allOK = false; - double sign = (taux <= taux_min) ? -1. : 1.; - date->mTheta.mSigmaMH *= pow(10., sign * delta); + const double sign = (taux <= taux_min) ? -1. : 1.; + date.mTheta.mSigmaMH *= pow(10., sign * delta); } } //--------------------- Adapt Sigma MH de Sigma i ----------------------------------------- - const double taux = 100. * date->mSigma.getCurrentAcceptRate(); + const double taux = 100. * date.mSigma.getCurrentAcceptRate(); if (taux <= taux_min || taux >= taux_max) { allOK = false; - double sign = (taux <= taux_min) ? -1. : 1.; - date->mSigma.mSigmaMH *= pow(10., sign * delta); + const double sign = (taux <= taux_min) ? -1. : 1.; + date.mSigma.mSigmaMH *= pow(10., sign * delta); } } //--------------------- Adapt Sigma MH de Theta f ----------------------------------------- - if (((*event)->mType != Event::eKnown) && ( (*event)->mMethod == Event::eMHAdaptGauss) ) { - const double taux = 100. * (*event)->mTheta.getCurrentAcceptRate(); - // qDebug()<<"MCMCLoopMain adapt"<< event->mTheta.mSigmaMH; + if ((event->mType != Event::eKnown) && ( event->mMethod == Event::eMHAdaptGauss) ) { + const double taux = 100. * event->mTheta.getCurrentAcceptRate(); if (taux <= taux_min || taux >= taux_max) { allOK = false; - double sign = (taux <= taux_min) ? -1. : 1.; - (*event)->mTheta.mSigmaMH *= pow(10., sign * delta); - // qDebug()<<"MCMCLoopMain adapt"<< event->mTheta.mSigmaMH<<" delta="<mTheta.mSigmaMH *= pow(10., sign * delta); } } } diff --git a/src/mcmc/MetropolisVariable.cpp b/src/mcmc/MetropolisVariable.cpp index 820df489..3085a85d 100644 --- a/src/mcmc/MetropolisVariable.cpp +++ b/src/mcmc/MetropolisVariable.cpp @@ -72,46 +72,7 @@ MetropolisVariable::MetropolisVariable (const MetropolisVariable& origin) } -/** Move constructor */ -MetropolisVariable::MetropolisVariable (MetropolisVariable&& origin) noexcept /* noexcept needed to enable optimizations in containers */ -{ - //MetropolisVariable(origin); - mX = origin.mX; - mRawTrace = new QVector(origin.mRawTrace->size()); - std::copy(origin.mRawTrace->begin(),origin.mRawTrace->end(),mRawTrace->begin()); - - mFormatedTrace= new QVector(origin.mFormatedTrace->size()); - std::copy(origin.mFormatedTrace->begin(),origin.mFormatedTrace->end(),mFormatedTrace->begin()); - - mSupport = origin.mSupport; - mFormat = origin.mFormat; - - mHisto = origin.mHisto; - mChainsHistos = origin.mChainsHistos; - - mCorrelations = origin.mCorrelations; - - mHPD = origin.mHPD; - mCredibility = origin.mCredibility; - - mExactCredibilityThreshold = origin.mExactCredibilityThreshold; - mResults = origin.mResults; - mChainsResults = origin.mChainsResults; - - mfftLenUsed = origin.mBandwidthUsed; - mBandwidthUsed = origin.mBandwidthUsed; - mThresholdUsed = origin.mThresholdUsed; - - mtminUsed = origin.mtminUsed; - mtmaxUsed = origin.mtmaxUsed; - - QObject::connect(this, &MetropolisVariable::formatChanged, this, &MetropolisVariable::updateFormatedTrace); - - //origin.reset(); - QObject::disconnect(&origin, &MetropolisVariable::formatChanged, &origin, &MetropolisVariable::updateFormatedTrace); - origin.~MetropolisVariable(); -} /** Destructor */ @@ -777,11 +738,12 @@ QDataStream &operator<<( QDataStream &stream, const MetropolisVariable &data ) break; }; - + stream << data.mRawTrace->size(); for(QVector::const_iterator v = data.mRawTrace->cbegin(); v != data.mRawTrace->cend(); ++v) + // for (auto& v : data.mRawTrace ) stream << *v; - qDebug()<<"&operator<<( QDataStream &stream, const MetropolisVariable &data )"<size(); + // qDebug()<<"&operator<<( QDataStream &stream, const MetropolisVariable &data )"<size(); // *out << this->mFormatedTrace; // useless diff --git a/src/mcmc/MetropolisVariable.h b/src/mcmc/MetropolisVariable.h index b5301da3..923b2db3 100644 --- a/src/mcmc/MetropolisVariable.h +++ b/src/mcmc/MetropolisVariable.h @@ -20,7 +20,7 @@ class MetropolisVariable: public QObject public: MetropolisVariable(QObject *parent = nullptr); MetropolisVariable (const MetropolisVariable& origin); - MetropolisVariable (MetropolisVariable&& origin) noexcept; + // MetropolisVariable (MetropolisVariable&& origin) noexcept; virtual ~MetropolisVariable(); MetropolisVariable& operator=(const MetropolisVariable & origin); // MetropolisVariable& operator=(MetropolisVariable && origin); diff --git a/src/model/Event.cpp b/src/model/Event.cpp index 0814cb5a..1a604d68 100644 --- a/src/model/Event.cpp +++ b/src/model/Event.cpp @@ -89,7 +89,7 @@ void Event::copyFrom(const Event& event) Event::~Event() { - for (Date date : mDates) { + for (auto&& date : mDates) { date.mTheta.reset(); date.mSigma.reset(); date.mWiggle.reset(); diff --git a/src/model/Model.cpp b/src/model/Model.cpp index fc87d20c..33e4fd55 100644 --- a/src/model/Model.cpp +++ b/src/model/Model.cpp @@ -86,28 +86,26 @@ void Model::clear() */ void Model::updateFormatSettings(const AppSettings* appSet) { - for (int i=0; imEvents.size(); i++) { - Event* event= mEvents[i] ; + + for (auto&& event : mEvents) { event->mTheta.setFormat(appSet->mFormatDate); - for (int j=0; jmDates.size(); j++) { - Date& date = event->mDates[j]; + for (auto && date : event->mDates) { date.mTheta.setFormat(appSet->mFormatDate); date.mSigma.setFormat(DateUtils::eNumeric); date.mWiggle.setFormat(appSet->mFormatDate); } - event = nullptr; + } - for (int i=0; imPhases.size(); i++) { - Phase* phase = mPhases[i] ; + + for (auto && phase : mPhases) { phase->mAlpha.setFormat(appSet->mFormatDate); phase->mBeta.setFormat(appSet->mFormatDate); phase->mDuration.setFormat(DateUtils::eNumeric); - phase = nullptr; } } -#pragma mark JSON conversion +//#pragma mark JSON conversion void Model::fromJson(const QJsonObject& json) { @@ -130,7 +128,6 @@ void Model::fromJson(const QJsonObject& json) const QJsonObject phase = phases.at(i).toObject(); Phase* p = new Phase(Phase::fromJson(phase)); mPhases.append(p); - //p = 0; } } @@ -295,26 +292,27 @@ QJsonObject Model::toJson() const json["mcmc"] = mMCMCSettings.toJson(); QJsonArray events; - for (int i = 0; i < mEvents.size(); ++i) - events.append(mEvents.at(i)->toJson()); + for (auto&& event : mEvents) + events.append(event->toJson()); json["events"] = events; QJsonArray phases; - for (int i = 0; i < mPhases.size(); ++i) - phases.append(mPhases.at(i)->toJson()); + for (auto&& phase : mPhases) + phases.append(phase->toJson()); json["phases"] = phases; QJsonArray event_constraints; - for (int i = 0; i < mEventConstraints.size(); ++i) - event_constraints.append(mEventConstraints.at(i)->toJson()); + for (auto&& eventConstraint : mEventConstraints) + event_constraints.append(eventConstraint->toJson()); json["event_constraints"] = event_constraints; QJsonArray phase_constraints; - for (int i = 0; i < mPhaseConstraints.size(); ++i) - phase_constraints.append(mPhaseConstraints.at(i)->toJson()); + + for (auto&& phaseConstraint : mPhaseConstraints) + phase_constraints.append(phaseConstraint->toJson()); json["phase_constraints"] = phase_constraints; @@ -409,28 +407,25 @@ QString Model::getResultsLog() const{ void Model::generateResultsLog() { QString log; - for (int i = 0; i < mEvents.size(); ++i) { - Event* event = mEvents.at(i); + + for (auto&& event : mEvents) { log += ModelUtilities::eventResultsHTML(event, true, this); log += "
"; - event = nullptr; } - for (int i = 0; i < mPhases.size(); ++i) { - Phase* phase = mPhases.at(i); + + for (auto&& phase : mPhases) { log += ModelUtilities::phaseResultsHTML(phase); - log += "
"; - phase = nullptr; + log += "
";; } - for (int i = 0; i < mPhaseConstraints.size(); ++i) { - PhaseConstraint* phaseConstraint = mPhaseConstraints.at(i); + + for (auto&& phaseConstraint : mPhaseConstraints) { log += ModelUtilities::constraintResultsHTML(phaseConstraint); log += "
"; - phaseConstraint = nullptr; } mLogResults = log; } -#pragma mark Results CSV +//#pragma mark Results CSV QList Model::getStats(const QLocale locale, const bool withDateFormat) { QList rows; @@ -603,19 +598,16 @@ QList Model::getEventsTraces(QLocale locale,const bool withDateForm { QList rows; - int runSize = 0; - for (int i = 0; imName; - event = 0; - } + rows << headers; int shift = 0; @@ -626,14 +618,13 @@ QList Model::getEventsTraces(QLocale locale,const bool withDateForm for (int j = burnAdaptSize; j < burnAdaptSize + runSize; ++j) { QStringList l; l << QString::number(shift + j) ; - for (int k = 0; k < mEvents.size(); ++k) { - Event* event = mEvents.at(k); + + for (auto&& event : mEvents) { double value = event->mTheta.mRawTrace->at(shift + j); if (withDateFormat) value = DateUtils::convertToAppSettingsFormat(value); l << locale.toString(value, 'g', 10); - event = 0; } rows << l; } @@ -642,7 +633,7 @@ QList Model::getEventsTraces(QLocale locale,const bool withDateForm return rows; } -#pragma mark Model validity +//#pragma mark Model validity bool Model::isValid() { // 1 - At least one event is required in a model @@ -736,70 +727,69 @@ bool Model::isValid() // -------------------- // Check bound interval upper value // -------------------- - double upper = (double) mSettings.mTmax; - for(int k=j+1; kmType == Event::eKnown){ + if (evt->mType == Event::eKnown) { EventKnown* bd = dynamic_cast(evt); - if(bd->mKnownType == EventKnown::eFixed) + if (bd->mKnownType == EventKnown::eFixed) upper = qMin(upper, bd->mFixed); - else if(bd->mKnownType == EventKnown::eUniform) + + else if (bd->mKnownType == EventKnown::eUniform) upper = qMin(upper, bd->mUniformEnd); } } // Update bound interval - if(bound->mKnownType == EventKnown::eFixed && bound->mFixed > upper) - { + if (bound->mKnownType == EventKnown::eFixed && bound->mFixed > upper) { throw QString("The bound \"" + bound->mName + "\" has a fixed value inconsistent with next bounds in chain!"); } - else if(bound->mKnownType == EventKnown::eUniform) { + else if (bound->mKnownType == EventKnown::eUniform) { bound->mUniformEnd = qMin(bound->mUniformEnd, upper); - if(bound->mUniformStart >= bound->mUniformEnd) - { + if (bound->mUniformStart >= bound->mUniformEnd){ throw QString("The bound \"" + bound->mName + "\" has an inconsistent range with other related bounds!"); } } } - event = 0; + event = nullptr; } } // 9 - Gamma min (ou fixe) entre 2 phases doit être inférieur à la différence entre : le min des sups des intervalles des bornes de la phase suivante ET le max des infs des intervalles des bornes de la phase précédente - for(int i=0; imGammaType; - if(gType == PhaseConstraint::eGammaFixed) + if (gType == PhaseConstraint::eGammaFixed) gammaMin = mPhaseConstraints[i]->mGammaFixed; + else if(gType == PhaseConstraint::eGammaRange) gammaMin = mPhaseConstraints.at(i)->mGammaMin; - double lower = (double) mSettings.mTmin; + double lower = mSettings.mTmin; Phase* phaseFrom = mPhaseConstraints.at(i)->mPhaseFrom; - for(int j=0; jmEvents.size(); ++j) - { + for (int j=0; jmEvents.size(); ++j) { EventKnown* bound = dynamic_cast(phaseFrom->mEvents[j]); - if(bound) { - if(bound->mKnownType == EventKnown::eFixed) + if (bound) { + if (bound->mKnownType == EventKnown::eFixed) lower = qMax(lower, bound->mFixed); - else if(bound->mKnownType == EventKnown::eUniform) + + else if (bound->mKnownType == EventKnown::eUniform) lower = qMax(lower, bound->mUniformStart); } } double upper = (double) mSettings.mTmax; Phase* phaseTo = mPhaseConstraints.at(i)->mPhaseTo; - for(int j=0; jmEvents.size(); ++j) { + for (int j=0; jmEvents.size(); ++j) { EventKnown* bound = dynamic_cast(phaseTo->mEvents[j]); - if(bound) { - if(bound->mKnownType == EventKnown::eFixed) + if (bound) { + if (bound->mKnownType == EventKnown::eFixed) upper = qMin(upper, bound->mFixed); - else if(bound->mKnownType == EventKnown::eUniform) + + else if (bound->mKnownType == EventKnown::eUniform) upper = qMin(upper, bound->mUniformEnd); } - bound = 0; + bound = nullptr; } - if(gammaMin >= (upper - lower)) - { + if (gammaMin >= (upper - lower)) { throw QString("The constraint between phases \"" + phaseFrom->mName + "\" and \"" + phaseTo->mName + "\" is not consistent with the bounds they contain!"); } phaseFrom = 0; @@ -811,10 +801,8 @@ bool Model::isValid() // - L'inf est le max entre : sa valeur courante ou (le max des infs des intervalles des bornes - tau max ou fixe) // - Le sup est le min entre : sa valeur courante ou (le min des sups des intervalles des bornes + tau max ou fixe) - for(int i=0; imTauType != Phase::eTauUnknown) - { + for (int i=0; imTauType != Phase::eTauUnknown) { double tauMax = mPhases.at(i)->mTauFixed; if(mPhases.at(i)->mTauType == Phase::eTauRange) tauMax = mPhases.at(i)->mTauMax; @@ -823,10 +811,10 @@ bool Model::isValid() double max = mSettings.mTmax; bool boundFound = false; - for(int j=0; jmEvents.size(); ++j) { - if(mPhases.at(i)->mEvents.at(j)->mType == Event::eKnown) { + for (int j=0; jmEvents.size(); ++j) { + if (mPhases.at(i)->mEvents.at(j)->mType == Event::eKnown) { EventKnown* bound = dynamic_cast(mPhases.at(i)->mEvents[j]); - if(bound) { + if (bound) { boundFound = true; if(bound->mKnownType == EventKnown::eFixed) { min = std::max(min, bound->mFixed); @@ -837,25 +825,19 @@ bool Model::isValid() max = std::min(max, bound->mUniformStart); } } - bound = 0; + bound = nullptr; } } - if(boundFound) - { - if(tauMax < (max - min)) - { + if (boundFound){ + if (tauMax < (max - min)) { throw QString("The phase \"" + mPhases.at(i)->mName + "\" has a duration inconsistent with the bounds it contains!"); } // Modify bounds intervals to match max phase duration - for(int j=0; jmEvents.size(); ++j) - { - if(mPhases.at(i)->mEvents[j]->mType == Event::eKnown) - { + for (int j=0; jmEvents.size(); ++j) { + if (mPhases.at(i)->mEvents[j]->mType == Event::eKnown) { EventKnown* bound = dynamic_cast(mPhases.at(i)->mEvents[j]); - if(bound) - { - if(bound->mKnownType == EventKnown::eUniform) - { + if (bound) { + if (bound->mKnownType == EventKnown::eUniform) { bound->mUniformStart = std::max(bound->mUniformStart, max - tauMax); bound->mUniformEnd = std::min(bound->mUniformEnd, min + tauMax); @@ -863,7 +845,7 @@ bool Model::isValid() max = std::min(max, bound->mUniformStart); } } - bound = 0; + bound = nullptr; } } } @@ -871,57 +853,43 @@ bool Model::isValid() } // 11 - Vérifier la cohérence entre les contraintes de faits et de phase - for(int i=0; imEvents.size(); ++k) - { + for (int k=0; kmEvents.size(); ++k) { Event* event = phase->mEvents[k]; bool phaseFound = false; // On réinspecte toutes les phases de la branche et on vérifie que le fait n'a pas de contrainte en contradiction avec les contraintes de phase ! - for(int l=0; lmEvents.size(); ++m) - { + + else { + for (int m=0; mmEvents.size(); ++m) { Event* e = p->mEvents[m]; // Si on regarde l'élément d'un phase d'avant, le fait ne peut pas être en contrainte vers un fait de cette phase - if(!phaseFound) - { - for(int n=0; nmConstraintsBwd.size(); ++n) - { - if(e->mConstraintsBwd[n]->mEventFrom == event) - { + if (!phaseFound) { + for (int n=0; nmConstraintsBwd.size(); ++n) { + if (e->mConstraintsBwd[n]->mEventFrom == event) { throw "The event " + event->mName + " (in phase " + phase->mName + ") is before the event " + e->mName + " (in phase " + p->mName + "), BUT the phase " + phase->mName + " is after the phase " + p->mName + ".\r=> Contradiction !"; } } - } - else - { - for(int n=0; nmConstraintsFwd.size(); ++n) - { - if(e->mConstraintsFwd[n]->mEventTo == event) - { + } else { + for (int n=0; nmConstraintsFwd.size(); ++n) { + if (e->mConstraintsFwd[n]->mEventTo == event) { throw "The event " + event->mName + " (in phase " + phase->mName + ") is after the event " + e->mName + " (in phase " + p->mName + "), BUT the phase " + phase->mName + " is before the phase " + p->mName + ".\r=> Contradiction !"; } } } } } - p = 0; + p = nullptr; } - event = 0; + event = nullptr; } } } @@ -935,22 +903,18 @@ void Model::generateCorrelations(const QList &chains) #ifdef DEBUG QTime t = QTime::currentTime(); #endif - QList::iterator iterEvent = mEvents.begin(); - while (iterEvent!=mEvents.end()) { - (*iterEvent)->mTheta.generateCorrelations(chains); + for (auto&& event : mEvents ) { + event->mTheta.generateCorrelations(chains); - for( Date& date : (*iterEvent)->mDates ) { + for( auto&& date : event->mDates ) { date.mTheta.generateCorrelations(chains); date.mSigma.generateCorrelations(chains); } - ++iterEvent; } - QList::iterator iterPhase = mPhases.begin(); - while (iterPhase!=mPhases.end()) { - (*iterPhase)->mAlpha.generateCorrelations(chains); - (*iterPhase)->mBeta.generateCorrelations(chains); - ++iterPhase; + for (auto&& phase : mPhases ) { + phase->mAlpha.generateCorrelations(chains); + phase->mBeta.generateCorrelations(chains); } #ifdef DEBUG QTime t2 = QTime::currentTime(); @@ -1027,7 +991,6 @@ void Model::updateDensities(const int fftLength, const double bandwidth, const d if (mThreshold != threshold) { initThreshold(threshold); - generateCredibility(mThreshold); } @@ -1045,21 +1008,15 @@ void Model::generatePosteriorDensities(const QList &chains, int fftL const double tmin = mSettings.getTminFormated(); const double tmax = mSettings.getTmaxFormated(); - QList::iterator iterEvent = mEvents.begin(); - while (iterEvent!=mEvents.end()) { - (*iterEvent)->mTheta.generateHistos(chains, fftLen, bandwidth, tmin, tmax); - - for(int j=0; j<(*iterEvent)->mDates.size(); ++j) - (*iterEvent)->mDates[j].generateHistos(chains, fftLen, bandwidth, tmin, tmax); + for (auto&& event : mEvents) { + event->mTheta.generateHistos(chains, fftLen, bandwidth, tmin, tmax); - ++iterEvent; + for (auto&& d : event->mDates) + d.generateHistos(chains, fftLen, bandwidth, tmin, tmax); } - QList::iterator iterPhase = mPhases.begin(); - while (iterPhase!=mPhases.end()) { - (*iterPhase)->generateHistos(chains, fftLen, bandwidth, tmin, tmax); - ++iterPhase; - } + for (auto && phase : mPhases) + phase->generateHistos(chains, fftLen, bandwidth, tmin, tmax); QTime t2 = QTime::currentTime(); qint64 timeDiff = t.msecsTo(t2); @@ -1070,24 +1027,20 @@ void Model::generateNumericalResults(const QList &chains) { QTime t = QTime::currentTime(); - QList::iterator iterEvent = mEvents.begin(); - while (iterEvent!=mEvents.end()) { - (*iterEvent)->mTheta.generateNumericalResults(chains); + for (auto && event : mEvents) { + event->mTheta.generateNumericalResults(chains); - for(int j=0; j<(*iterEvent)->mDates.size(); ++j) { - Date& date = (*iterEvent)->mDates[j]; + for (auto&& date : event->mDates) { date.mTheta.generateNumericalResults(chains); date.mSigma.generateNumericalResults(chains); } - ++iterEvent; + } - QList::iterator iterPhase = mPhases.begin(); - while (iterPhase!=mPhases.end()) { - (*iterPhase)->mAlpha.generateNumericalResults(chains); - (*iterPhase)->mBeta.generateNumericalResults(chains); - (*iterPhase)->mDuration.generateNumericalResults(chains); - ++iterPhase; + for (auto&& phase : mPhases) { + phase->mAlpha.generateNumericalResults(chains); + phase->mBeta.generateNumericalResults(chains); + phase->mDuration.generateNumericalResults(chains); } QTime t2 = QTime::currentTime(); @@ -1098,24 +1051,20 @@ void Model::generateNumericalResults(const QList &chains) void Model::clearThreshold() { mThreshold = -1.; - QList::iterator iterEvent = mEvents.begin(); - while (iterEvent!=mEvents.end()) { - (*iterEvent)->mTheta.mThresholdUsed = -1.; - for (int j=0; j<(*iterEvent)->mDates.size(); ++j) { - Date& date = (*iterEvent)->mDates[j]; + for (auto && event : mEvents) { + event->mTheta.mThresholdUsed = -1.; + + for (auto&& date : event->mDates) { date.mTheta.mThresholdUsed = -1.; date.mSigma.mThresholdUsed = -1.; } - ++iterEvent; } - QList::iterator iterPhase = mPhases.begin(); - while (iterPhase!=mPhases.end()) { - (*iterPhase)->mAlpha.mThresholdUsed = -1.; - (*iterPhase)->mBeta.mThresholdUsed = -1.; - (*iterPhase)->mDuration.mThresholdUsed = -1.; - ++iterPhase; + for (auto&& phase : mPhases) { + phase->mAlpha.mThresholdUsed = -1.; + phase->mBeta.mThresholdUsed = -1.; + phase->mDuration.mThresholdUsed = -1.; } } @@ -1123,27 +1072,23 @@ void Model::initThreshold(const double threshold) { // memo threshold used value mThreshold = threshold; - QList::iterator iterEvent = mEvents.begin(); - while (iterEvent!=mEvents.end()) { - if ((*iterEvent)->type() != Event::eKnown) { - (*iterEvent)->mTheta.mThresholdUsed = threshold; + for (auto && event : mEvents) { + if (event->type() != Event::eKnown) { + event->mTheta.mThresholdUsed = threshold; - for (int j = 0; j<(*iterEvent)->mDates.size(); ++j) { - Date& date = (*iterEvent)->mDates[j]; + for (auto&& date : event->mDates) { date.mTheta.mThresholdUsed = threshold; date.mSigma.mThresholdUsed = threshold; } } - ++iterEvent; } - QList::iterator iterPhase = mPhases.begin(); - while (iterPhase!=mPhases.end()) { - (*iterPhase)->mAlpha.mThresholdUsed = threshold; - (*iterPhase)->mBeta.mThresholdUsed = threshold; - (*iterPhase)->mDuration.mThresholdUsed = threshold; - ++iterPhase; + + for (auto&& phase : mPhases) { + phase->mAlpha.mThresholdUsed = threshold; + phase->mBeta.mThresholdUsed = threshold; + phase->mDuration.mThresholdUsed = threshold; } } @@ -1662,27 +1607,25 @@ void Model::restoreFromFile(const QString& fileName) // Read phases data // ----------------------------------------------------- - for (int i=0; i> mPhases[i]->mAlpha; - in >> mPhases[i]->mBeta; - in >> mPhases[i]->mDuration; - } - + for (auto && p : mPhases) { + in >> p->mAlpha; + in >> p->mBeta; + in >> p->mDuration; + } // ----------------------------------------------------- // Read events data // ----------------------------------------------------- - for (Event* e:mEvents) + for (auto&& e:mEvents) in >> e->mTheta; // ----------------------------------------------------- // Read dates data // ----------------------------------------------------- - for (int i=0; imType == Event::eDefault ) - for (int j=0; jmDates.size(); ++j) { - Date& d = mEvents[i]->mDates[j]; + for (auto && event : mEvents) { + if (event->mType == Event::eDefault ) + for (auto && d : event->mDates) { in >> d.mTheta; in >> d.mSigma; if (d.mDeltaType != Date::eDeltaNone) @@ -1710,12 +1653,6 @@ void Model::restoreFromFile(const QString& fileName) in >> tmp; d.setTmaxRefCurve(tmp); - /* in >> tmp; - d.setTminCalib(tmp); - in >>tmp; - d.setTmaxCalib(tmp); - */ - /* Check if the Calibration Curve exist*/ const QString toFind (d.mName+d.mPlugin->getDateDesc(&d)); // QMap::const_iterator it = mProject->mCalibCurves.find (toFind); @@ -1729,7 +1666,6 @@ void Model::restoreFromFile(const QString& fileName) d.mCalibration = & (mProject->mCalibCurves[toFind]); - // in >>*(d.mCalibration); quint32 tmpUint32; in >> tmpUint32;