21 #ifndef __SOLVER_VARIABLE_STORAGE_MIN_HXX__
22 #define __SOLVER_VARIABLE_STORAGE_MIN_HXX__
24 namespace Antares::Solver::Variable::R::AllYears
26 template<
bool OpInferior,
class NextT>
27 inline void MinMaxBase<OpInferior, NextT>::initializeFromStudy(Data::Study& study)
30 NextType::initializeFromStudy(study);
33 template<
bool OpInferior,
class NextT>
34 inline void MinMaxBase<OpInferior, NextT>::reset()
49 template<
bool OpInferior,
class NextT>
50 inline void MinMaxBase<OpInferior, NextT>::merge(uint year,
const IntermediateValues& rhs)
54 minmax.mergeInf(year, rhs);
58 minmax.mergeSup(year, rhs);
61 NextType::merge(year, rhs);
64 template<
bool OpInferior,
class NextT>
65 template<u
int Size,
class VCardT>
66 void MinMaxBase<OpInferior, NextT>::InternalExportIndices(SurveyResults& report,
67 const MinMaxData::Data* array,
71 assert(report.data.columnIndex < report.maxVariables &&
"Column index out of bounds");
74 report.captions[0][report.data.columnIndex] = report.variableCaption;
75 report.captions[1][report.data.columnIndex] = report.variableUnit;
76 report.captions[2][report.data.columnIndex] = (OpInferior ?
"min" :
"max");
79 int recommendedPrecision = (int)Category::MaxDecimalPrecision(fileLevel);
80 uint decimalPrec = (recommendedPrecision < (int)VCardT::decimal) ? (uint)recommendedPrecision
81 : (uint)VCardT::decimal;
84 report.nonApplicableStatus[report.data.columnIndex] = *report.isCurrentVarNA;
86 Solver::Variable::AssignPrecisionToPrintfFormat(report.precision[report.data.columnIndex],
90 double* v = report.values[report.data.columnIndex];
91 for (uint i = 0; i != Size; ++i)
93 v[i] = array[i].index;
97 ++report.data.columnIndex;
100 template<
bool OpInferior,
class NextT>
101 template<u
int Size,
class VCardT>
102 inline void MinMaxBase<OpInferior, NextT>::InternalExportValues(SurveyResults& report,
103 const MinMaxData::Data* array)
106 assert(report.data.columnIndex < report.maxVariables &&
"Column index out of bounds");
109 report.captions[0][report.data.columnIndex] = report.variableCaption;
110 report.captions[1][report.data.columnIndex] = report.variableUnit;
111 report.captions[2][report.data.columnIndex] = (OpInferior ?
"min" :
"max");
113 Solver::Variable::AssignPrecisionToPrintfFormat(report.precision[report.data.columnIndex],
117 report.nonApplicableStatus[report.data.columnIndex] = *report.isCurrentVarNA;
120 double* v = report.values[report.data.columnIndex];
121 for (uint i = 0; i != Size; ++i)
123 v[i] = array[i].value;
127 ++report.data.columnIndex;