diff --git a/mex/sources/bytecode/ErrorHandling.hh b/mex/sources/bytecode/ErrorHandling.hh index 59deb438b008a1dea7da5a3633ec65a5c0a930f9..c1fe2dd101935a1664db610b9e7c5234aec7d696 100644 --- a/mex/sources/bytecode/ErrorHandling.hh +++ b/mex/sources/bytecode/ErrorHandling.hh @@ -180,16 +180,16 @@ public: double *g2, *g1, *r, *res; vector<s_plan> splan, spfplan; vector<mxArray *> jacobian_block, jacobian_other_endo_block, jacobian_exo_block, jacobian_det_exo_block; - map<unsigned int, double> TEF; - map<pair<unsigned int, unsigned int>, double> TEFD; - map<tuple<unsigned int, unsigned int, unsigned int>, double> TEFDD; + map<int, double> TEF; + map<pair<int, int>, double> TEFD; + map<tuple<int, int, int>, double> TEFDD; ExpressionType EQN_type; it_code_type it_code_expr; size_t endo_name_length; // Maximum length of endogenous names vector<string> P_endo_names, P_exo_names, P_param_names; - unsigned int EQN_equation, EQN_block, EQN_block_number; - unsigned int EQN_dvar1, EQN_dvar2, EQN_dvar3; + int EQN_equation, EQN_block, EQN_block_number; + int EQN_dvar1, EQN_dvar2, EQN_dvar3; vector<tuple<string, SymbolType, unsigned int>> Variable_list; inline @@ -870,7 +870,7 @@ public: case Tags::FSTPG3: //store in derivative (g) variable from the processor double r; - unsigned int pos_col; + int pos_col; go_on = false; if (compute) { @@ -1399,12 +1399,12 @@ public: { auto *fc = static_cast<FCALL_ *>(it_code->second); string function_name = fc->get_function_name(); - unsigned int nb_input_arguments = fc->get_nb_input_arguments(); - unsigned int nb_output_arguments = fc->get_nb_output_arguments(); + int nb_input_arguments{fc->get_nb_input_arguments()}; + int nb_output_arguments{fc->get_nb_output_arguments()}; mxArray *output_arguments[3]; string arg_func_name = fc->get_arg_func_name(); - unsigned int nb_add_input_arguments = fc->get_nb_add_input_arguments(); + int nb_add_input_arguments{fc->get_nb_add_input_arguments()}; function_type = fc->get_function_type(); mxArray **input_arguments; switch (function_type) @@ -1416,7 +1416,7 @@ public: if (compute) { input_arguments = static_cast<mxArray **>(mxMalloc(nb_input_arguments * sizeof(mxArray *))); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { mxArray *vv = mxCreateDoubleScalar(Stackf.top()); input_arguments[nb_input_arguments - i - 1] = vv; @@ -1429,12 +1429,12 @@ public: tmp_out.str(""); tmp_out << function_name << "("; vector<string> ss(nb_input_arguments); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { ss[nb_input_arguments-i-1] = Stack.top(); Stack.pop(); } - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { tmp_out << ss[i]; if (i < nb_input_arguments - 1) @@ -1454,7 +1454,7 @@ public: vv = mxCreateDoubleScalar(fc->get_row()); input_arguments[1] = vv; vv = mxCreateCellMatrix(1, nb_add_input_arguments); - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i{0}; i < nb_add_input_arguments; i++) { double rr = Stackf.top(); mxSetCell(vv, nb_add_input_arguments - (i+1), mxCreateDoubleScalar(rr)); @@ -1470,12 +1470,12 @@ public: tmp_out << function_name << "("; tmp_out << arg_func_name.c_str() << ", " << fc->get_row() << ", {"; vector<string> ss(nb_input_arguments); - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i{0}; i < nb_add_input_arguments; i++) { ss[nb_add_input_arguments-i-1] = Stack.top(); Stack.pop(); } - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i{0}; i < nb_add_input_arguments; i++) { tmp_out << ss[i]; if (i < nb_add_input_arguments - 1) @@ -1490,7 +1490,7 @@ public: if (compute) { input_arguments = static_cast<mxArray **>(mxMalloc(nb_input_arguments * sizeof(mxArray *))); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { mxArray *vv = mxCreateDoubleScalar(Stackf.top()); input_arguments[(nb_input_arguments - 1) - i] = vv; @@ -1501,12 +1501,12 @@ public: tmp_out.str(""); tmp_out << function_name << "("; vector<string> ss(nb_input_arguments); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { ss[nb_input_arguments-i-1] = Stack.top(); Stack.pop(); } - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { tmp_out << ss[i]; if (i < nb_input_arguments - 1) @@ -1528,7 +1528,7 @@ public: vv = mxCreateDoubleScalar(fc->get_col()); input_arguments[2] = vv; vv = mxCreateCellMatrix(1, nb_add_input_arguments); - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i{0}; i < nb_add_input_arguments; i++) { double rr = Stackf.top(); mxSetCell(vv, (nb_add_input_arguments - 1) - i, mxCreateDoubleScalar(rr)); @@ -1544,12 +1544,12 @@ public: tmp_out << function_name << "("; tmp_out << arg_func_name.c_str() << ", " << fc->get_row() << ", " << fc->get_col() << ", {"; vector<string> ss(nb_input_arguments); - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i{0}; i < nb_add_input_arguments; i++) { ss[nb_add_input_arguments-i-1] = Stack.top(); Stack.pop(); } - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i{0}; i < nb_add_input_arguments; i++) { tmp_out << ss[i]; if (i < nb_add_input_arguments - 1) @@ -1564,7 +1564,7 @@ public: if (compute) { input_arguments = static_cast<mxArray **>(mxMalloc(nb_input_arguments * sizeof(mxArray *))); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { mxArray *vv = mxCreateDoubleScalar(Stackf.top()); input_arguments[i] = vv; @@ -1575,12 +1575,12 @@ public: tmp_out.str(""); tmp_out << function_name << "("; vector<string> ss(nb_input_arguments); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { ss[nb_input_arguments-i-1] = Stack.top(); Stack.pop(); } - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { tmp_out << ss[i]; if (i < nb_input_arguments - 1) @@ -1632,8 +1632,8 @@ public: case Tags::FSTPTEFD: { go_on = false; - unsigned int indx = static_cast<FSTPTEFD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FSTPTEFD_ *>(it_code->second)->get_row(); + int indx{static_cast<FSTPTEFD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FSTPTEFD_ *>(it_code->second)->get_row()}; if (compute) { Stackf.pop(); @@ -1648,8 +1648,8 @@ public: break; case Tags::FLDTEFD: { - unsigned int indx = static_cast<FLDTEFD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FLDTEFD_ *>(it_code->second)->get_row(); + int indx{static_cast<FLDTEFD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FLDTEFD_ *>(it_code->second)->get_row()}; if (compute) { auto it = TEFD.find({ indx, row-1 }); @@ -1663,9 +1663,9 @@ public: case Tags::FSTPTEFDD: { go_on = false; - unsigned int indx = static_cast<FSTPTEFDD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FSTPTEFDD_ *>(it_code->second)->get_row(); - unsigned int col = static_cast<FSTPTEFDD_ *>(it_code->second)->get_col(); + int indx{static_cast<FSTPTEFDD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FSTPTEFDD_ *>(it_code->second)->get_row()}; + int col{static_cast<FSTPTEFDD_ *>(it_code->second)->get_col()}; if (compute) { Stackf.pop(); @@ -1681,9 +1681,9 @@ public: break; case Tags::FLDTEFDD: { - unsigned int indx = static_cast<FLDTEFDD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FLDTEFDD_ *>(it_code->second)->get_row(); - unsigned int col = static_cast<FSTPTEFDD_ *>(it_code->second)->get_col(); + int indx{static_cast<FLDTEFDD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FLDTEFDD_ *>(it_code->second)->get_row()}; + int col{static_cast<FSTPTEFDD_ *>(it_code->second)->get_col()}; if (compute) { auto it = TEFDD.find({ indx, row-1, col-1 }); diff --git a/mex/sources/bytecode/Evaluate.cc b/mex/sources/bytecode/Evaluate.cc index 983f5892abf1b83ff3868d5afc934be6b935a3be..12af7224552bae2939e493a6cd6d73e74c5d7890 100644 --- a/mex/sources/bytecode/Evaluate.cc +++ b/mex/sources/bytecode/Evaluate.cc @@ -1027,11 +1027,11 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) #ifdef DEBUG mexPrintf("function_name=%s ", function_name.c_str()); mexEvalString("drawnow;"); #endif - unsigned int nb_input_arguments = fc->get_nb_input_arguments(); + int nb_input_arguments{fc->get_nb_input_arguments()}; #ifdef DEBUG mexPrintf("nb_input_arguments=%d ", nb_input_arguments); mexEvalString("drawnow;"); #endif - unsigned int nb_output_arguments = fc->get_nb_output_arguments(); + int nb_output_arguments{fc->get_nb_output_arguments()}; #ifdef DEBUG mexPrintf("nb_output_arguments=%d\n", nb_output_arguments); mexEvalString("drawnow;"); #endif @@ -1042,7 +1042,7 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) mexPrintf("arg_func_name.length() = %d\n", arg_func_name.length()); mexPrintf("arg_func_name.c_str() = %s\n", arg_func_name.c_str()); #endif - unsigned int nb_add_input_arguments = fc->get_nb_add_input_arguments(); + int nb_add_input_arguments{fc->get_nb_add_input_arguments()}; function_type = fc->get_function_type(); #ifdef DEBUG mexPrintf("function_type=%d ExternalFunctionWithoutDerivative=%d\n", function_type, ExternalFunctionType::withoutDerivative); @@ -1061,7 +1061,7 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) mexPrintf("Stack.size()=%d\n", Stack.size()); mexEvalString("drawnow;"); #endif - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { mxArray *vv = mxCreateDoubleScalar(Stack.top()); input_arguments[nb_input_arguments - i - 1] = vv; @@ -1074,21 +1074,21 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) Stack.push(*rr); if (function_type == ExternalFunctionType::withFirstDerivative || function_type == ExternalFunctionType::withFirstAndSecondDerivative) { - unsigned int indx = fc->get_indx(); + int indx{fc->get_indx()}; double *FD1 = mxGetPr(output_arguments[1]); size_t rows = mxGetN(output_arguments[1]); - for (unsigned int i = 0; i < rows; i++) + for (int i{0}; i < static_cast<int>(rows); i++) TEFD[{ indx, i }] = FD1[i]; } if (function_type == ExternalFunctionType::withFirstAndSecondDerivative) { - unsigned int indx = fc->get_indx(); + int indx{fc->get_indx()}; double *FD2 = mxGetPr(output_arguments[2]); size_t rows = mxGetM(output_arguments[2]); size_t cols = mxGetN(output_arguments[2]); - unsigned int k = 0; - for (unsigned int j = 0; j < cols; j++) - for (unsigned int i = 0; i < rows; i++) + int k{0}; + for (int j{0}; j < static_cast<int>(cols); j++) + for (int i{0}; i < static_cast<int>(rows); i++) TEFDD[{ indx, i, j }] = FD2[k++]; } } @@ -1102,7 +1102,7 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) vv = mxCreateDoubleScalar(fc->get_row()); input_arguments[1] = vv; vv = mxCreateCellMatrix(1, nb_add_input_arguments); - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i = 0; i < nb_add_input_arguments; i++) { double rr = Stack.top(); #ifdef DEBUG @@ -1133,7 +1133,7 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) { input_arguments = static_cast<mxArray **>(mxMalloc(nb_input_arguments * sizeof(mxArray *))); test_mxMalloc(input_arguments, __LINE__, __FILE__, __func__, nb_input_arguments * sizeof(mxArray *)); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { mxArray *vv = mxCreateDoubleScalar(Stack.top()); input_arguments[(nb_input_arguments - 1) - i] = vv; @@ -1141,10 +1141,10 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) } if (mexCallMATLAB(nb_output_arguments, output_arguments, nb_input_arguments, input_arguments, function_name.c_str())) throw FatalExceptionHandling(" external function: " + function_name + " not found"); - unsigned int indx = fc->get_indx(); + int indx{fc->get_indx()}; double *FD1 = mxGetPr(output_arguments[0]); size_t rows = mxGetN(output_arguments[0]); - for (unsigned int i = 0; i < rows; i++) + for (int i{0}; i < static_cast<int>(rows); i++) TEFD[{ indx, i }] = FD1[i]; } break; @@ -1159,7 +1159,7 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) vv = mxCreateDoubleScalar(fc->get_col()); input_arguments[2] = vv; vv = mxCreateCellMatrix(1, nb_add_input_arguments); - for (unsigned int i = 0; i < nb_add_input_arguments; i++) + for (int i{0}; i < nb_add_input_arguments; i++) { double rr = Stack.top(); #ifdef DEBUG @@ -1187,7 +1187,7 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) { input_arguments = static_cast<mxArray **>(mxMalloc(nb_input_arguments * sizeof(mxArray *))); test_mxMalloc(input_arguments, __LINE__, __FILE__, __func__, nb_input_arguments * sizeof(mxArray *)); - for (unsigned int i = 0; i < nb_input_arguments; i++) + for (int i{0}; i < nb_input_arguments; i++) { mxArray *vv = mxCreateDoubleScalar(Stack.top()); input_arguments[i] = vv; @@ -1195,13 +1195,13 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) } if (mexCallMATLAB(nb_output_arguments, output_arguments, nb_input_arguments, input_arguments, function_name.c_str())) throw FatalExceptionHandling(" external function: " + function_name + " not found"); - unsigned int indx = fc->get_indx(); + int indx{fc->get_indx()}; double *FD2 = mxGetPr(output_arguments[2]); size_t rows = mxGetM(output_arguments[0]); size_t cols = mxGetN(output_arguments[0]); - unsigned int k = 0; - for (unsigned int j = 0; j < cols; j++) - for (unsigned int i = 0; i < rows; i++) + int k{0}; + for (int j{0}; j < static_cast<int>(cols); j++) + for (int i{0}; i < static_cast<int>(rows); i++) TEFDD[{ indx, i, j }] = FD2[k++]; } break; @@ -1233,8 +1233,8 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) break; case Tags::FSTPTEFD: { - unsigned int indx = static_cast<FSTPTEFD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FSTPTEFD_ *>(it_code->second)->get_row(); + int indx{static_cast<FSTPTEFD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FSTPTEFD_ *>(it_code->second)->get_row()}; #ifdef DEBUG mexPrintf("FSTPTEFD\n"); mexPrintf("indx=%d Stack.size()=%d\n", indx, Stack.size()); @@ -1253,8 +1253,8 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) break; case Tags::FLDTEFD: { - unsigned int indx = static_cast<FLDTEFD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FLDTEFD_ *>(it_code->second)->get_row(); + int indx{static_cast<FLDTEFD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FLDTEFD_ *>(it_code->second)->get_row()}; #ifdef DEBUG mexPrintf("FLDTEFD\n"); mexPrintf("indx=%d row=%d Stack.size()=%d\n", indx, row, Stack.size()); @@ -1266,9 +1266,9 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) break; case Tags::FSTPTEFDD: { - unsigned int indx = static_cast<FSTPTEFDD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FSTPTEFDD_ *>(it_code->second)->get_row(); - unsigned int col = static_cast<FSTPTEFDD_ *>(it_code->second)->get_col(); + int indx{static_cast<FSTPTEFDD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FSTPTEFDD_ *>(it_code->second)->get_row()}; + int col{static_cast<FSTPTEFDD_ *>(it_code->second)->get_col()}; #ifdef DEBUG mexPrintf("FSTPTEFD\n"); mexPrintf("indx=%d Stack.size()=%d\n", indx, Stack.size()); @@ -1287,9 +1287,9 @@ Evaluate::compute_block_time(int Per_u_, bool evaluate, bool no_derivative) break; case Tags::FLDTEFDD: { - unsigned int indx = static_cast<FLDTEFDD_ *>(it_code->second)->get_indx(); - unsigned int row = static_cast<FLDTEFDD_ *>(it_code->second)->get_row(); - unsigned int col = static_cast<FSTPTEFDD_ *>(it_code->second)->get_col(); + int indx{static_cast<FLDTEFDD_ *>(it_code->second)->get_indx()}; + int row{static_cast<FLDTEFDD_ *>(it_code->second)->get_row()}; + int col{static_cast<FSTPTEFDD_ *>(it_code->second)->get_col()}; #ifdef DEBUG mexPrintf("FLDTEFD\n"); mexPrintf("indx=%d Stack.size()=%d\n", indx, Stack.size()); diff --git a/mex/sources/bytecode/Interpreter.cc b/mex/sources/bytecode/Interpreter.cc index 7690be1d58aaba5c00553c4a8c45fea19e291f79..a488b141d0a64bbe413555203d7cf4157eaf7bf4 100644 --- a/mex/sources/bytecode/Interpreter.cc +++ b/mex/sources/bytecode/Interpreter.cc @@ -563,7 +563,7 @@ Interpreter::ReadCodeFile(string file_name, CodeLoad &code) EQN_block_number = code.get_block_number(); if (!code_liste.size()) throw FatalExceptionHandling(" in compute_blocks, " + file_name + ".cod cannot be opened\n"); - if (block >= static_cast<int>(code.get_block_number())) + if (block >= code.get_block_number()) throw FatalExceptionHandling(" in compute_blocks, input argument block = " + to_string(block+1) + " is greater than the number of blocks in the model (" + to_string(code.get_block_number()) + " see M_.block_structure_stat.block)\n"); diff --git a/preprocessor b/preprocessor index 5cd5676c8e937d0cb603feaf1d9f780122c13fd8..83693e4427fd003bc05cfd14a76534c2b3043da0 160000 --- a/preprocessor +++ b/preprocessor @@ -1 +1 @@ -Subproject commit 5cd5676c8e937d0cb603feaf1d9f780122c13fd8 +Subproject commit 83693e4427fd003bc05cfd14a76534c2b3043da0