def hessianstructure(self): if not self._hessian_available: return np.zeros(0), np.zeros(0) row = np.compress(self._hess_lower_mask, self._hess_lag.row) col = np.compress(self._hess_lower_mask, self._hess_lag.col) return row, col
def hessian(self, x, y, obj_factor): if not self._hessian_available: raise ValueError("Hessian requested, but not supported by the NLP") self._set_primals_if_necessary(x) self._set_duals_if_necessary(y) self._set_obj_factor_if_necessary(obj_factor) self._nlp.evaluate_hessian_lag(out=self._hess_lag) data = np.compress(self._hess_lower_mask, self._hess_lag.data) return data