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 #include "IpIpoptData.hpp"
13 #include "IpSymMatrix.hpp"
14 #include "IpRegOptions.hpp"
15 
16 #include <string>
17 
18 namespace Ipopt
19 {
20 class IpoptNLP;
21 class Journalist;
22 class OptionsList;
23 
26 {
27  NORM_1 = 0,
29  NORM_MAX
30 };
31 
40 {
41 public:
44 
46  { }
47 
50  { }
52 
58  virtual bool Initialize(
59  const Journalist& jnlst,
60  const OptionsList& options,
61  const std::string& prefix
62  ) = 0;
63 
64 private:
75 
77  const IpoptAdditionalCq&);
78 
80  void operator=(
81  const IpoptAdditionalCq&);
83 };
84 
87 {
88 public:
89 
92 
94  const SmartPtr<IpoptNLP>& ip_nlp,
95  const SmartPtr<IpoptData>& ip_data
96  );
100 
106  void SetAddCq(
108  )
109  {
110  // cppcheck-suppress assertWithSideEffect
111  DBG_ASSERT(!HaveAddCq());
112  add_cq_ = add_cq;
113  }
114 
118  bool HaveAddCq()
119  {
120  return IsValid(add_cq_);
121  }
122 
129  const Journalist& jnlst,
130  const OptionsList& options,
131  const std::string& prefix
132  );
133 
136 
157 
160 
161  virtual Number curr_f();
165  virtual Number trial_f();
173 
176 
184 
193 
199 
202 
232  const Vector& vec
233  );
238  const Vector& vec
239  );
244  const Vector& vec
245  );
250  const Vector& vec
251  );
272  const Vector& vec
273  );
278  const Vector& vec
279  );
304  ENormType NormType
305  );
312  ENormType NormType
313  );
320  ENormType NormType
321  );
323 
327 
335  const Vector& x
336  );
344  const Vector& x
345  );
366  ENormType NormType
367  );
368 
376  const Vector& x
377  );
385  const Vector& x
386  );
407  ENormType NormType
408  );
410 
413 
416 
419 
459 
462  ENormType NormType
463  );
466  ENormType NormType
467  );
468 
471  ENormType NormType
472  );
475  ENormType NormType
476  );
479  ENormType NormType
480  );
481 
486  Number mu,
487  ENormType NormType
488  );
493  Number mu,
494  ENormType NormType
495  );
500  Number mu,
501  ENormType NormType
502  );
503 
506  const Vector& compl_x_L,
507  const Vector& compl_x_U,
508  const Vector& compl_s_L,
509  const Vector& compl_s_U
510  );
513 
529 
534 
543  Number mu
544  );
553  Number mu
554  );
556 
559 
563  Number tau,
564  const Vector& delta_x,
565  const Vector& delta_s
566  );
571  Number tau
572  );
577  Number tau,
578  const Vector& delta_z_L,
579  const Vector& delta_z_U,
580  const Vector& delta_v_L,
581  const Vector& delta_v_U
582  );
587  Number tau,
588  const Vector& delta_z_L,
589  const Vector& delta_z_U,
590  const Vector& delta_v_L,
591  const Vector& delta_v_U
592  );
597  Number tau
598  );
610  Number tau,
611  const Vector& delta_x_L,
612  const Vector& delta_x_U,
613  const Vector& delta_s_L,
614  const Vector& delta_s_U
615  );
617 
623 
628 
633 
635  Number
637  ENormType NormType,
638  std::vector<SmartPtr<const Vector> > vecs
639  );
640 
642  Number
644  ENormType NormType,
645  const Vector& vec1,
646  const Vector& vec2
647  );
648 
651  {
652  return constr_viol_normtype_;
653  }
654 
656  bool IsSquareProblem() const;
657 
663  {
664  return ip_nlp_;
665  }
666 
668  {
669  DBG_ASSERT(IsValid(add_cq_));
670  return *add_cq_;
671  }
672 
674  static void RegisterOptions(
676  );
677 
678 private:
689 
691 
695  );
696 
698  void operator=(
700  );
702 
705 
712 
719 
738 
754 
762 
772 
797 
800 
835 
844 
850 
856 
861 
864 
868 
885 
900 
911 
916 
919 
923  const Matrix& P,
924  const Vector& x,
925  const Vector& x_bound
926  );
931  const Matrix& P,
932  const Vector& x,
933  const Vector& x_bound
934  );
939  Number mu,
940  const Vector& slack_x_L,
941  const Vector& slack_x_U,
942  const Vector& slack_s_L,
943  const Vector& slack_s_U
944  );
945 
948  const Vector& slack,
949  const Vector& mult
950  );
951 
954  const Vector& slack_L,
955  Vector& tmp_L,
956  const Matrix& P_L,
957  const Vector& slack_U,
958  Vector& tmp_U,
959  const Matrix& P_U,
960  const Vector& delta,
961  Number tau
962  );
963 
966  const Vector& y_c,
967  const Vector& y_d,
968  const Vector& z_L,
969  const Vector& z_U,
970  const Vector& v_L,
971  const Vector& v_U,
972  Number s_max,
973  Number& s_d,
974  Number& s_c
975  );
976 
984  SmartPtr<Vector>& slack,
985  const SmartPtr<const Vector>& bound,
986  const SmartPtr<const Vector>& curr_point,
987  const SmartPtr<const Vector>& multiplier
988  );
989 
998  SmartPtr<const Vector>& dampind_x_L,
999  SmartPtr<const Vector>& dampind_x_U,
1000  SmartPtr<const Vector>& dampind_s_L,
1001  SmartPtr<const Vector>& dampind_s_U
1002  );
1003 
1005 };
1006 
1007 } // namespace Ipopt
1008 
1009 #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