Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpIpoptData.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2009 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpIpoptData.hpp 2706 2018-01-15 04:11:56Z stefan $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9 #ifndef __IPIPOPTDATA_HPP__
10 #define __IPIPOPTDATA_HPP__
11
12 #include "IpSymMatrix.hpp"
13 #include "IpOptionsList.hpp"
14 #include "IpIteratesVector.hpp"
15 #include "IpRegOptions.hpp"
16 #include "IpTimingStatistics.hpp"
17
18 namespace Ipopt
19 {
20
21 /* Forward declaration */
22 class IpoptNLP;
23
28 class IpoptAdditionalData : public ReferencedObject
29 {
30 public:
34 IpoptAdditionalData()
35 {}
36
38 virtual ~IpoptAdditionalData()
39 {}
41
45 virtual bool Initialize(const Journalist& jnlst,
46 const OptionsList& options,
47 const std::string& prefix) = 0;
48
50 virtual bool InitializeDataStructures() = 0;
51
55 virtual void AcceptTrialPoint() = 0;
56
57 private:
67 IpoptAdditionalData(const IpoptAdditionalData&);
68
70 void operator=(const IpoptAdditionalData&);
72 };
73
83 class IpoptData : public ReferencedObject
84 {
85 public:
89 IpoptData(SmartPtr<IpoptAdditionalData> add_data = NULL,
90 Number cpu_time_start = -1.);
91
93 virtual ~IpoptData();
95
97 bool InitializeDataStructures(IpoptNLP& ip_nlp,
98 bool want_x,
99 bool want_y_c,
100 bool want_y_d,
101 bool want_z_L,
102 bool want_z_U);
103
107 bool Initialize(const Journalist& jnlst,
108 const OptionsList& options,
109 const std::string& prefix);
110
114 inline
115 SmartPtr<const IteratesVector> curr() const;
116
121 // SmartPtr<IteratesVector> curr_container() const;
122
124 inline
125 SmartPtr<const IteratesVector> trial() const;
126
131 //SmartPtr<IteratesVector> trial_container() const;
132
137 inline
138 void set_trial(SmartPtr<IteratesVector>& trial);
139
143 void SetTrialPrimalVariablesFromStep(Number alpha,
144 const Vector& delta_x,
145 const Vector& delta_s);
150 void SetTrialEqMultipliersFromStep(Number alpha,
151 const Vector& delta_y_c,
152 const Vector& delta_y_d);
157 void SetTrialBoundMultipliersFromStep(Number alpha,
158 const Vector& delta_z_L,
159 const Vector& delta_z_U,
160 const Vector& delta_v_L,
161 const Vector& delta_v_U);
162
166 // void set_trial(const SmartPtr<IteratesVector>& trial_iterates);
167 // void set_trial(SmartPtr<const IteratesVector>& trial_iterates);
168
170 inline
171 SmartPtr<const IteratesVector> delta() const;
172
177 inline
178 void set_delta(SmartPtr<IteratesVector>& delta);
179
186 inline
187 void set_delta(SmartPtr<const IteratesVector>& delta);
188
190 inline
191 SmartPtr<const IteratesVector> delta_aff() const;
192
197 inline
198 void set_delta_aff(SmartPtr<IteratesVector>& delta_aff);
199
201 SmartPtr<const SymMatrix> W()
202 {
203 DBG_ASSERT(IsValid(W_));
204 return W_;
205 }
206
208 void Set_W(SmartPtr<const SymMatrix> W)
209 {
210 W_ = W;
211 }
212
219
227 bool HaveDeltas() const
228 {
229 return have_deltas_;
230 }
231
237 void SetHaveDeltas(bool have_deltas)
238 {
239 have_deltas_ = have_deltas;
240 }
242
249
257 bool HaveAffineDeltas() const
258 {
259 return have_affine_deltas_;
260 }
261
267 void SetHaveAffineDeltas(bool have_affine_deltas)
268 {
269 have_affine_deltas_ = have_affine_deltas;
270 }
272
276 inline
277 void CopyTrialToCurrent();
278
281 void AcceptTrialPoint();
283
286 Index iter_count() const
287 {
288 return iter_count_;
289 }
290 void Set_iter_count(Index iter_count)
291 {
292 iter_count_ = iter_count;
293 }
294
295 Number curr_mu() const
296 {
297 DBG_ASSERT(mu_initialized_);
298 return curr_mu_;
299 }
300 void Set_mu(Number mu)
301 {
302 curr_mu_ = mu;
303 mu_initialized_ = true;
304 }
305 bool MuInitialized() const
306 {
307 return mu_initialized_;
308 }
309
310 Number curr_tau() const
311 {
312 DBG_ASSERT(tau_initialized_);
313 return curr_tau_;
314 }
315 void Set_tau(Number tau)
316 {
317 curr_tau_ = tau;
318 tau_initialized_ = true;
319 }
320 bool TauInitialized() const
321 {
322 return tau_initialized_;
323 }
324
325 void SetFreeMuMode(bool free_mu_mode)
326 {
327 free_mu_mode_ = free_mu_mode;
328 }
329 bool FreeMuMode() const
330 {
331 return free_mu_mode_;
332 }
333
336 void Set_tiny_step_flag(bool flag)
337 {
338 tiny_step_flag_ = flag;
339 }
340 bool tiny_step_flag()
341 {
342 return tiny_step_flag_;
343 }
345
352 Number tol() const
353 {
354 DBG_ASSERT(initialize_called_);
355 return tol_;
356 }
364 void Set_tol(Number tol)
365 {
366 tol_ = tol;
367 }
369
374 Number cpu_time_start() const
375 {
376 DBG_ASSERT(cpu_time_start_ >= 0);
377 return cpu_time_start_;
378 }
379
382 Number info_regu_x() const
383 {
384 return info_regu_x_;
385 }
386 void Set_info_regu_x(Number regu_x)
387 {
388 info_regu_x_ = regu_x;
389 }
390 Number info_alpha_primal() const
391 {
392 return info_alpha_primal_;
393 }
394 void Set_info_alpha_primal(Number alpha_primal)
395 {
396 info_alpha_primal_ = alpha_primal;
397 }
398 char info_alpha_primal_char() const
399 {
400 return info_alpha_primal_char_;
401 }
402 void Set_info_alpha_primal_char(char info_alpha_primal_char)
403 {
404 info_alpha_primal_char_ = info_alpha_primal_char;
405 }
406 Number info_alpha_dual() const
407 {
408 return info_alpha_dual_;
409 }
410 void Set_info_alpha_dual(Number alpha_dual)
411 {
412 info_alpha_dual_ = alpha_dual;
413 }
414 Index info_ls_count() const
415 {
416 return info_ls_count_;
417 }
418 void Set_info_ls_count(Index ls_count)
419 {
420 info_ls_count_ = ls_count;
421 }
422 bool info_skip_output() const
423 {
424 return info_skip_output_;
425 }
426 void Append_info_string(const std::string& add_str)
427 {
428 info_string_ += add_str;
429 }
430 const std::string& info_string() const
431 {
432 return info_string_;
433 }
436 void Set_info_skip_output(bool info_skip_output)
437 {
438 info_skip_output_ = info_skip_output;
439 }
440
442 Number info_last_output()
443 {
444 return info_last_output_;
445 }
447 void Set_info_last_output(Number info_last_output)
448 {
449 info_last_output_ = info_last_output;
450 }
451
454 int info_iters_since_header()
455 {
456 return info_iters_since_header_;
457 }
460 void Inc_info_iters_since_header()
461 {
462 info_iters_since_header_++;
463 }
466 void Set_info_iters_since_header(int info_iters_since_header)
467 {
468 info_iters_since_header_ = info_iters_since_header;
469 }
470
472 void ResetInfo()
473 {
474 info_regu_x_ = 0;
475 info_alpha_primal_ = 0;
476 info_alpha_dual_ = 0.;
477 info_alpha_primal_char_ = ' ';
478 info_skip_output_ = false;
479 info_string_.erase();
480 }
482
484 TimingStatistics& TimingStats()
485 {
486 return timing_statistics_;
487 }
488
490 void ResetCpuStartTime()
491 {
492 cpu_time_start_ = CpuTime();
493 }
494
496 bool HaveAddData()
497 {
498 return IsValid(add_data_);
499 }
500
502 IpoptAdditionalData& AdditionalData()
503 {
504 return *add_data_;
505 }
506
508 void SetAddData(SmartPtr<IpoptAdditionalData> add_data)
509 {
510 DBG_ASSERT(!HaveAddData());
511 add_data_ = add_data;
512 }
513
515 void setPDPert(Number pd_pert_x, Number pd_pert_s,
516 Number pd_pert_c, Number pd_pert_d)
517 {
518 pd_pert_x_ = pd_pert_x;
519 pd_pert_s_ = pd_pert_s;
520 pd_pert_c_ = pd_pert_c;
521 pd_pert_d_ = pd_pert_d;
522 }
523
525 void getPDPert(Number& pd_pert_x, Number& pd_pert_s,
526 Number& pd_pert_c, Number& pd_pert_d)
527 {
528 pd_pert_x = pd_pert_x_;
529 pd_pert_s = pd_pert_s_;
530 pd_pert_c = pd_pert_c_;
531 pd_pert_d = pd_pert_d_;
532 }
533
536 static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions);
538
539 private:
544 SmartPtr<const IteratesVector> curr_;
545
548 SmartPtr<const IteratesVector> trial_;
549
551 SmartPtr<const SymMatrix> W_;
552
555 SmartPtr<const IteratesVector> delta_;
563 bool have_deltas_;
565
571 SmartPtr<const IteratesVector> delta_aff_;
578 bool have_affine_deltas_;
580
582 Index iter_count_;
583
585 Number curr_mu_;
586 bool mu_initialized_;
587
589 Number curr_tau_;
590 bool tau_initialized_;
591
594 bool initialize_called_;
595
598 bool have_prototypes_;
599
606 Number tol_;
608
612 bool free_mu_mode_;
614 bool tiny_step_flag_;
616
620 Number info_regu_x_;
622 Number info_alpha_primal_;
624 char info_alpha_primal_char_;
626 Number info_alpha_dual_;
628 Index info_ls_count_;
631 bool info_skip_output_;
633 std::string info_string_;
635 Number info_last_output_;
638 int info_iters_since_header_;
640
642 SmartPtr<IteratesVectorSpace> iterates_space_;
643
646 TimingStatistics timing_statistics_;
647
649 Number cpu_time_start_;
650
653 SmartPtr<IpoptAdditionalData> add_data_;
654
658 Number pd_pert_x_;
659 Number pd_pert_s_;
660 Number pd_pert_c_;
661 Number pd_pert_d_;
663
673 IpoptData(const IpoptData&);
674
676 void operator=(const IpoptData&);
678
679 #if COIN_IPOPT_CHECKLEVEL > 0
680
684 TaggedObject::Tag debug_curr_tag_;
685 TaggedObject::Tag debug_trial_tag_;
686 TaggedObject::Tag debug_delta_tag_;
687 TaggedObject::Tag debug_delta_aff_tag_;
688 TaggedObject::Tag debug_curr_tag_sum_;
689 TaggedObject::Tag debug_trial_tag_sum_;
690 TaggedObject::Tag debug_delta_tag_sum_;
691 TaggedObject::Tag debug_delta_aff_tag_sum_;
693 #endif
694
695 };
696
697 inline
698 SmartPtr<const IteratesVector> IpoptData::curr() const
699 {
700 DBG_ASSERT(IsNull(curr_) || (curr_->GetTag() == debug_curr_tag_ && curr_->GetTagSum() == debug_curr_tag_sum_) );
701
702 return curr_;
703 }
704
705 inline
706 SmartPtr<const IteratesVector> IpoptData::trial() const
707 {
708 DBG_ASSERT(IsNull(trial_) || (trial_->GetTag() == debug_trial_tag_ && trial_->GetTagSum() == debug_trial_tag_sum_) );
709
710 return trial_;
711 }
712
713 inline
714 SmartPtr<const IteratesVector> IpoptData::delta() const
715 {
716 DBG_ASSERT(IsNull(delta_) || (delta_->GetTag() == debug_delta_tag_ && delta_->GetTagSum() == debug_delta_tag_sum_) );
717
718 return delta_;
719 }
720
721 inline
722 SmartPtr<const IteratesVector> IpoptData::delta_aff() const
723 {
724 DBG_ASSERT(IsNull(delta_aff_) || (delta_aff_->GetTag() == debug_delta_aff_tag_ && delta_aff_->GetTagSum() == debug_delta_aff_tag_sum_) );
725
726 return delta_aff_;
727 }
728
729 inline
730 void IpoptData::CopyTrialToCurrent()
731 {
732 curr_ = trial_;
733 #if COIN_IPOPT_CHECKLEVEL > 0
734
735 if (IsValid(curr_)) {
736 debug_curr_tag_ = curr_->GetTag();
737 debug_curr_tag_sum_ = curr_->GetTagSum();
738 }
739 else {
740 debug_curr_tag_ = 0;
741 debug_curr_tag_sum_ = 0;
742 }
743 #endif
744
745 }
746
747 inline
748 void IpoptData::set_trial(SmartPtr<IteratesVector>& trial)
749 {
750 trial_ = ConstPtr(trial);
751
752 #if COIN_IPOPT_CHECKLEVEL > 0
753 // verify the correct space
754 DBG_ASSERT(trial_->OwnerSpace() == (VectorSpace*)GetRawPtr(iterates_space_));
755 if (IsValid(trial)) {
756 debug_trial_tag_ = trial->GetTag();
757 debug_trial_tag_sum_ = trial->GetTagSum();
758 }
759 else {
760 debug_trial_tag_ = 0;
761 debug_trial_tag_sum_ = 0;
762 }
763 #endif
764
765 trial = NULL;
766 }
767
768 inline
769 void IpoptData::set_delta(SmartPtr<IteratesVector>& delta)
770 {
771 delta_ = ConstPtr(delta);
772 #if COIN_IPOPT_CHECKLEVEL > 0
773
774 if (IsValid(delta)) {
775 debug_delta_tag_ = delta->GetTag();
776 debug_delta_tag_sum_ = delta->GetTagSum();
777 }
778 else {
779 debug_delta_tag_ = 0;
780 debug_delta_tag_sum_ = 0;
781 }
782 #endif
783
784 delta = NULL;
785 }
786
787 inline
788 void IpoptData::set_delta(SmartPtr<const IteratesVector>& delta)
789 {
790 delta_ = delta;
791 #if COIN_IPOPT_CHECKLEVEL > 0
792
793 if (IsValid(delta)) {
794 debug_delta_tag_ = delta->GetTag();
795 debug_delta_tag_sum_ = delta->GetTagSum();
796 }
797 else {
798 debug_delta_tag_ = 0;
799 debug_delta_tag_sum_ = 0;
800 }
801 #endif
802
803 delta = NULL;
804 }
805
806 inline
807 void IpoptData::set_delta_aff(SmartPtr<IteratesVector>& delta_aff)
808 {
809 delta_aff_ = ConstPtr(delta_aff);
810 #if COIN_IPOPT_CHECKLEVEL > 0
811
812 if (IsValid(delta_aff)) {
813 debug_delta_aff_tag_ = delta_aff->GetTag();
814 debug_delta_aff_tag_sum_ = delta_aff->GetTagSum();
815 }
816 else {
817 debug_delta_aff_tag_ = 0;
818 debug_delta_aff_tag_sum_ = delta_aff->GetTagSum();
819 }
820 #endif
821
822 delta_aff = NULL;
823 }
824
825 } // namespace Ipopt
826
827 #endif
Ipopt::IpoptData::info_string
const std::string & info_string() const
Definition: IpIpoptData.hpp:430
Ipopt::IsValid
bool IsValid(const SmartPtr< U > &smart_ptr)
Definition: IpSmartPtr.hpp:579
Ipopt::IpoptData::info_alpha_primal_char
char info_alpha_primal_char() const
Definition: IpIpoptData.hpp:398
Ipopt::IpoptData::SetTrialBoundMultipliersFromStep
void SetTrialBoundMultipliersFromStep(Number alpha, const Vector &delta_z_L, const Vector &delta_z_U, const Vector &delta_v_L, const Vector &delta_v_U)
Set the value of the trial values for the bound multipliers (z_L, z_U, v_L, v_U) from provided step w...
Ipopt::IpoptData::Set_info_regu_x
void Set_info_regu_x(Number regu_x)
Definition: IpIpoptData.hpp:386
Ipopt::IpoptData::set_delta
void set_delta(SmartPtr< IteratesVector > &delta)
Set the current delta - like the trial point, this method copies the pointer for efficiency (no copy ...
Definition: IpIpoptData.hpp:769
Ipopt::IpoptData::info_regu_x_
Number info_regu_x_
Size of regularization for the Hessian.
Definition: IpIpoptData.hpp:620
Ipopt::IpoptData::info_iters_since_header_
int info_iters_since_header_
number of iteration summaries actually printed since last summary header was printed ...
Definition: IpIpoptData.hpp:638
Ipopt::IpoptData::Append_info_string
void Append_info_string(const std::string &add_str)
Definition: IpIpoptData.hpp:426
Ipopt::IpoptData::getPDPert
void getPDPert(Number &pd_pert_x, Number &pd_pert_s, Number &pd_pert_c, Number &pd_pert_d)
Get the current perturbation of the primal-dual system.
Definition: IpIpoptData.hpp:525
Ipopt::IpoptData::curr_tau_
Number curr_tau_
current fraction to the boundary parameter
Definition: IpIpoptData.hpp:589
Ipopt::IpoptData::info_last_output
Number info_last_output()
gives time when the last summary output line was printed
Definition: IpIpoptData.hpp:442
Ipopt::IpoptData::Set_mu
void Set_mu(Number mu)
Definition: IpIpoptData.hpp:300
Ipopt::IpoptData::SetHaveAffineDeltas
void SetHaveAffineDeltas(bool have_affine_deltas)
Method for setting the HaveDeltas flag.
Definition: IpIpoptData.hpp:267
Ipopt::IpoptData::curr_mu_
Number curr_mu_
current barrier parameter
Definition: IpIpoptData.hpp:585
Ipopt::IpoptData::add_data_
SmartPtr< IpoptAdditionalData > add_data_
Object for the data specific for the Chen-Goldfarb penalty method algorithm.
Definition: IpIpoptData.hpp:653
Ipopt::IpoptData::ResetInfo
void ResetInfo()
Reset all info fields.
Definition: IpIpoptData.hpp:472
Ipopt::IpoptData::pd_pert_s_
Number pd_pert_s_
Definition: IpIpoptData.hpp:659
Ipopt::IpoptData::tiny_step_flag
bool tiny_step_flag()
Definition: IpIpoptData.hpp:340
Ipopt::IpoptData::info_alpha_dual
Number info_alpha_dual() const
Definition: IpIpoptData.hpp:406
Ipopt::IpoptData::Set_info_alpha_dual
void Set_info_alpha_dual(Number alpha_dual)
Definition: IpIpoptData.hpp:410
Ipopt::IpoptData::iter_count
Index iter_count() const
Definition: IpIpoptData.hpp:286
IpSymMatrix.hpp
Ipopt::IpoptData::cpu_time_start
Number cpu_time_start() const
Cpu time counter at the beginning of the optimization.
Definition: IpIpoptData.hpp:374
Ipopt::IpoptData::set_delta_aff
void set_delta_aff(SmartPtr< IteratesVector > &delta_aff)
Set the affine delta - like the trial point, this method copies the pointer for efficiency (no copy a...
Definition: IpIpoptData.hpp:807
IpIteratesVector.hpp
Ipopt::IpoptAdditionalData::IpoptAdditionalData
IpoptAdditionalData()
Default Constructor.
Definition: IpIpoptData.hpp:34
Ipopt::IpoptData::pd_pert_x_
Number pd_pert_x_
Definition: IpIpoptData.hpp:658
Ipopt::IpoptData::RegisterOptions
static void RegisterOptions(const SmartPtr< RegisteredOptions > &roptions)
Methods for IpoptType.
Ipopt::IpoptData::HaveAffineDeltas
bool HaveAffineDeltas() const
Returns true, if the affine-scaling step have been already computed for the current iteration...
Definition: IpIpoptData.hpp:257
Ipopt::IpoptData::Set_info_ls_count
void Set_info_ls_count(Index ls_count)
Definition: IpIpoptData.hpp:418
Ipopt::IpoptData::timing_statistics_
TimingStatistics timing_statistics_
TimingStatistics object collecting all Ipopt timing statistics.
Definition: IpIpoptData.hpp:646
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::IpoptData::Set_tiny_step_flag
void Set_tiny_step_flag(bool flag)
Setting the flag that indicates if a tiny step (below machine precision) has been detected...
Definition: IpIpoptData.hpp:336
Ipopt::Vector
Vector Base Class.
Definition: IpVector.hpp:47
Ipopt::IsNull
bool IsNull(const SmartPtr< U > &smart_ptr)
Definition: IpSmartPtr.hpp:585
Ipopt::IpoptData::Set_info_last_output
void Set_info_last_output(Number info_last_output)
sets time when the last summary output line was printed
Definition: IpIpoptData.hpp:447
Ipopt::IpoptData::Set_iter_count
void Set_iter_count(Index iter_count)
Definition: IpIpoptData.hpp:290
Ipopt::IpoptData::info_iters_since_header
int info_iters_since_header()
gives number of iteration summaries actually printed since last summary header was printed ...
Definition: IpIpoptData.hpp:454
Ipopt::IpoptData::cpu_time_start_
Number cpu_time_start_
CPU time counter at begin of optimization.
Definition: IpIpoptData.hpp:649
Ipopt::IpoptData::curr_mu
Number curr_mu() const
Definition: IpIpoptData.hpp:295
Ipopt::IpoptData::pd_pert_c_
Number pd_pert_c_
Definition: IpIpoptData.hpp:660
Ipopt::IpoptData::info_last_output_
Number info_last_output_
time when the last summary output line was printed
Definition: IpIpoptData.hpp:635
Ipopt::IpoptData::Set_info_alpha_primal_char
void Set_info_alpha_primal_char(char info_alpha_primal_char)
Definition: IpIpoptData.hpp:402
Ipopt::IpoptData::W
SmartPtr< const SymMatrix > W()
Hessian or Hessian approximation (do not hold on to it, it might be changed)
Definition: IpIpoptData.hpp:201
Ipopt::IpoptData::SetFreeMuMode
void SetFreeMuMode(bool free_mu_mode)
Definition: IpIpoptData.hpp:325
Ipopt::IpoptData::delta
SmartPtr< const IteratesVector > delta() const
ToDo: I may need to add versions of set_trial like the following, but I am not sure.
Definition: IpIpoptData.hpp:714
Ipopt::IpoptData::HaveAddData
bool HaveAddData()
Check if additional data has been set.
Definition: IpIpoptData.hpp:496
Ipopt::IpoptData::Set_W
void Set_W(SmartPtr< const SymMatrix > W)
Set Hessian approximation.
Definition: IpIpoptData.hpp:208
Ipopt::IpoptData::info_alpha_primal_
Number info_alpha_primal_
Primal step size.
Definition: IpIpoptData.hpp:622
Ipopt::IpoptData::~IpoptData
virtual ~IpoptData()
Default destructor.
Ipopt::IpoptData::pd_pert_d_
Number pd_pert_d_
Definition: IpIpoptData.hpp:661
Ipopt::IpoptData::TimingStats
TimingStatistics & TimingStats()
Return Timing Statistics Object.
Definition: IpIpoptData.hpp:484
Ipopt::IpoptData::trial
SmartPtr< const IteratesVector > trial() const
Get the current point in a copied container that is non-const.
Definition: IpIpoptData.hpp:706
Ipopt::IpoptData::curr_
SmartPtr< const IteratesVector > curr_
Main iteration variables (current iteration)
Definition: IpIpoptData.hpp:544
Ipopt::TimingStatistics
This class collects all timing statistics for Ipopt.
Definition: IpTimingStatistics.hpp:20
Ipopt::IpoptData::info_string_
std::string info_string_
any string of characters for the end of the output line
Definition: IpIpoptData.hpp:633
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::ReferencedObject
ReferencedObject class.
Definition: IpReferenced.hpp:174
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::IpoptData::info_skip_output_
bool info_skip_output_
true, if next summary output line should not be printed (eg after restoration phase.
Definition: IpIpoptData.hpp:631
Ipopt::IpoptAdditionalData::Initialize
virtual bool Initialize(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)=0
This method is called to initialize the global algorithmic parameters.
Ipopt::IpoptData::FreeMuMode
bool FreeMuMode() const
Definition: IpIpoptData.hpp:329
Ipopt::VectorSpace
VectorSpace base class, corresponding to the Vector base class.
Definition: IpVector.hpp:390
Ipopt::IpoptData::have_affine_deltas_
bool have_affine_deltas_
The following flag is set to true, if some other part of the algorithm (like the method for computing...
Definition: IpIpoptData.hpp:578
Ipopt::IpoptAdditionalData::operator=
void operator=(const IpoptAdditionalData &)
Overloaded Equals Operator.
Ipopt::IpoptData::delta_aff_
SmartPtr< const IteratesVector > delta_aff_
Definition: IpIpoptData.hpp:571
Ipopt::GetRawPtr
U * GetRawPtr(const SmartPtr< U > &smart_ptr)
Definition: IpSmartPtr.hpp:560
Ipopt::IpoptData::info_skip_output
bool info_skip_output() const
Definition: IpIpoptData.hpp:422
Ipopt::IpoptData::tol_
Number tol_
Overall convergence tolerance.
Definition: IpIpoptData.hpp:606
Ipopt::IpoptData::delta_
SmartPtr< const IteratesVector > delta_
Definition: IpIpoptData.hpp:555
Ipopt::IpoptData::mu_initialized_
bool mu_initialized_
Definition: IpIpoptData.hpp:586
Ipopt::IpoptAdditionalData::~IpoptAdditionalData
virtual ~IpoptAdditionalData()
Default destructor.
Definition: IpIpoptData.hpp:38
Ipopt::IpoptData::SetTrialPrimalVariablesFromStep
void SetTrialPrimalVariablesFromStep(Number alpha, const Vector &delta_x, const Vector &delta_s)
Set the values of the primal trial variables (x and s) from provided Step with step length alpha...
Ipopt::IpoptData::Initialize
bool Initialize(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
This method must be called to initialize the global algorithmic parameters.
Ipopt::IpoptData::have_prototypes_
bool have_prototypes_
flag for debugging whether we have already curr_ values available (from which new Vectors can be gene...
Definition: IpIpoptData.hpp:598
Ipopt::IpoptData::Inc_info_iters_since_header
void Inc_info_iters_since_header()
increases number of iteration summaries actually printed since last summary header was printed ...
Definition: IpIpoptData.hpp:460
Ipopt::CpuTime
Number CpuTime()
method determining CPU time
Ipopt::IpoptData::AdditionalData
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
Definition: IpIpoptData.hpp:502
Ipopt::IpoptData
Class to organize all the data required by the algorithm.
Definition: IpIpoptData.hpp:83
Ipopt::IpoptData::InitializeDataStructures
bool InitializeDataStructures(IpoptNLP &ip_nlp, bool want_x, bool want_y_c, bool want_y_d, bool want_z_L, bool want_z_U)
Initialize Data Structures.
IpTimingStatistics.hpp
Ipopt::IpoptData::curr_tau
Number curr_tau() const
Definition: IpIpoptData.hpp:310
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
Ipopt::IpoptAdditionalData::AcceptTrialPoint
virtual void AcceptTrialPoint()=0
Do whatever is necessary to accept a trial point as current iterate.
Ipopt::IpoptData::curr
SmartPtr< const IteratesVector > curr() const
Current point.
Definition: IpIpoptData.hpp:698
DBG_ASSERT
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
IpOptionsList.hpp
Ipopt::IpoptData::info_alpha_dual_
Number info_alpha_dual_
Dual step size.
Definition: IpIpoptData.hpp:626
Ipopt::IpoptData::tiny_step_flag_
bool tiny_step_flag_
flag indicating if a tiny step has been detected
Definition: IpIpoptData.hpp:614
Ipopt::IpoptData::SetHaveDeltas
void SetHaveDeltas(bool have_deltas)
Method for setting the HaveDeltas flag.
Definition: IpIpoptData.hpp:237
Ipopt::IpoptData::iterates_space_
SmartPtr< IteratesVectorSpace > iterates_space_
VectorSpace for all the iterates.
Definition: IpIpoptData.hpp:642
Ipopt::TaggedObject::Tag
unsigned int Tag
Type for the Tag values.
Definition: IpTaggedObject.hpp:80
Ipopt::IpoptData::IpoptData
IpoptData(SmartPtr< IpoptAdditionalData > add_data=NULL, Number cpu_time_start=-1.)
Constructor.
Ipopt::IpoptData::Set_info_skip_output
void Set_info_skip_output(bool info_skip_output)
Set this to true, if the next time when output is written, the summary line should not be printed...
Definition: IpIpoptData.hpp:436
Ipopt::ConstPtr
SmartPtr< const U > ConstPtr(const SmartPtr< U > &smart_ptr)
Definition: IpSmartPtr.hpp:572
Ipopt::IpoptData::info_ls_count
Index info_ls_count() const
Definition: IpIpoptData.hpp:414
Ipopt::IpoptData::iter_count_
Index iter_count_
iteration count
Definition: IpIpoptData.hpp:582
Ipopt::IpoptData::delta_aff
SmartPtr< const IteratesVector > delta_aff() const
Affine Delta.
Definition: IpIpoptData.hpp:722
Ipopt::IpoptData::ResetCpuStartTime
void ResetCpuStartTime()
Resetting CPU Start Time.
Definition: IpIpoptData.hpp:490
Ipopt::IpoptData::SetTrialEqMultipliersFromStep
void SetTrialEqMultipliersFromStep(Number alpha, const Vector &delta_y_c, const Vector &delta_y_d)
Set the values of the trial values for the equality constraint multipliers (y_c and y_d) from provide...
Ipopt::IpoptData::Set_info_iters_since_header
void Set_info_iters_since_header(int info_iters_since_header)
sets number of iteration summaries actually printed since last summary header was printed ...
Definition: IpIpoptData.hpp:466
Ipopt::IpoptData::Set_tol
void Set_tol(Number tol)
Set a new value for the tolerance.
Definition: IpIpoptData.hpp:364
Ipopt::Journalist
Class responsible for all message output.
Definition: IpJournalist.hpp:134
Ipopt::IpoptData::free_mu_mode_
bool free_mu_mode_
flag indicating whether the algorithm is in the free mu mode
Definition: IpIpoptData.hpp:612
Ipopt::IpoptData::info_alpha_primal_char_
char info_alpha_primal_char_
Info character for primal step size.
Definition: IpIpoptData.hpp:624
Ipopt::IpoptData::tau_initialized_
bool tau_initialized_
Definition: IpIpoptData.hpp:590
Ipopt::IpoptData::TauInitialized
bool TauInitialized() const
Definition: IpIpoptData.hpp:320
Ipopt::IpoptData::operator=
void operator=(const IpoptData &)
Overloaded Equals Operator.
Ipopt::IpoptData::W_
SmartPtr< const SymMatrix > W_
Hessian (approximation) - might be changed elsewhere!
Definition: IpIpoptData.hpp:551
Ipopt::IpoptData::initialize_called_
bool initialize_called_
flag indicating if Initialize method has been called (for debugging)
Definition: IpIpoptData.hpp:594
Ipopt::IpoptData::MuInitialized
bool MuInitialized() const
Definition: IpIpoptData.hpp:305
Ipopt::IpoptData::Set_tau
void Set_tau(Number tau)
Definition: IpIpoptData.hpp:315
Ipopt::IpoptData::AcceptTrialPoint
void AcceptTrialPoint()
Set the current iterate values from the trial values.
Ipopt::IpoptData::SetAddData
void SetAddData(SmartPtr< IpoptAdditionalData > add_data)
Set a new pointer for additional Ipopt data.
Definition: IpIpoptData.hpp:508
Ipopt::IpoptData::setPDPert
void setPDPert(Number pd_pert_x, Number pd_pert_s, Number pd_pert_c, Number pd_pert_d)
Set the perturbation of the primal-dual system.
Definition: IpIpoptData.hpp:515
Ipopt::IpoptNLP
This is the abstract base class for classes that map the traditional NLP into something that is more ...
Definition: IpIpoptNLP.hpp:28
Ipopt::IpoptAdditionalData
Base class for additional data that is special to a particular type of algorithm, such as the CG pena...
Definition: IpIpoptData.hpp:28
Ipopt::IpoptData::have_deltas_
bool have_deltas_
The following flag is set to true, if some other part of the algorithm (like the method for computing...
Definition: IpIpoptData.hpp:563
Ipopt::IpoptData::info_regu_x
Number info_regu_x() const
Definition: IpIpoptData.hpp:382
IpRegOptions.hpp
Ipopt::IpoptAdditionalData::InitializeDataStructures
virtual bool InitializeDataStructures()=0
Initialize Data Structures at the beginning.
Ipopt::IpoptData::info_alpha_primal
Number info_alpha_primal() const
Definition: IpIpoptData.hpp:390
Ipopt::IpoptData::HaveDeltas
bool HaveDeltas() const
Returns true, if the primal-dual step have been already computed for the current iteration.
Definition: IpIpoptData.hpp:227
Ipopt::IpoptData::Set_info_alpha_primal
void Set_info_alpha_primal(Number alpha_primal)
Definition: IpIpoptData.hpp:394
Ipopt::IpoptData::set_trial
void set_trial(SmartPtr< IteratesVector > &trial)
Get Trial point in a copied container that is non-const.
Definition: IpIpoptData.hpp:748
Ipopt::IpoptData::tol
Number tol() const
Overall convergence tolerance.
Definition: IpIpoptData.hpp:352
Ipopt::IpoptData::CopyTrialToCurrent
void CopyTrialToCurrent()
Copy the trial values to the current values.
Definition: IpIpoptData.hpp:730
Ipopt::IpoptData::trial_
SmartPtr< const IteratesVector > trial_
Main iteration variables (trial calculations)
Definition: IpIpoptData.hpp:548
Ipopt::IpoptData::info_ls_count_
Index info_ls_count_
Number of backtracking trial steps.
Definition: IpIpoptData.hpp:628