9 #ifndef __IPNLPBOUNDSREMOVER_HPP__
10 #define __IPNLPBOUNDSREMOVER_HPP__
44 const std::string& prefix)
46 return nlp_->ProcessOptions(options, prefix);
96 return nlp_->GetWarmStartIterate(warm_start_iterate);
105 return nlp_->Eval_f(x, f);
110 return nlp_->Eval_grad_f(x, g_f);
115 return nlp_->Eval_c(x, c);
120 return nlp_->Eval_jac_c(x, jac_c);
170 Number regularization_size,
176 return nlp_->IntermediateCallBack(mode,iter, obj_value, inf_pr, inf_du,
177 mu, d_norm, regularization_size,
178 alpha_du, alpha_pr, ls_trials,
214 nlp_->GetQuasiNewtonApproximationSpaces(approx_space, P_approx);
Number * x
Input: Starting point Output: Optimal solution.
virtual ~NLPBoundsRemover()
Default destructor.
Specialized CompoundVector class specifically for the algorithm iterates.
Class for all IPOPT specific calculated quantities.
SmartPtr< NLP > nlp()
Accessor method to the original NLP.
virtual bool IntermediateCallBack(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)
This method is called once per iteration, after the iteration summary output has been printed...
AlgorithmMode
enum to indicate the mode in which the algorithm is
double Number
Type of all numbers.
virtual bool Eval_jac_c(const Vector &x, Matrix &jac_c)
virtual void GetQuasiNewtonApproximationSpaces(SmartPtr< VectorSpace > &approx_space, SmartPtr< Matrix > &P_approx)
Method for obtaining the subspace in which the limited-memory Hessian approximation should be done...
bool allow_twosided_inequalities_
Flag indicating whether twosided inequality constraints are allowed.
virtual bool Eval_jac_d(const Vector &x, Matrix &jac_d)
SmartPtr< const Matrix > Px_u_orig_
Pointer to the expansion matrix for the upper x bounds.
virtual bool Eval_h(const Vector &x, Number obj_factor, const Vector &yc, const Vector &yd, SymMatrix &h)
virtual bool Eval_f(const Vector &x, Number &f)
This is the base class for all derived symmetric matrix types.
Template class for Smart Pointers.
This class stores a list of user set options.
SolverReturn
enum for the return from the optimize algorithm (obviously we need to add more)
virtual void GetScalingParameters(const SmartPtr< const VectorSpace > x_space, const SmartPtr< const VectorSpace > c_space, const SmartPtr< const VectorSpace > d_space, Number &obj_scaling, SmartPtr< Vector > &x_scaling, SmartPtr< Vector > &c_scaling, SmartPtr< Vector > &d_scaling) const
Routines to get the scaling parameters.
virtual bool GetSpaces(SmartPtr< const VectorSpace > &x_space, SmartPtr< const VectorSpace > &c_space, SmartPtr< const VectorSpace > &d_space, SmartPtr< const VectorSpace > &x_l_space, SmartPtr< const MatrixSpace > &px_l_space, SmartPtr< const VectorSpace > &x_u_space, SmartPtr< const MatrixSpace > &px_u_space, SmartPtr< const VectorSpace > &d_l_space, SmartPtr< const MatrixSpace > &pd_l_space, SmartPtr< const VectorSpace > &d_u_space, SmartPtr< const MatrixSpace > &pd_u_space, SmartPtr< const MatrixSpace > &Jac_c_space, SmartPtr< const MatrixSpace > &Jac_d_space, SmartPtr< const SymMatrixSpace > &Hess_lagrangian_space)
Method for creating the derived vector / matrix types.
virtual bool Eval_grad_f(const Vector &x, Vector &g_f)
Class to organize all the data required by the algorithm.
NLPBoundsRemover()
Default Constructor.
Number * x_L
Lower bounds on variables.
int Index
Type of all indices of vectors, matrices etc.
SmartPtr< const VectorSpace > d_space_orig_
Pointer to the original d space.
virtual bool Eval_c(const Vector &x, Vector &c)
Number Number * x_U
Upper bounds on variables.
Number Number * x_scaling
virtual bool GetStartingPoint(SmartPtr< Vector > x, bool need_x, SmartPtr< Vector > y_c, bool need_y_c, SmartPtr< Vector > y_d, bool need_y_d, SmartPtr< Vector > z_L, bool need_z_L, SmartPtr< Vector > z_U, bool need_z_U)
Method for obtaining the starting point for all the iterates.
This is an adaper for an NLP that converts variable bound constraints to inequality constraints...
virtual bool GetBoundsInformation(const Matrix &Px_L, Vector &x_L, const Matrix &Px_U, Vector &x_U, const Matrix &Pd_L, Vector &d_L, const Matrix &Pd_U, Vector &d_U)
Method for obtaining the bounds information.
virtual bool GetWarmStartIterate(IteratesVector &warm_start_iterate)
Method for obtaining an entire iterate as a warmstart point.
virtual bool ProcessOptions(const OptionsList &options, const std::string &prefix)
Overload if you want the chance to process options or parameters that may be specific to the NLP...
virtual bool Eval_d(const Vector &x, Vector &d)
void operator=(const NLPBoundsRemover &)
Overloaded Equals Operator.
virtual void FinalizeSolution(SolverReturn status, const Vector &x, const Vector &z_L, const Vector &z_U, const Vector &c, const Vector &d, const Vector &y_c, const Vector &y_d, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
This method is called at the very end of the optimization.
SmartPtr< const Matrix > Px_l_orig_
Pointer to the expansion matrix for the lower x bounds.
SmartPtr< NLP > nlp_
Pointer to the original NLP.