7#ifndef __IPTNLPREDUCER_HPP__
8#define __IPTNLPREDUCER_HPP__
AlgorithmMode
enum to indicate the mode in which the algorithm is
Templated class which stores one entry for the CachedResult class.
Class for all IPOPT specific calculated quantities.
Class to organize all the data required by the algorithm.
Specialized CompoundVector class specifically for the algorithm iterates.
This is a wrapper around a given TNLP class that takes out a list of constraints that are given to th...
Index n_x_fix_
Number of variables that are to be fixed to initial value.
virtual bool get_warm_start_iterate(IteratesVector &warm_start_iterate)
Method to provide an Ipopt warm start iterate which is already in the form Ipopt requires it internal...
TNLPReducer()
Default Constructor.
void operator=(const TNLPReducer &)
Default Assignment Operator.
virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars, Index *pos_nonlin_vars)
Return the indices of all nonlinear variables.
Index * index_g_skip_
Array of indices of the constraints that are to be skipped.
Index n_g_skip_
Number of constraints to be skipped.
virtual bool get_starting_point(Index n, bool init_x, Number *x, bool init_z, Number *z_L, Number *z_U, Index m, bool init_lambda, Number *lambda)
Method to request the starting point before iterating.
Index nnz_jac_g_reduced_
Number of Jacobian nonzeros in the reduced NLP.
virtual Index get_number_of_nonlinear_variables()
Return the number of variables that appear nonlinearly in the objective function or in at least one c...
virtual bool eval_f(Index n, const Number *x, bool new_x, Number &obj_value)
Method to request the value of the objective function.
virtual bool get_constraints_linearity(Index m, LinearityType *const_types)
Method to request the constraints linearity.
virtual bool eval_g(Index n, const Number *x, bool new_x, Index m, Number *g)
Method to request the constraint values.
IndexStyleEnum index_style_orig_
Index style for original problem.
Index * index_xL_skip_
Array of indices of the lower variable bounds to be skipped.
virtual bool eval_jac_g(Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values)
Method to request either the sparsity structure or the values of the Jacobian of the constraints.
Index * index_xU_skip_
Array of indices of the upper variable bounds to be skipped.
Index * index_x_fix_
Array of indices of the variables that are to be fixed.
virtual void finalize_solution(SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
This method is called when the algorithm has finished (successfully or not) so the TNLP can digest th...
virtual bool get_scaling_parameters(Number &obj_scaling, bool &use_x_scaling, Index n, Number *x_scaling, bool &use_g_scaling, Index m, Number *g_scaling)
Method to request scaling parameters.
Index n_xL_skip_
Number of lower variable bounds to be skipped.
virtual bool eval_h(Index n, const Number *x, bool new_x, Number obj_factor, Index m, const Number *lambda, bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values)
Method to request either the sparsity structure or the values of the Hessian of the Lagrangian.
virtual ~TNLPReducer()
Default destructor.
virtual bool eval_grad_f(Index n, const Number *x, bool new_x, Number *grad_f)
Method to request the gradient of the objective function.
TNLPReducer(const TNLPReducer &)
Copy Constructor.
Index m_reduced_
Number of constraints in reduced NLP.
virtual bool intermediate_callback(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
Intermediate Callback method for the user.
virtual bool get_variables_linearity(Index n, LinearityType *var_types)
Method to request the variables linearity.
Index nnz_jac_g_skipped_
Number of Jacobian nonzeros that are skipped.
TNLPReducer(TNLP &tnlp, Index n_g_skip, const Index *index_g_skip, Index n_xL_skip, const Index *index_xL_skip, Index n_xU_skip, const Index *index_xU_skip, Index n_x_fix, const Index *index_f_fix)
Constructor is given the indices of the constraints that should be taken out of the problem statement...
virtual bool get_bounds_info(Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u)
Method to request bounds on the variables and constraints.
Index * g_keep_map_
Map from original constraints to new constraints.
virtual bool get_nlp_info(Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style)
Method to request the initial information about the problem.
Index n_xU_skip_
Number of upper variable bounds to be skipped.
Index * jac_g_skipped_
Array of Jacobian elements that are to be skipped in increasing order.
Base class for all NLP's that use standard triplet matrix form and dense vectors.
LinearityType
Linearity-types of variables and constraints.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
SolverReturn
enum for the return from the optimize algorithm
ipindex Index
Type of all indices of vectors, matrices etc.
ipnumber Number
Type of all numbers.