Ipopt Documentation  
IpIpoptCalculatedQuantities.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2011 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
6 
7 #ifndef __IPIPOPTCALCULATEDQUANTITIES_HPP__
8 #define __IPIPOPTCALCULATEDQUANTITIES_HPP__
9 
10 #include "IpSmartPtr.hpp"
11 #include "IpCachedResults.hpp"
12 
13 #include <string>
14 
15 namespace Ipopt
16 {
17 class IpoptNLP;
18 class IpoptData;
19 class Vector;
20 class Matrix;
21 class SymMatrix;
22 class Journalist;
23 class OptionsList;
24 class RegisteredOptions;
25 
28 {
29  NORM_1 = 0,
31  NORM_MAX
32 };
33 
42 {
43 public:
46 
48  { }
49 
52  { }
54 
60  virtual bool Initialize(
61  const Journalist& jnlst,
62  const OptionsList& options,
63  const std::string& prefix
64  ) = 0;
65 
66 private:
77 
79  const IpoptAdditionalCq&);
80 
82  void operator=(
83  const IpoptAdditionalCq&);
85 };
86 
89 {
90 public:
91 
94 
96  const SmartPtr<IpoptNLP>& ip_nlp,
97  const SmartPtr<IpoptData>& ip_data
98  );
102 
108  void SetAddCq(
110  )
111  {
112  // cppcheck-suppress assertWithSideEffect
113  DBG_ASSERT(!HaveAddCq());
114  add_cq_ = add_cq;
115  }
116 
120  bool HaveAddCq()
121  {
122  return IsValid(add_cq_);
123  }
124 
131  const Journalist& jnlst,
132  const OptionsList& options,
133  const std::string& prefix
134  );
135 
138 
159 
162 
163  virtual Number curr_f();
167  virtual Number trial_f();
175 
178 
186 
195 
201 
204 
234  const Vector& vec
235  );
240  const Vector& vec
241  );
246  const Vector& vec
247  );
252  const Vector& vec
253  );
274  const Vector& vec
275  );
280  const Vector& vec
281  );
306  ENormType NormType
307  );
314  ENormType NormType
315  );
322  ENormType NormType
323  );
325 
329 
337  const Vector& x
338  );
346  const Vector& x
347  );
368  ENormType NormType
369  );
370 
378  const Vector& x
379  );
387  const Vector& x
388  );
409  ENormType NormType
410  );
412 
415 
418 
421 
461 
464  ENormType NormType
465  );
468  ENormType NormType
469  );
470 
473  ENormType NormType
474  );
477  ENormType NormType
478  );
481  ENormType NormType
482  );
483 
488  Number mu,
489  ENormType NormType
490  );
495  Number mu,
496  ENormType NormType
497  );
502  Number mu,
503  ENormType NormType
504  );
505 
508  const Vector& compl_x_L,
509  const Vector& compl_x_U,
510  const Vector& compl_s_L,
511  const Vector& compl_s_U
512  );
515 
531 
536 
545  Number mu
546  );
555  Number mu
556  );
558 
561 
565  Number tau,
566  const Vector& delta_x,
567  const Vector& delta_s
568  );
573  Number tau
574  );
579  Number tau,
580  const Vector& delta_z_L,
581  const Vector& delta_z_U,
582  const Vector& delta_v_L,
583  const Vector& delta_v_U
584  );
589  Number tau,
590  const Vector& delta_z_L,
591  const Vector& delta_z_U,
592  const Vector& delta_v_L,
593  const Vector& delta_v_U
594  );
599  Number tau
600  );
612  Number tau,
613  const Vector& delta_x_L,
614  const Vector& delta_x_U,
615  const Vector& delta_s_L,
616  const Vector& delta_s_U
617  );
619 
625 
630 
635 
637  Number
639  ENormType NormType,
640  std::vector<SmartPtr<const Vector> > vecs
641  );
642 
644  Number
646  ENormType NormType,
647  const Vector& vec1,
648  const Vector& vec2
649  );
650 
653  {
654  return constr_viol_normtype_;
655  }
656 
658  bool IsSquareProblem() const;
659 
665  {
666  return ip_nlp_;
667  }
668 
670  {
671  DBG_ASSERT(IsValid(add_cq_));
672  return *add_cq_;
673  }
674 
676  static void RegisterOptions(
678  );
679 
680 private:
691 
693 
697  );
698 
700  void operator=(
702  );
704 
707 
714 
721 
740 
756 
764 
774 
799 
802 
837 
846 
852 
858 
863 
866 
870 
887 
902 
913 
918 
921 
925  const Matrix& P,
926  const Vector& x,
927  const Vector& x_bound
928  );
933  const Matrix& P,
934  const Vector& x,
935  const Vector& x_bound
936  );
941  Number mu,
942  const Vector& slack_x_L,
943  const Vector& slack_x_U,
944  const Vector& slack_s_L,
945  const Vector& slack_s_U
946  );
947 
950  const Vector& slack,
951  const Vector& mult
952  );
953 
956  const Vector& slack_L,
957  Vector& tmp_L,
958  const Matrix& P_L,
959  const Vector& slack_U,
960  Vector& tmp_U,
961  const Matrix& P_U,
962  const Vector& delta,
963  Number tau
964  );
965 
968  const Vector& y_c,
969  const Vector& y_d,
970  const Vector& z_L,
971  const Vector& z_U,
972  const Vector& v_L,
973  const Vector& v_U,
974  Number s_max,
975  Number& s_d,
976  Number& s_c
977  );
978 
986  SmartPtr<Vector>& slack,
987  const SmartPtr<const Vector>& bound,
988  const SmartPtr<const Vector>& curr_point,
989  const SmartPtr<const Vector>& multiplier
990  );
991 
1000  SmartPtr<const Vector>& dampind_x_L,
1001  SmartPtr<const Vector>& dampind_x_U,
1002  SmartPtr<const Vector>& dampind_s_L,
1003  SmartPtr<const Vector>& dampind_s_U
1004  );
1005 
1007 };
1008 
1009 } // namespace Ipopt
1010 
1011 #endif
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:27
Templated class for Cached Results.
Base class for additional calculated quantities that is special to a particular type of algorithm,...
void operator=(const IpoptAdditionalCq &)
Default Assignment Operator.
virtual bool Initialize(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)=0
This method is called to initialize the global algorithmic parameters.
IpoptAdditionalCq(const IpoptAdditionalCq &)
Copy Constructor.
Class for all IPOPT specific calculated quantities.
CachedResults< SmartPtr< const Matrix > > trial_jac_d_cache_
CachedResults< Number > curr_constraint_violation_cache_
SmartPtr< const Vector > curr_jac_cT_times_vec(const Vector &vec)
Product of Jacobian (evaluated at current point) of C transpose with general vector.
SmartPtr< const Vector > unscaled_trial_c()
unscaled c(x) (at trial point)
SmartPtr< IpoptData > ip_data_
Ipopt Data object.
CachedResults< SmartPtr< const Vector > > curr_relaxed_compl_s_U_cache_
SmartPtr< const Vector > CalcCompl(const Vector &slack, const Vector &mult)
Compute complementarity for slack / multiplier pair.
CachedResults< SmartPtr< const Vector > > curr_jac_dT_times_vec_cache_
Number curr_primal_frac_to_the_bound(Number tau)
Fraction to the boundary from (current) primal variables x and s for internal (current) step.
CachedResults< SmartPtr< const Vector > > trial_c_cache_
virtual Number curr_nlp_constraint_violation(ENormType NormType)
Real constraint violation in a given norm (at current iterate).
virtual Number unscaled_curr_nlp_constraint_violation(ENormType NormType)
Unscaled real constraint violation in a given norm (at current iterate).
SmartPtr< const Vector > trial_compl_s_U()
Complementarity for s_U (for trial iterate)
SmartPtr< const Vector > curr_grad_f()
Gradient of objective function (at current point)
SmartPtr< const Vector > unscaled_curr_orig_x_U_violation()
Violation of original variable upper bounds x_U.
IpoptCalculatedQuantities()
Default Constructor.
ENormType constr_viol_normtype_
Norm type to be used when calculating the constraint violation.
SmartPtr< const Vector > trial_d_minus_s()
d(x) - s (at trial point)
CachedResults< SmartPtr< Vector > > curr_slack_s_L_cache_
SmartPtr< const Vector > curr_compl_x_L()
Complementarity for x_L (for current iterate)
CachedResults< SmartPtr< const Vector > > curr_sigma_x_cache_
virtual Number curr_centrality_measure()
Centrality measure at current point.
CachedResults< SmartPtr< const Vector > > curr_compl_s_U_cache_
bool Initialize(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
This method must be called to initialize the global algorithmic parameters.
CachedResults< SmartPtr< const Vector > > trial_grad_lag_s_cache_
virtual Number unscaled_curr_dual_infeasibility(ENormType NormType)
Unscaled dual infeasibility in a given norm (at current iterate)
CachedResults< SmartPtr< const Vector > > trial_compl_x_L_cache_
bool IsSquareProblem() const
Method returning true if this is a square problem.
CachedResults< Number > unscaled_trial_nlp_constraint_violation_cache_
SmartPtr< const Vector > curr_compl_s_L()
Complementarity for s_L (for current iterate)
CachedResults< SmartPtr< const Vector > > curr_grad_lag_with_damping_x_cache_
SmartPtr< Vector > orig_x_U_violation(const Vector &x)
Violation of scaled original variable upper bounds x_U.
SmartPtr< const Vector > curr_relaxed_compl_s_U()
Relaxed complementarity for s_U (for current iterate and current mu)
SmartPtr< const Vector > curr_relaxed_compl_x_U()
Relaxed complementarity for x_U (for current iterate and current mu)
Number curr_dual_frac_to_the_bound(Number tau)
Fraction to the boundary from (current) dual variables z and v for internal (current) step.
Number dual_frac_to_the_bound(Number tau, const Vector &delta_z_L, const Vector &delta_z_U, const Vector &delta_v_L, const Vector &delta_v_U)
Fraction to the boundary from (current) dual variables z and v for a given step.
CachedResults< SmartPtr< const Vector > > curr_d_minus_s_cache_
SmartPtr< const Vector > trial_slack_s_L()
Slacks for s_L (at trial point)
CachedResults< Number > unscaled_curr_orig_bounds_viol_cache_
Number CalcNormOfType(ENormType NormType, const Vector &vec1, const Vector &vec2)
Compute the norm of a specific type of two vectors (uncached)
virtual Number trial_constraint_violation()
Constraint Violation (at trial point).
CachedResults< SmartPtr< const SymMatrix > > curr_exact_hessian_cache_
Cache for the exact Hessian.
SmartPtr< const Vector > curr_sigma_s()
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
SmartPtr< const Vector > curr_slack_x_U()
Slacks for x_U (at current iterate)
SmartPtr< const Vector > trial_slack_x_U()
Slacks for x_U (at trial point)
CachedResults< std::pair< SmartPtr< Vector >, SmartPtr< Vector > > > unscaled_curr_orig_x_LU_viol_cache_
CachedResults< SmartPtr< const Vector > > trial_compl_x_U_cache_
CachedResults< SmartPtr< const Vector > > curr_grad_barrier_obj_x_cache_
CachedResults< Number > curr_primal_dual_system_error_cache_
CachedResults< SmartPtr< Vector > > trial_slack_s_U_cache_
bool initialize_called_
flag indicating if Initialize method has been called (for debugging)
CachedResults< Number > curr_centrality_measure_cache_
CachedResults< Number > curr_gradBarrTDelta_cache_
Cache for grad barrier obj.
SmartPtr< const Matrix > trial_jac_c()
Jacobian of c (at trial point)
IpoptCalculatedQuantities(const IpoptCalculatedQuantities &)
Copy Constructor.
CachedResults< Number > curr_dual_infeasibility_cache_
CachedResults< Number > unscaled_curr_nlp_error_cache_
virtual Number curr_primal_infeasibility(ENormType NormType)
Primal infeasibility in a given norm (at current iterate).
SmartPtr< Vector > dampind_s_L_
Indicator vector for selecting the elements in s that have only lower bounds.
CachedResults< SmartPtr< const Vector > > trial_jac_dT_times_vec_cache_
Number uncached_dual_frac_to_the_bound(Number tau, const Vector &delta_z_L, const Vector &delta_z_U, const Vector &delta_v_L, const Vector &delta_v_U)
Fraction to the boundary from (current) dual variables z and v for a given step, without caching.
SmartPtr< const Vector > trial_jac_dT_times_trial_y_d()
Product of Jacobian (evaluated at trial point) of D transpose with trial y_d.
SmartPtr< const Vector > curr_slack_s_L()
Slacks for s_L (at current iterate)
CachedResults< SmartPtr< const Vector > > trial_jac_cT_times_vec_cache_
virtual Number curr_constraint_violation()
Constraint Violation (at current iterate).
virtual Number trial_complementarity(Number mu, ENormType NormType)
Complementarity (for all complementarity conditions together) in a given norm (at trial iterate)
SmartPtr< const Vector > trial_jac_dT_times_vec(const Vector &vec)
Product of Jacobian (evaluated at trial point) of D transpose with general vector.
SmartPtr< Vector > orig_x_L_violation(const Vector &x)
Violation of scaled original variable lower bounds x_L.
virtual Number trial_f()
Value of objective function (at trial point)
SmartPtr< Vector > unscaled_orig_x_L_violation(const Vector &x)
Violation of original variable lower bounds x_L.
CachedResults< Number > primal_frac_to_the_bound_cache_
SmartPtr< const Vector > curr_grad_lag_x()
x-part of gradient of Lagrangian function (at current point)
virtual Number unscaled_trial_f()
Unscaled value of the objective function (at the trial point)
SmartPtr< Vector > dampind_x_U_
Indicator vector for selecting the elements in x that have only upper bounds.
SmartPtr< const Vector > curr_grad_lag_s()
s-part of gradient of Lagrangian function (at current point)
void ComputeDampingIndicators(SmartPtr< const Vector > &dampind_x_L, SmartPtr< const Vector > &dampind_x_U, SmartPtr< const Vector > &dampind_s_L, SmartPtr< const Vector > &dampind_s_U)
Computes the indicator vectors that can be used to filter out those entries in the slack_....
SmartPtr< Vector > dampind_s_U_
Indicator vector for selecting the elements in s that have only upper bounds.
CachedResults< SmartPtr< const Vector > > curr_grad_f_cache_
CachedResults< SmartPtr< const Vector > > curr_relaxed_compl_x_U_cache_
CachedResults< Number > curr_avrg_compl_cache_
Cache for average of current complementarity.
CachedResults< SmartPtr< Vector > > trial_slack_x_L_cache_
virtual Number curr_barrier_error()
Total optimality error for the barrier problem at the current iterate, using scaling factors based on...
SmartPtr< const Vector > curr_d()
d(x) (at current point)
SmartPtr< const Vector > trial_jac_cT_times_trial_y_c()
Product of Jacobian (evaluated at trial point) of C transpose with trial y_c.
virtual Number unscaled_curr_nlp_error()
Total optimality error for the original NLP at the current iterate, but using no scaling based on mul...
SmartPtr< const Vector > curr_sigma_x()
SmartPtr< const Vector > curr_compl_x_U()
Complementarity for x_U (for current iterate)
Number kappa_d_
Weighting factor for the linear damping term added to the barrier objective function.
virtual Number trial_primal_infeasibility(ENormType NormType)
Primal infeasibility in a given norm (at trial point)
CachedResults< SmartPtr< const Vector > > trial_d_minus_s_cache_
Index CalculateSafeSlack(SmartPtr< Vector > &slack, const SmartPtr< const Vector > &bound, const SmartPtr< const Vector > &curr_point, const SmartPtr< const Vector > &multiplier)
Check if slacks are becoming too small.
CachedResults< SmartPtr< const Matrix > > curr_jac_d_cache_
CachedResults< Number > trial_primal_dual_system_error_cache_
CachedResults< SmartPtr< const Vector > > curr_sigma_s_cache_
CachedResults< Number > unscaled_curr_dual_infeasibility_cache_
void SetAddCq(SmartPtr< IpoptAdditionalCq > add_cq)
Method for setting pointer for additional calculated quantities.
CachedResults< Number > trial_avrg_compl_cache_
Cache for average of trial complementarity.
Number s_max_
Parameter in formula for computing overall primal-dual optimality error.
void operator=(const IpoptCalculatedQuantities &)
Default Assignment Operator.
SmartPtr< const Vector > curr_grad_lag_with_damping_s()
s-part of gradient of Lagrangian function (at current point) including linear damping term
Number curr_gradBarrTDelta()
inner_product of current barrier obj.
Number trial_avrg_compl()
average of trial values of the complementarities
SmartPtr< const Vector > grad_kappa_times_damping_x()
Gradient of the damping term with respect to x (times kappa_d)
SmartPtr< const Vector > trial_grad_lag_x()
x-part of gradient of Lagrangian function (at trial point)
virtual Number curr_f()
Value of objective function (at current point)
virtual Number trial_primal_dual_system_error(Number mu)
Norm of the primal-dual system for a given mu (at trial iterate).
CachedResults< Number > trial_primal_infeasibility_cache_
virtual Number trial_barrier_obj()
Barrier Objective Function Value (at trial point with current mu)
CachedResults< SmartPtr< Vector > > curr_slack_x_U_cache_
SmartPtr< const Vector > curr_relaxed_compl_x_L()
Relaxed complementarity for x_L (for current iterate and current mu)
SmartPtr< Vector > unscaled_orig_x_U_violation(const Vector &x)
Violation of original variable upper bounds x_U.
SmartPtr< Vector > CalcSlack_U(const Matrix &P, const Vector &x, const Vector &x_bound)
Compute new vector containing the slack to a upper bound (uncached)
SmartPtr< const Vector > curr_orig_x_U_violation()
Violation of scaled original variable upper bounds x_U.
CachedResults< Number > trial_dual_infeasibility_cache_
SmartPtr< const Vector > unscaled_curr_orig_x_L_violation()
Violation of original variable lower bounds x_L.
CachedResults< SmartPtr< const Vector > > trial_grad_f_cache_
SmartPtr< const Vector > curr_compl_s_U()
Complementarity for s_U (for current iterate)
SmartPtr< const Vector > unscaled_curr_d()
unscaled d(x) (at current point)
Number CalcFracToBound(const Vector &slack_L, Vector &tmp_L, const Matrix &P_L, const Vector &slack_U, Vector &tmp_U, const Matrix &P_U, const Vector &delta, Number tau)
Compute fraction to the boundary parameter for lower and upper bounds.
Number CalcNormOfType(ENormType NormType, std::vector< SmartPtr< const Vector > > vecs)
Compute the norm of a specific type of a set of vectors (uncached)
CachedResults< Number > curr_nlp_constraint_violation_cache_
CachedResults< SmartPtr< Vector > > trial_slack_s_L_cache_
virtual Number curr_barrier_obj()
Barrier Objective Function Value (at current iterate with current mu)
SmartPtr< const Vector > curr_grad_barrier_obj_s()
Gradient of barrier objective function with respect to s (at current point with current mu)
SmartPtr< const Vector > trial_slack_x_L()
Slacks for x_L (at trial point)
SmartPtr< const Matrix > curr_jac_d()
Jacobian of d (at current point)
SmartPtr< Vector > dampind_x_L_
Indicator vector for selecting the elements in x that have only lower bounds.
SmartPtr< const Vector > curr_jac_dT_times_vec(const Vector &vec)
Product of Jacobian (evaluated at current point) of D transpose with general vector.
SmartPtr< const SymMatrix > curr_exact_hessian()
exact Hessian at current iterate (uncached)
SmartPtr< const Vector > curr_grad_lag_with_damping_x()
x-part of gradient of Lagrangian function (at current point) including linear damping term
Number CalcBarrierTerm(Number mu, const Vector &slack_x_L, const Vector &slack_x_U, const Vector &slack_s_L, const Vector &slack_s_U)
Compute barrier term at given point (uncached)
SmartPtr< const Vector > curr_c()
c(x) (at current point)
CachedResults< SmartPtr< const Vector > > curr_jac_d_times_vec_cache_
CachedResults< SmartPtr< const Vector > > curr_compl_s_L_cache_
Number slack_move_
fractional movement allowed in bounds
SmartPtr< const Vector > trial_jac_cT_times_vec(const Vector &vec)
Product of Jacobian (evaluated at trial point) of C transpose with general vector.
virtual Number curr_primal_dual_system_error(Number mu)
Norm of the primal-dual system for a given mu (at current iterate).
IpoptCalculatedQuantities(const SmartPtr< IpoptNLP > &ip_nlp, const SmartPtr< IpoptData > &ip_data)
Constructor.
SmartPtr< const Vector > unscaled_curr_c()
unscaled c(x) (at current point)
CachedResults< Number > curr_primal_infeasibility_cache_
Number primal_frac_to_the_bound(Number tau, const Vector &delta_x, const Vector &delta_s)
Fraction to the boundary from (current) primal variables x and s for a given step.
Number mu_target_
Desired value of the barrier parameter.
CachedResults< SmartPtr< const Vector > > curr_grad_lag_s_cache_
CachedResults< SmartPtr< const Vector > > trial_compl_s_L_cache_
SmartPtr< const Matrix > trial_jac_d()
Jacobian of d (at trial point)
virtual Number curr_orig_bounds_violation(ENormType NormType)
Violation of scaled original variable bounds.
SmartPtr< Vector > CalcSlack_L(const Matrix &P, const Vector &x, const Vector &x_bound)
Compute new vector containing the slack to a lower bound (uncached)
CachedResults< SmartPtr< const Matrix > > curr_jac_c_cache_
SmartPtr< const Vector > curr_d_minus_s()
d(x) - s (at current point)
virtual Number curr_nlp_error()
Total optimality error for the original NLP at the current iterate, using scaling factors based on mu...
SmartPtr< const Vector > curr_jac_c_times_vec(const Vector &vec)
Product of Jacobian (evaluated at current point) of C with general vector.
Index AdjustedTrialSlacks()
Indicating whether or not we "fudged" the slacks.
CachedResults< SmartPtr< const Vector > > trial_d_cache_
CachedResults< SmartPtr< Vector > > trial_slack_x_U_cache_
CachedResults< SmartPtr< const Vector > > curr_d_cache_
SmartPtr< const Vector > trial_d()
d(x) (at trial point)
ENormType constr_viol_normtype() const
Norm type used for calculating constraint violation.
SmartPtr< const Vector > curr_grad_barrier_obj_x()
Gradient of barrier objective function with respect to x (at current point with current mu)
CachedResults< SmartPtr< const Vector > > curr_c_cache_
bool HaveAddCq()
Method detecting if additional object for calculated quantities has already been set.
virtual Number unscaled_curr_complementarity(Number mu, ENormType NormType)
Complementarity (for all complementarity conditions together) in a given norm (at current iterate) wi...
SmartPtr< const Vector > trial_compl_x_L()
Complementarity for x_L (for trial iterate)
virtual Number unscaled_trial_nlp_constraint_violation(ENormType NormType)
Unscaled real constraint violation in a given norm (at trial iterate).
CachedResults< SmartPtr< const Vector > > trial_grad_lag_x_cache_
SmartPtr< IpoptAdditionalCq > add_cq_
Chen-Goldfarb specific calculated quantities.
SmartPtr< const Vector > trial_compl_s_L()
Complementarity for s_L (for trial iterate)
SmartPtr< const Vector > curr_jac_d_times_vec(const Vector &vec)
Product of Jacobian (evaluated at current point) of D with general vector.
CachedResults< Number > trial_constraint_violation_cache_
SmartPtr< IpoptNLP > ip_nlp_
Ipopt NLP object.
SmartPtr< const Vector > trial_compl_x_U()
Complementarity for x_U (for trial iterate)
CachedResults< SmartPtr< const Vector > > trial_compl_s_U_cache_
CachedResults< SmartPtr< const Vector > > curr_relaxed_compl_x_L_cache_
CachedResults< SmartPtr< const Vector > > grad_kappa_times_damping_x_cache_
void ComputeOptimalityErrorScaling(const Vector &y_c, const Vector &y_d, const Vector &z_L, const Vector &z_U, const Vector &v_L, const Vector &v_U, Number s_max, Number &s_d, Number &s_c)
Compute the scaling factors for the optimality error.
SmartPtr< const Vector > curr_relaxed_compl_s_L()
Relaxed complementarity for s_L (for current iterate and current mu)
virtual ~IpoptCalculatedQuantities()
Destructor.
Number uncached_slack_frac_to_the_bound(Number tau, const Vector &delta_x_L, const Vector &delta_x_U, const Vector &delta_s_L, const Vector &delta_s_U)
Fraction to the boundary from (current) slacks for a given step in the slacks.
SmartPtr< IpoptNLP > & GetIpoptNLP()
Method returning the IpoptNLP object.
CachedResults< SmartPtr< const Vector > > curr_jac_cT_times_vec_cache_
SmartPtr< const Vector > trial_grad_f()
Gradient of objective function (at trial point)
CachedResults< SmartPtr< const Vector > > curr_compl_x_L_cache_
Number CalcCentralityMeasure(const Vector &compl_x_L, const Vector &compl_x_U, const Vector &compl_s_L, const Vector &compl_s_U)
Centrality measure (in spirit of the -infinity-neighborhood.
CachedResults< SmartPtr< Vector > > curr_orig_x_U_viol_cache_
CachedResults< SmartPtr< const Vector > > curr_grad_lag_x_cache_
virtual Number unscaled_curr_f()
Unscaled value of the objective function (at the current point)
Vector & Tmp_x()
Accessor methods for the temporary vectors.
virtual Number curr_dual_infeasibility(ENormType NormType)
Dual infeasibility in a given norm (at current iterate)
CachedResults< SmartPtr< const Vector > > grad_kappa_times_damping_s_cache_
SmartPtr< const Vector > curr_orig_x_L_violation()
Violation of scaled original variable lower bounds x_L.
CachedResults< SmartPtr< Vector > > curr_orig_x_L_viol_cache_
SmartPtr< const Vector > trial_grad_lag_s()
s-part of gradient of Lagrangian function (at trial point)
virtual Number trial_dual_infeasibility(ENormType NormType)
Dual infeasibility in a given norm (at trial iterate)
CachedResults< SmartPtr< Vector > > curr_slack_x_L_cache_
SmartPtr< const Vector > grad_kappa_times_damping_s()
Gradient of the damping term with respect to s (times kappa_d)
SmartPtr< const Vector > trial_c()
c(x) (at trial point)
Number curr_avrg_compl()
average of current values of the complementarities
CachedResults< Number > unscaled_curr_nlp_constraint_violation_cache_
CachedResults< SmartPtr< const Vector > > curr_grad_barrier_obj_s_cache_
virtual Number curr_complementarity(Number mu, ENormType NormType)
Complementarity (for all complementarity conditions together) in a given norm (at current iterate)
SmartPtr< const Vector > curr_slack_x_L()
Slacks for x_L (at current iterate)
SmartPtr< const Vector > curr_slack_s_U()
Slacks for s_U (at current iterate)
CachedResults< SmartPtr< const Vector > > curr_compl_x_U_cache_
CachedResults< SmartPtr< const Vector > > curr_relaxed_compl_s_L_cache_
CachedResults< SmartPtr< Vector > > curr_slack_s_U_cache_
SmartPtr< const Vector > curr_jac_cT_times_curr_y_c()
Product of Jacobian (evaluated at current point) of C transpose with current y_c.
virtual Number unscaled_curr_orig_bounds_violation(ENormType NormType)
Violation of (unscaled) original variable bounds.
CachedResults< SmartPtr< const Vector > > curr_grad_lag_with_damping_s_cache_
CachedResults< SmartPtr< const Matrix > > trial_jac_c_cache_
SmartPtr< const Vector > curr_jac_dT_times_curr_y_d()
Product of Jacobian (evaluated at current point) of D transpose with current y_d.
CachedResults< SmartPtr< const Vector > > curr_jac_c_times_vec_cache_
SmartPtr< const Vector > trial_slack_s_U()
Slacks for s_U (at trial point)
SmartPtr< const Matrix > curr_jac_c()
Jacobian of c (at current point)
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Called by IpoptType to register the options.
void ResetAdjustedTrialSlacks()
Reset the flags for "fudged" slacks.
Class responsible for all message output.
Matrix Base Class.
Definition: IpMatrix.hpp:28
This class stores a list of user set options.
Storing the reference count of all the smart pointers that currently reference it.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:165
Vector Base Class.
Definition: IpVector.hpp:48
#define IPOPTLIB_EXPORT
Definition: config.h:94
This file contains a base class for all exceptions and a set of macros to help with exceptions.
bool IsValid(const SmartPtr< U > &smart_ptr)
Definition: IpSmartPtr.hpp:672
ipindex Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition: IpTypes.hpp:17