21#ifndef __SOLVER_VARIABLE_STORAGE_MIN_HXX__
22#define __SOLVER_VARIABLE_STORAGE_MIN_HXX__
36template<
bool OpInferior,
class NextT>
37inline void MinMaxBase<OpInferior, NextT>::initializeFromStudy(Data::Study& study)
40 NextType::initializeFromStudy(study);
43template<
bool OpInferior,
class NextT>
44inline void MinMaxBase<OpInferior, NextT>::reset()
59template<
bool OpInferior,
class NextT>
60inline void MinMaxBase<OpInferior, NextT>::merge(uint year,
const IntermediateValues& rhs)
64 minmax.mergeInf(year, rhs);
68 minmax.mergeSup(year, rhs);
71 NextType::merge(year, rhs);
74template<
bool OpInferior,
class NextT>
75template<u
int Size,
class VCardT>
76void MinMaxBase<OpInferior, NextT>::InternalExportIndices(SurveyResults& report,
77 const MinMaxData::Data* array,
81 assert(report.data.columnIndex < report.maxVariables &&
"Column index out of bounds");
84 report.captions[0][report.data.columnIndex] = report.variableCaption;
85 report.captions[1][report.data.columnIndex] = report.variableUnit;
86 report.captions[2][report.data.columnIndex] = (OpInferior ?
"min" :
"max");
89 int recommendedPrecision = (int)Category::MaxDecimalPrecision(fileLevel);
90 uint decimalPrec = (recommendedPrecision < (int)VCardT::decimal) ? (uint)recommendedPrecision
91 : (uint)VCardT::decimal;
94 report.nonApplicableStatus[report.data.columnIndex] = *report.isCurrentVarNA;
96 Solver::Variable::AssignPrecisionToPrintfFormat(report.precision[report.data.columnIndex],
100 double* v = report.values[report.data.columnIndex];
101 for (uint i = 0; i != Size; ++i)
103 v[i] = (double)array[i].indice;
107 ++report.data.columnIndex;
110template<
bool OpInferior,
class NextT>
111template<u
int Size,
class VCardT>
112inline void MinMaxBase<OpInferior, NextT>::InternalExportValues(SurveyResults& report,
113 const MinMaxData::Data* array)
116 assert(report.data.columnIndex < report.maxVariables &&
"Column index out of bounds");
119 report.captions[0][report.data.columnIndex] = report.variableCaption;
120 report.captions[1][report.data.columnIndex] = report.variableUnit;
121 report.captions[2][report.data.columnIndex] = (OpInferior ?
"min" :
"max");
123 Solver::Variable::AssignPrecisionToPrintfFormat(report.precision[report.data.columnIndex],
127 report.nonApplicableStatus[report.data.columnIndex] = *report.isCurrentVarNA;
130 double* v = report.values[report.data.columnIndex];
131 for (uint i = 0; i != Size; ++i)
133 v[i] = array[i].value;
137 ++report.data.columnIndex;