From b774fdc38911062f2a4e35944b5555c01a44c800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Omn=C3=A8s?= <26088210+flomnes@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:55:38 +0100 Subject: [PATCH] Use reference for variable `NbTermesContraintesPourLesCoutsDeDemarrage` (#1881) Instead of a raw pointer that ignores the constness of `PROBLEME_HEBDO`. --- .../adequacy_patch_csr/csr_quadratic_problem.h | 4 ++-- .../ConsistenceNumberOfDispatchableUnits.cpp | 2 +- .../constraints/ConstraintBuilder.h | 2 +- .../optimisation/constraints/MinDownTime.cpp | 2 +- .../NbDispUnitsMinBoundSinceMinUpTime.cpp | 2 +- .../NbUnitsOutageLessThanNbUnitsStop.cpp | 2 +- .../constraints/PMaxDispatchableGeneration.cpp | 2 +- .../constraints/PMinDispatchableGeneration.cpp | 2 +- .../constraints/constraint_builder_utils.cpp | 9 ++++----- .../constraints/constraint_builder_utils.h | 17 ++++++----------- 10 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/solver/optimisation/adequacy_patch_csr/csr_quadratic_problem.h b/src/solver/optimisation/adequacy_patch_csr/csr_quadratic_problem.h index 9a61499978..98337baabd 100644 --- a/src/solver/optimisation/adequacy_patch_csr/csr_quadratic_problem.h +++ b/src/solver/optimisation/adequacy_patch_csr/csr_quadratic_problem.h @@ -36,7 +36,7 @@ namespace Antares::Solver::Optimization class CsrQuadraticProblem { public: - CsrQuadraticProblem(const PROBLEME_HEBDO* p, PROBLEME_ANTARES_A_RESOUDRE& pa, HourlyCSRProblem& hourly) : + CsrQuadraticProblem(PROBLEME_HEBDO* p, PROBLEME_ANTARES_A_RESOUDRE& pa, HourlyCSRProblem& hourly) : problemeHebdo_(p), problemeAResoudre_(pa), hourlyCsrProblem_(hourly) { } @@ -44,7 +44,7 @@ class CsrQuadraticProblem void buildConstraintMatrix(); private: - const PROBLEME_HEBDO* problemeHebdo_; + PROBLEME_HEBDO* problemeHebdo_; PROBLEME_ANTARES_A_RESOUDRE& problemeAResoudre_; HourlyCSRProblem& hourlyCsrProblem_; diff --git a/src/solver/optimisation/constraints/ConsistenceNumberOfDispatchableUnits.cpp b/src/solver/optimisation/constraints/ConsistenceNumberOfDispatchableUnits.cpp index 1be75e7501..abd8155113 100644 --- a/src/solver/optimisation/constraints/ConsistenceNumberOfDispatchableUnits.cpp +++ b/src/solver/optimisation/constraints/ConsistenceNumberOfDispatchableUnits.cpp @@ -37,7 +37,7 @@ void ConsistenceNumberOfDispatchableUnits::add(int pays, int index, int pdt) } else { - *builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 4; + builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 4; builder.data.nombreDeContraintes++; } } diff --git a/src/solver/optimisation/constraints/ConstraintBuilder.h b/src/solver/optimisation/constraints/ConstraintBuilder.h index 86fde5b4f1..75773d444e 100644 --- a/src/solver/optimisation/constraints/ConstraintBuilder.h +++ b/src/solver/optimisation/constraints/ConstraintBuilder.h @@ -165,7 +165,7 @@ class ConstraintBuilderData const std::vector& NomsDesPays; const uint32_t& weekInTheYear; const uint32_t& NombreDePasDeTemps; - uint32_t* NbTermesContraintesPourLesCoutsDeDemarrage = nullptr; + uint32_t& NbTermesContraintesPourLesCoutsDeDemarrage; }; /*! \verbatim diff --git a/src/solver/optimisation/constraints/MinDownTime.cpp b/src/solver/optimisation/constraints/MinDownTime.cpp index 4f9b2832e4..f798d192ae 100644 --- a/src/solver/optimisation/constraints/MinDownTime.cpp +++ b/src/solver/optimisation/constraints/MinDownTime.cpp @@ -43,7 +43,7 @@ void MinDownTime::add(int pays, int index, int pdt) } else { - *builder.data.NbTermesContraintesPourLesCoutsDeDemarrage + builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 1 + DureeMinimaleDArretDUnGroupeDuPalierThermique; builder.data.nombreDeContraintes++; } diff --git a/src/solver/optimisation/constraints/NbDispUnitsMinBoundSinceMinUpTime.cpp b/src/solver/optimisation/constraints/NbDispUnitsMinBoundSinceMinUpTime.cpp index 294a274fec..bba7e3f77c 100644 --- a/src/solver/optimisation/constraints/NbDispUnitsMinBoundSinceMinUpTime.cpp +++ b/src/solver/optimisation/constraints/NbDispUnitsMinBoundSinceMinUpTime.cpp @@ -47,7 +47,7 @@ void NbDispUnitsMinBoundSinceMinUpTime::add(int pays, int index, int pdt) } else { - *builder.data.NbTermesContraintesPourLesCoutsDeDemarrage + builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 1 + 2 * DureeMinimaleDeMarcheDUnGroupeDuPalierThermique; builder.data.nombreDeContraintes++; } diff --git a/src/solver/optimisation/constraints/NbUnitsOutageLessThanNbUnitsStop.cpp b/src/solver/optimisation/constraints/NbUnitsOutageLessThanNbUnitsStop.cpp index 6062938a3a..fee75ee2c2 100644 --- a/src/solver/optimisation/constraints/NbUnitsOutageLessThanNbUnitsStop.cpp +++ b/src/solver/optimisation/constraints/NbUnitsOutageLessThanNbUnitsStop.cpp @@ -29,7 +29,7 @@ void NbUnitsOutageLessThanNbUnitsStop::add(int pays, int index, int pdt) } else { - *builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 2; + builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 2; builder.data.nombreDeContraintes++; } } diff --git a/src/solver/optimisation/constraints/PMaxDispatchableGeneration.cpp b/src/solver/optimisation/constraints/PMaxDispatchableGeneration.cpp index 36956d9754..2d4dd7c03a 100644 --- a/src/solver/optimisation/constraints/PMaxDispatchableGeneration.cpp +++ b/src/solver/optimisation/constraints/PMaxDispatchableGeneration.cpp @@ -27,7 +27,7 @@ void PMaxDispatchableGeneration::add(int pays, int index, int pdt) } else { - *builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 2; + builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 2; builder.data.nombreDeContraintes++; } } diff --git a/src/solver/optimisation/constraints/PMinDispatchableGeneration.cpp b/src/solver/optimisation/constraints/PMinDispatchableGeneration.cpp index 102727bf26..716faa42ee 100644 --- a/src/solver/optimisation/constraints/PMinDispatchableGeneration.cpp +++ b/src/solver/optimisation/constraints/PMinDispatchableGeneration.cpp @@ -28,7 +28,7 @@ void PMinDispatchableGeneration::add(int pays, int index, int pdt) } else { - *builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 2; + builder.data.NbTermesContraintesPourLesCoutsDeDemarrage += 2; builder.data.nombreDeContraintes++; } } diff --git a/src/solver/optimisation/constraints/constraint_builder_utils.cpp b/src/solver/optimisation/constraints/constraint_builder_utils.cpp index 1c10a2deb8..fae9c4b5a6 100644 --- a/src/solver/optimisation/constraints/constraint_builder_utils.cpp +++ b/src/solver/optimisation/constraints/constraint_builder_utils.cpp @@ -1,8 +1,7 @@ #include "constraint_builder_utils.h" -ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre( - const PROBLEME_HEBDO* problemeHebdo, - PROBLEME_ANTARES_A_RESOUDRE& ProblemeAResoudre) +ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre(PROBLEME_HEBDO* problemeHebdo, + PROBLEME_ANTARES_A_RESOUDRE& ProblemeAResoudre) { return {ProblemeAResoudre.Pi, ProblemeAResoudre.Colonne, @@ -24,5 +23,5 @@ ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre problemeHebdo->NomsDesPays, problemeHebdo->weekInTheYear, problemeHebdo->NombreDePasDeTemps, - nullptr}; -} \ No newline at end of file + problemeHebdo->NbTermesContraintesPourLesCoutsDeDemarrage}; +} diff --git a/src/solver/optimisation/constraints/constraint_builder_utils.h b/src/solver/optimisation/constraints/constraint_builder_utils.h index 0d1cd87d28..9916967d1f 100644 --- a/src/solver/optimisation/constraints/constraint_builder_utils.h +++ b/src/solver/optimisation/constraints/constraint_builder_utils.h @@ -2,13 +2,11 @@ #include "ConstraintBuilder.h" #include -ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre( - const PROBLEME_HEBDO* problemeHebdo, - PROBLEME_ANTARES_A_RESOUDRE& ProblemeAResoudre); +ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre(PROBLEME_HEBDO* problemeHebdo, + PROBLEME_ANTARES_A_RESOUDRE& ProblemeAResoudre); -inline ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre( - const PROBLEME_HEBDO* problemeHebdo, - std::unique_ptr& ProblemeAResoudre) +inline ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre(PROBLEME_HEBDO* problemeHebdo, + std::unique_ptr& ProblemeAResoudre) { /* not good!!!!!!!!!!*/ auto& problemAResoudreRef = *ProblemeAResoudre.get(); @@ -19,9 +17,6 @@ inline ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdoAndProblemAR inline ConstraintBuilderData NewGetConstraintBuilderFromProblemHebdo(PROBLEME_HEBDO* problemeHebdo) { auto& ProblemeAResoudre = problemeHebdo->ProblemeAResoudre; - auto data = NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre(problemeHebdo, - ProblemeAResoudre); - data.NbTermesContraintesPourLesCoutsDeDemarrage - = &problemeHebdo->NbTermesContraintesPourLesCoutsDeDemarrage; - return data; + return NewGetConstraintBuilderFromProblemHebdoAndProblemAResoudre(problemeHebdo, + ProblemeAResoudre); }