Skip to content

Commit

Permalink
Memory allocation, use std::vector (#1402)
Browse files Browse the repository at this point in the history
* [DEV] CoefficientsDeLaMatriceDesContraintes

* [DEV] IndicesColonnes

* [DEV] CoutQuadratique CoutLineaire

* [DEV] TypeDeVariable

* [DEV] Xmin

* [DEV] Xmax

* [DEV] SecondMembre

* [DEV] CoutsMarginauxDesContraintes
  • Loading branch information
payetvin authored Jul 17, 2023
1 parent 7c7fea2 commit 6e090c5
Show file tree
Hide file tree
Showing 15 changed files with 76 additions and 94 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,8 @@ void HourlyCSRProblem::buildProblemConstraintsRHS()
void HourlyCSRProblem::setProblemCost()
{
logs.debug() << "[CSR] cost";
std::fill_n(problemeAResoudre_.CoutLineaire, problemeAResoudre_.NombreDeVariables, 0.);
std::fill_n(problemeAResoudre_.CoutQuadratique, problemeAResoudre_.NombreDeVariables, 0.);
problemeAResoudre_.CoutLineaire.assign(problemeAResoudre_.NombreDeVariables, 0.);
problemeAResoudre_.CoutQuadratique.assign(problemeAResoudre_.NombreDeVariables, 0.);

setQuadraticCost();
if (adqPatchParams_.curtailmentSharing.includeHurdleCost)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ void HourlyCSRProblem::setRHSnodeBalanceValue()

void HourlyCSRProblem::setRHSbindingConstraintsValue()
{
double* SecondMembre = problemeAResoudre_.SecondMembre;
std::vector<double>& SecondMembre = problemeAResoudre_.SecondMembre;

// constraint:
// user defined Binding constraints between transmission flows
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ void HourlyCSRProblem::setBoundsOnFlows()
{
const CORRESPONDANCES_DES_VARIABLES* CorrespondanceVarNativesVarOptim
= problemeHebdo_->CorrespondanceVarNativesVarOptim[triggeredHour];
double* Xmin = problemeAResoudre_.Xmin;
double* Xmax = problemeAResoudre_.Xmax;
std::vector<double>& Xmin = problemeAResoudre_.Xmin;
std::vector<double>& Xmax = problemeAResoudre_.Xmax;
VALEURS_DE_NTC_ET_RESISTANCES& ValeursDeNTC = problemeHebdo_->ValeursDeNTC[triggeredHour];

// variables bounds: transmissin flows (flow, direct_direct and flow_indirect). For links
Expand Down
18 changes: 9 additions & 9 deletions src/solver/optimisation/adequacy_patch_csr/solve_problem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,32 +61,32 @@ std::unique_ptr<PROBLEME_POINT_INTERIEUR> buildInteriorPointProblem(
auto Probleme = std::make_unique<PROBLEME_POINT_INTERIEUR>();

Probleme->NombreMaxDIterations = -1;
Probleme->CoutQuadratique = ProblemeAResoudre.CoutQuadratique;
Probleme->CoutLineaire = ProblemeAResoudre.CoutLineaire;
Probleme->CoutQuadratique = ProblemeAResoudre.CoutQuadratique.data();
Probleme->CoutLineaire = ProblemeAResoudre.CoutLineaire.data();
Probleme->X = ProblemeAResoudre.X;
Probleme->Xmin = ProblemeAResoudre.Xmin;
Probleme->Xmax = ProblemeAResoudre.Xmax;
Probleme->Xmin = ProblemeAResoudre.Xmin.data();
Probleme->Xmax = ProblemeAResoudre.Xmax.data();
Probleme->NombreDeVariables = ProblemeAResoudre.NombreDeVariables;
Probleme->TypeDeVariable = ProblemeAResoudre.TypeDeVariable;
Probleme->TypeDeVariable = ProblemeAResoudre.TypeDeVariable.data();

Probleme->VariableBinaire = (char*)ProblemeAResoudre.CoutsReduits;

Probleme->NombreDeContraintes = ProblemeAResoudre.NombreDeContraintes;
Probleme->IndicesDebutDeLigne = ProblemeAResoudre.IndicesDebutDeLigne.data();
Probleme->NombreDeTermesDesLignes = ProblemeAResoudre.NombreDeTermesDesLignes.data();
Probleme->IndicesColonnes = ProblemeAResoudre.IndicesColonnes;
Probleme->IndicesColonnes = ProblemeAResoudre.IndicesColonnes.data();
Probleme->CoefficientsDeLaMatriceDesContraintes
= ProblemeAResoudre.CoefficientsDeLaMatriceDesContraintes;
= ProblemeAResoudre.CoefficientsDeLaMatriceDesContraintes.data();
Probleme->Sens = ProblemeAResoudre.Sens.data();
Probleme->SecondMembre = ProblemeAResoudre.SecondMembre;
Probleme->SecondMembre = ProblemeAResoudre.SecondMembre.data();

Probleme->AffichageDesTraces = NON_PI;

Probleme->UtiliserLaToleranceDAdmissibiliteParDefaut = OUI_PI;
Probleme->UtiliserLaToleranceDeStationnariteParDefaut = OUI_PI;
Probleme->UtiliserLaToleranceDeComplementariteParDefaut = OUI_PI;

Probleme->CoutsMarginauxDesContraintes = ProblemeAResoudre.CoutsMarginauxDesContraintes;
Probleme->CoutsMarginauxDesContraintes = ProblemeAResoudre.CoutsMarginauxDesContraintes.data();

Probleme->CoutsMarginauxDesContraintesDeBorneInf = ProblemeAResoudre.CoutsReduits;
Probleme->CoutsMarginauxDesContraintesDeBorneSup = ProblemeAResoudre.CoutsReduits;
Expand Down
40 changes: 13 additions & 27 deletions src/solver/optimisation/opt_alloc_probleme_a_optimiser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,25 +60,23 @@ void OPT_AllocateFromNumberOfVariableConstraints(PROBLEME_ANTARES_A_RESOUDRE* Pr
const size_t szNbContint = ProblemeAResoudre->NombreDeContraintes * sizeof(int);

ProblemeAResoudre->Sens.resize(ProblemeAResoudre->NombreDeContraintes);
ProblemeAResoudre->IndicesDebutDeLigne.resize(szNbContint);
ProblemeAResoudre->NombreDeTermesDesLignes.resize(szNbContint);
ProblemeAResoudre->IndicesDebutDeLigne.assign(szNbContint, 0);
ProblemeAResoudre->NombreDeTermesDesLignes.assign(szNbContint, 0);

ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes
= (double*)MemAlloc(NbTermes * sizeof(double));
ProblemeAResoudre->IndicesColonnes = (int*)MemAlloc(NbTermes * sizeof(int));
ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes.assign(NbTermes, 0.);
ProblemeAResoudre->IndicesColonnes.assign(NbTermes, 0);

ProblemeAResoudre->NombreDeTermesAllouesDansLaMatriceDesContraintes = NbTermes;
ProblemeAResoudre->IncrementDAllocationMatriceDesContraintes = (int)(0.1 * NbTermes);

ProblemeAResoudre->CoutQuadratique = (double*)MemAlloc(szNbVarsDouble);
ProblemeAResoudre->CoutLineaire = (double*)MemAlloc(szNbVarsDouble);
ProblemeAResoudre->TypeDeVariable = (int*)MemAlloc(szNbVarsint);
ProblemeAResoudre->Xmin = (double*)MemAlloc(szNbVarsDouble);
ProblemeAResoudre->Xmax = (double*)MemAlloc(szNbVarsDouble);
ProblemeAResoudre->CoutQuadratique.assign(szNbVarsDouble, 0.);
ProblemeAResoudre->CoutLineaire.assign(szNbVarsDouble, 0.);
ProblemeAResoudre->TypeDeVariable.assign(szNbVarsint, 0);
ProblemeAResoudre->Xmin.assign(szNbVarsDouble, 0.);
ProblemeAResoudre->Xmax.assign(szNbVarsDouble, 0.);
ProblemeAResoudre->X = (double*)MemAlloc(szNbVarsDouble);

ProblemeAResoudre->SecondMembre
= (double*)MemAlloc(ProblemeAResoudre->NombreDeContraintes * sizeof(double));
ProblemeAResoudre->SecondMembre.assign(ProblemeAResoudre->NombreDeContraintes, 0.);

ProblemeAResoudre->AdresseOuPlacerLaValeurDesVariablesOptimisees
= (double**)MemAlloc(ProblemeAResoudre->NombreDeVariables * sizeof(void*));
Expand All @@ -87,8 +85,7 @@ void OPT_AllocateFromNumberOfVariableConstraints(PROBLEME_ANTARES_A_RESOUDRE* Pr
ProblemeAResoudre->AdresseOuPlacerLaValeurDesCoutsMarginaux
= (double**)MemAlloc(ProblemeAResoudre->NombreDeContraintes * sizeof(void*));

ProblemeAResoudre->CoutsMarginauxDesContraintes
= (double*)MemAlloc(ProblemeAResoudre->NombreDeContraintes * sizeof(double));
ProblemeAResoudre->CoutsMarginauxDesContraintes.assign(ProblemeAResoudre->NombreDeContraintes, 0.);
ProblemeAResoudre->CoutsReduits = (double*)MemAlloc(szNbVarsDouble);

ProblemeAResoudre->PositionDeLaVariable
Expand All @@ -106,19 +103,10 @@ void OPT_AllocateFromNumberOfVariableConstraints(PROBLEME_ANTARES_A_RESOUDRE* Pr

void OPT_FreeOptimizationData(PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudre)
{
MemFree(ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes);
MemFree(ProblemeAResoudre->IndicesColonnes);
MemFree(ProblemeAResoudre->CoutQuadratique);
MemFree(ProblemeAResoudre->CoutLineaire);
MemFree(ProblemeAResoudre->TypeDeVariable);
MemFree(ProblemeAResoudre->Xmin);
MemFree(ProblemeAResoudre->Xmax);
MemFree(ProblemeAResoudre->X);
MemFree(ProblemeAResoudre->SecondMembre);
MemFree(ProblemeAResoudre->AdresseOuPlacerLaValeurDesVariablesOptimisees);
MemFree(ProblemeAResoudre->AdresseOuPlacerLaValeurDesCoutsReduits);
MemFree(ProblemeAResoudre->AdresseOuPlacerLaValeurDesCoutsMarginaux);
MemFree(ProblemeAResoudre->CoutsMarginauxDesContraintes);
MemFree(ProblemeAResoudre->CoutsReduits);

MemFree(ProblemeAResoudre->PositionDeLaVariable);
Expand Down Expand Up @@ -218,11 +206,9 @@ void OPT_AugmenterLaTailleDeLaMatriceDesContraintes(PROBLEME_ANTARES_A_RESOUDRE*
<< NbTermes;
logs.info();

ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes = (double*)MemRealloc(
ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes, NbTermes * sizeof(double));
ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes.resize(NbTermes);

ProblemeAResoudre->IndicesColonnes
= (int*)MemRealloc(ProblemeAResoudre->IndicesColonnes, NbTermes * sizeof(int));
ProblemeAResoudre->IndicesColonnes.resize(NbTermes);

ProblemeAResoudre->NombreDeTermesAllouesDansLaMatriceDesContraintes = NbTermes;
}
Expand Down
30 changes: 15 additions & 15 deletions src/solver/optimisation/opt_appel_solveur_lineaire.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,23 +152,23 @@ bool OPT_AppelDuSimplexe(PROBLEME_HEBDO* problemeHebdo,
if (ortoolsUsed)
{
ORTOOLS_ModifierLeVecteurCouts(
solver, ProblemeAResoudre->CoutLineaire, ProblemeAResoudre->NombreDeVariables);
solver, ProblemeAResoudre->CoutLineaire.data(), ProblemeAResoudre->NombreDeVariables);
ORTOOLS_ModifierLeVecteurSecondMembre(solver,
ProblemeAResoudre->SecondMembre,
ProblemeAResoudre->SecondMembre.data(),
ProblemeAResoudre->Sens.data(),
ProblemeAResoudre->NombreDeContraintes);
ORTOOLS_CorrigerLesBornes(solver,
ProblemeAResoudre->Xmin,
ProblemeAResoudre->Xmax,
ProblemeAResoudre->TypeDeVariable,
ProblemeAResoudre->Xmin.data(),
ProblemeAResoudre->Xmax.data(),
ProblemeAResoudre->TypeDeVariable.data(),
ProblemeAResoudre->NombreDeVariables);
}
else
{
SPX_ModifierLeVecteurCouts(
ProbSpx, ProblemeAResoudre->CoutLineaire, ProblemeAResoudre->NombreDeVariables);
ProbSpx, ProblemeAResoudre->CoutLineaire.data(), ProblemeAResoudre->NombreDeVariables);
SPX_ModifierLeVecteurSecondMembre(ProbSpx,
ProblemeAResoudre->SecondMembre,
ProblemeAResoudre->SecondMembre.data(),
ProblemeAResoudre->Sens.data(),
ProblemeAResoudre->NombreDeContraintes);
}
Expand All @@ -180,21 +180,21 @@ bool OPT_AppelDuSimplexe(PROBLEME_HEBDO* problemeHebdo,
Probleme.NombreMaxDIterations = -1;
Probleme.DureeMaxDuCalcul = -1.;

Probleme.CoutLineaire = ProblemeAResoudre->CoutLineaire;
Probleme.CoutLineaire = ProblemeAResoudre->CoutLineaire.data();
Probleme.X = ProblemeAResoudre->X;
Probleme.Xmin = ProblemeAResoudre->Xmin;
Probleme.Xmax = ProblemeAResoudre->Xmax;
Probleme.Xmin = ProblemeAResoudre->Xmin.data();
Probleme.Xmax = ProblemeAResoudre->Xmax.data();
Probleme.NombreDeVariables = ProblemeAResoudre->NombreDeVariables;
Probleme.TypeDeVariable = ProblemeAResoudre->TypeDeVariable;
Probleme.TypeDeVariable = ProblemeAResoudre->TypeDeVariable.data();

Probleme.NombreDeContraintes = ProblemeAResoudre->NombreDeContraintes;
Probleme.IndicesDebutDeLigne = ProblemeAResoudre->IndicesDebutDeLigne.data();
Probleme.NombreDeTermesDesLignes = ProblemeAResoudre->NombreDeTermesDesLignes.data();
Probleme.IndicesColonnes = ProblemeAResoudre->IndicesColonnes;
Probleme.IndicesColonnes = ProblemeAResoudre->IndicesColonnes.data();
Probleme.CoefficientsDeLaMatriceDesContraintes
= ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes;
= ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes.data();
Probleme.Sens = ProblemeAResoudre->Sens.data();
Probleme.SecondMembre = ProblemeAResoudre->SecondMembre;
Probleme.SecondMembre = ProblemeAResoudre->SecondMembre.data();

Probleme.ChoixDeLAlgorithme = SPX_DUAL;

Expand All @@ -213,7 +213,7 @@ bool OPT_AppelDuSimplexe(PROBLEME_HEBDO* problemeHebdo,
Probleme.UtiliserCoutMax = NON_SPX;
Probleme.CoutMax = 0.0;

Probleme.CoutsMarginauxDesContraintes = ProblemeAResoudre->CoutsMarginauxDesContraintes;
Probleme.CoutsMarginauxDesContraintes = ProblemeAResoudre->CoutsMarginauxDesContraintes.data();
Probleme.CoutsReduits = ProblemeAResoudre->CoutsReduits;

#ifndef NDEBUG
Expand Down
18 changes: 9 additions & 9 deletions src/solver/optimisation/opt_appel_solveur_quadratique.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,24 +70,24 @@ bool OPT_AppelDuSolveurQuadratique(PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudr
int ChoixToleranceParDefautSurLaComplementarite = OUI_PI;

Probleme.NombreMaxDIterations = -1;
Probleme.CoutQuadratique = ProblemeAResoudre->CoutQuadratique;
Probleme.CoutLineaire = ProblemeAResoudre->CoutLineaire;
Probleme.CoutQuadratique = ProblemeAResoudre->CoutQuadratique.data();
Probleme.CoutLineaire = ProblemeAResoudre->CoutLineaire.data();
Probleme.X = ProblemeAResoudre->X;
Probleme.Xmin = ProblemeAResoudre->Xmin;
Probleme.Xmax = ProblemeAResoudre->Xmax;
Probleme.Xmin = ProblemeAResoudre->Xmin.data();
Probleme.Xmax = ProblemeAResoudre->Xmax.data();
Probleme.NombreDeVariables = ProblemeAResoudre->NombreDeVariables;
Probleme.TypeDeVariable = ProblemeAResoudre->TypeDeVariable;
Probleme.TypeDeVariable = ProblemeAResoudre->TypeDeVariable.data();

Probleme.VariableBinaire = (char*)ProblemeAResoudre->CoutsReduits;

Probleme.NombreDeContraintes = ProblemeAResoudre->NombreDeContraintes;
Probleme.IndicesDebutDeLigne = ProblemeAResoudre->IndicesDebutDeLigne.data();
Probleme.NombreDeTermesDesLignes = ProblemeAResoudre->NombreDeTermesDesLignes.data();
Probleme.IndicesColonnes = ProblemeAResoudre->IndicesColonnes;
Probleme.IndicesColonnes = ProblemeAResoudre->IndicesColonnes.data();
Probleme.CoefficientsDeLaMatriceDesContraintes
= ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes;
= ProblemeAResoudre->CoefficientsDeLaMatriceDesContraintes.data();
Probleme.Sens = ProblemeAResoudre->Sens.data();
Probleme.SecondMembre = ProblemeAResoudre->SecondMembre;
Probleme.SecondMembre = ProblemeAResoudre->SecondMembre.data();

Probleme.AffichageDesTraces = NON_PI;

Expand All @@ -102,7 +102,7 @@ bool OPT_AppelDuSolveurQuadratique(PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudr
= ChoixToleranceParDefautSurLaComplementarite;
Probleme.ToleranceDeComplementarite = ToleranceSurLaComplementarite;

Probleme.CoutsMarginauxDesContraintes = ProblemeAResoudre->CoutsMarginauxDesContraintes;
Probleme.CoutsMarginauxDesContraintes = ProblemeAResoudre->CoutsMarginauxDesContraintes.data();

Probleme.CoutsMarginauxDesContraintesDeBorneInf = ProblemeAResoudre->CoutsReduits;
Probleme.CoutsMarginauxDesContraintesDeBorneSup = ProblemeAResoudre->CoutsReduits;
Expand Down
14 changes: 7 additions & 7 deletions src/solver/optimisation/opt_gestion_des_bornes_cas_lineaire.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ void setBoundsForUnsuppliedEnergy(PROBLEME_HEBDO* problemeHebdo,
const int optimizationNumber)
{
// OUTPUT
double* Xmin = problemeHebdo->ProblemeAResoudre->Xmin;
double* Xmax = problemeHebdo->ProblemeAResoudre->Xmax;
std::vector<double>& Xmin = problemeHebdo->ProblemeAResoudre->Xmin;
std::vector<double>& Xmax = problemeHebdo->ProblemeAResoudre->Xmax;
double** AdresseOuPlacerLaValeurDesVariablesOptimisees
= problemeHebdo->ProblemeAResoudre->AdresseOuPlacerLaValeurDesVariablesOptimisees;

Expand Down Expand Up @@ -162,8 +162,8 @@ static void setBoundsForShortTermStorage(PROBLEME_HEBDO* problemeHebdo,
const int PremierPdtDeLIntervalle,
const int DernierPdtDeLIntervalle)
{
double* Xmin = problemeHebdo->ProblemeAResoudre->Xmin;
double* Xmax = problemeHebdo->ProblemeAResoudre->Xmax;
std::vector<double>& Xmin = problemeHebdo->ProblemeAResoudre->Xmin;
std::vector<double>& Xmax = problemeHebdo->ProblemeAResoudre->Xmax;
double** AddressForVars
= problemeHebdo->ProblemeAResoudre->AdresseOuPlacerLaValeurDesVariablesOptimisees;
int weekFirstHour = problemeHebdo->weekInTheYear * 168;
Expand Down Expand Up @@ -229,9 +229,9 @@ void OPT_InitialiserLesBornesDesVariablesDuProblemeLineaire(PROBLEME_HEBDO* prob
= ProblemeAResoudre->AdresseOuPlacerLaValeurDesVariablesOptimisees;
double** AdresseOuPlacerLaValeurDesCoutsReduits
= ProblemeAResoudre->AdresseOuPlacerLaValeurDesCoutsReduits;
double* Xmin = ProblemeAResoudre->Xmin;
double* Xmax = ProblemeAResoudre->Xmax;
int* TypeDeVariable = ProblemeAResoudre->TypeDeVariable;
std::vector<double>& Xmin = ProblemeAResoudre->Xmin;
std::vector<double>& Xmax = ProblemeAResoudre->Xmax;
std::vector<int>& TypeDeVariable = ProblemeAResoudre->TypeDeVariable;

for (int i = 0; i < ProblemeAResoudre->NombreDeVariables; i++)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ void OPT_InitialiserLesBornesDesVariablesDuProblemeLineaireCoutsDeDemarrage(

double** AdresseOuPlacerLaValeurDesVariablesOptimisees
= ProblemeAResoudre->AdresseOuPlacerLaValeurDesVariablesOptimisees;
double* Xmin = ProblemeAResoudre->Xmin;
double* Xmax = ProblemeAResoudre->Xmax;
std::vector<double>& Xmin = ProblemeAResoudre->Xmin;
std::vector<double>& Xmax = ProblemeAResoudre->Xmax;

for (int pdtHebdo = PremierPdtDeLIntervalle, pdtJour = 0; pdtHebdo < DernierPdtDeLIntervalle;
pdtHebdo++, pdtJour++)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ static void shortTermStorageCost(
int NombreDePays,
const std::vector<::ShortTermStorage::AREA_INPUT>& shortTermStorageInput,
std::vector<CORRESPONDANCES_DES_VARIABLES*>& CorrespondanceVarNativesVarOptim,
double* linearCost)
std::vector<double>& linearCost)
{
SIM::SpreadGenerator spreadGenerator;
for (int pays = 0; pays < NombreDePays; ++pays)
Expand Down Expand Up @@ -99,9 +99,7 @@ void OPT_InitialiserLesCoutsLineaire(PROBLEME_HEBDO* problemeHebdo,

int pdtJour = 0;

memset((char*)ProblemeAResoudre->CoutQuadratique,
0,
ProblemeAResoudre->NombreDeVariables * sizeof(double));
ProblemeAResoudre->CoutQuadratique.assign(ProblemeAResoudre->NombreDeVariables, 0.);

shortTermStorageCost(PremierPdtDeLIntervalle,
DernierPdtDeLIntervalle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ void OPT_InitialiserLesCoutsQuadratiques(PROBLEME_HEBDO* problemeHebdo, int PdtH
{
PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudre = problemeHebdo->ProblemeAResoudre;

memset((char*)ProblemeAResoudre->CoutLineaire,
0,
ProblemeAResoudre->NombreDeVariables * sizeof(double));
ProblemeAResoudre->CoutLineaire.assign(ProblemeAResoudre->NombreDeVariables, 0.);

const VALEURS_DE_NTC_ET_RESISTANCES& ValeursDeResistances
= problemeHebdo->ValeursDeNTC[PdtHebdo];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ void OPT_InitialiserLesCoutsLineaireCoutsDeDemarrage(PROBLEME_HEBDO* problemeHeb
const int DernierPdtDeLIntervalle)
{
PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudre = problemeHebdo->ProblemeAResoudre;
double* CoutLineaire = ProblemeAResoudre->CoutLineaire;
std::vector<double>& CoutLineaire = ProblemeAResoudre->CoutLineaire;

for (int pdtHebdo = PremierPdtDeLIntervalle, pdtJour = 0; pdtHebdo < DernierPdtDeLIntervalle;
pdtHebdo++, pdtJour++)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ using namespace Yuni;
static void shortTermStorageLevelsRHS(
const std::vector<::ShortTermStorage::AREA_INPUT>& shortTermStorageInput,
int numberOfAreas,
double* SecondMembre,
std::vector<double>& SecondMembre,
const CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim,
int hourInTheYear)
{
Expand All @@ -72,7 +72,7 @@ void OPT_InitialiserLeSecondMembreDuProblemeLineaire(PROBLEME_HEBDO* problemeHeb

PROBLEME_ANTARES_A_RESOUDRE* ProblemeAResoudre = problemeHebdo->ProblemeAResoudre;

double* SecondMembre = ProblemeAResoudre->SecondMembre;
std::vector<double>& SecondMembre = ProblemeAResoudre->SecondMembre;

double** AdresseOuPlacerLaValeurDesCoutsMarginaux
= ProblemeAResoudre->AdresseOuPlacerLaValeurDesCoutsMarginaux;
Expand Down
Loading

0 comments on commit 6e090c5

Please sign in to comment.