| 15 | UserCallbacks(), notify_acceptable_iterate_callback(notify_acceptable_iterate_callback), termination_callback(termination_callback) { } |
| 16 | |
| 17 | void UnopyUserCallbacks::notify_acceptable_iterate(const Vector<double>& primals, const Multipliers& multipliers, |
| 18 | double objective_multiplier, double primal_feasibility_residual, double stationarity_residual, double complementarity_residual) { |
| 19 | if (this->notify_acceptable_iterate_callback.has_value()) { |
| 20 | const auto primals_py = to_const_array(primals.data(), primals.size()); |
| 21 | const auto lower_bound_multipliers_py = to_const_array(multipliers.lower_bounds.data(), multipliers.lower_bounds.size()); |
| 22 | const auto upper_bound_multipliers_py = to_const_array(multipliers.upper_bounds.data(), multipliers.upper_bounds.size()); |
| 23 | const auto constraint_multipliers_py = to_const_array(multipliers.constraints.data(), multipliers.constraints.size()); |
| 24 | (*this->notify_acceptable_iterate_callback)(primals_py, lower_bound_multipliers_py, upper_bound_multipliers_py, |
| 25 | constraint_multipliers_py, objective_multiplier, primal_feasibility_residual, stationarity_residual, |
| 26 | complementarity_residual); |
| 27 | } |
| 28 | } |
| 29 | |
| 30 | bool UnopyUserCallbacks::termination(const Vector<double>& primals, const Multipliers& multipliers, |
| 31 | double objective_multiplier, double primal_feasibility_residual, double stationarity_residual, |
nothing calls this directly
no test coverage detected