You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Calling TNLPAdapter::ResortBnds from TNLP::intermediate_callback leaves entries in the (output) second and fourth double arrays uninitialized. Please note that the uninitialized entries occur both when 'fixed_variable_treatment' is 'make_parameter' and 'make_constraint'. These uninitialized values/multipliers (seem to) correspond to the fixed variables, as expected. I can provide a modification of the simple Cpp_example for which valgrind reports uninitialized values.
First, I find that it is not good practice to let uninitialized values in an output array for obvious reasons. For my code, this creates some serious damage since I'm sending these arrays over MPI and some low-level system socket communication functions just freeze on a particular OS.
Second, it is a intriguing that this occurs also when 'fixed_variable_treatment' is 'make_constraint'. Isn't ResortBnds supposed to compute bound multipliers for fixed variables?
A quick fix on the caller code side is to initialize the two bound multipliers once prior to calling ResortBnds. But I hope this can be also fixed inside Ipopt or at least the method's signature to be changed to make it clear that not all values are returned (e.g., should also return a flag and indexes of the bounds computed/returned).
Cosmin
The text was updated successfully, but these errors were encountered:
- makes the code from FinalizeSolution that gets the duals for fixed
variables if fixed-variable-treatment is set to make_constraint
available
- use it in TNLP::get_current_iterate()
- related to #352, 2695051
Calling TNLPAdapter::ResortBnds from TNLP::intermediate_callback leaves entries in the (output) second and fourth double arrays uninitialized. Please note that the uninitialized entries occur both when 'fixed_variable_treatment' is 'make_parameter' and 'make_constraint'. These uninitialized values/multipliers (seem to) correspond to the fixed variables, as expected. I can provide a modification of the simple Cpp_example for which valgrind reports uninitialized values.
First, I find that it is not good practice to let uninitialized values in an output array for obvious reasons. For my code, this creates some serious damage since I'm sending these arrays over MPI and some low-level system socket communication functions just freeze on a particular OS.
Second, it is a intriguing that this occurs also when 'fixed_variable_treatment' is 'make_constraint'. Isn't ResortBnds supposed to compute bound multipliers for fixed variables?
A quick fix on the caller code side is to initialize the two bound multipliers once prior to calling ResortBnds. But I hope this can be also fixed inside Ipopt or at least the method's signature to be changed to make it clear that not all values are returned (e.g., should also return a flag and indexes of the bounds computed/returned).
Cosmin
The text was updated successfully, but these errors were encountered: