Ipopt Documentation  
IpPiecewisePenalty.hpp
Go to the documentation of this file.
1 // Copyright (C) 2007 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors: Lifeng Chen/Zaiwen Wen Columbia Univ
6 
7 #ifndef __IPPIECEWISEPENALTY_HPP__
8 #define __IPPIECEWISEPENALTY_HPP__
9 
10 #include "IpJournalist.hpp"
11 #include "IpDebug.hpp"
12 #include "IpOptionsList.hpp"
15 #include "IpPDSystemSolver.hpp"
16 #include <list>
17 #include <vector>
18 
19 namespace Ipopt
20 {
21 
23 typedef struct PiecewisePenEntry
24 {
29 
37 {
38 public:
43  Index dim);
46  {
47  // @todo figure out if that here is necessary
48  // Clear();
49  }
51 
53  // Initialize Piecewise Penalty list
55  {
56  return PiecewisePenalty_list_.empty();
57  }
58 
60  Number pen_r,
61  Number barrier_obj,
62  Number infeasi)
63  {
64  AddEntry(pen_r, barrier_obj, infeasi);
65  }
66 
72  bool Acceptable(
73  Number Fzconst,
74  Number Fzlin
75  );
76 
79 
81  void UpdateEntry(
82  Number barrier_obj,
83  Number infeasi );
84 
86  void AddEntry(
87  Number pen_r,
88  Number barrier_obj,
89  Number infeasi
90  )
91  {
92  PiecewisePenEntry TmpEntry;
94  {
95  TmpEntry.pen_r = 0.0;
96  }
97  else
98  {
99  TmpEntry.pen_r = pen_r;
100  }
101  TmpEntry.barrier_obj = barrier_obj;
102  TmpEntry.infeasi = infeasi;
103  PiecewisePenalty_list_.push_back(TmpEntry);
104  }
105 
107  void ResetList(
108  Number pen_r,
109  Number barrier_obj,
110  Number infeasi
111  )
112  {
113  PiecewisePenalty_list_.clear();
114  AddEntry(pen_r, barrier_obj, infeasi);
115  }
116 
118 
120  void Clear()
121  {
122  PiecewisePenalty_list_.clear();
123  }
124 
126  void Print(
127  const Journalist& jnlst
128  );
129 
130 private:
145  const PiecewisePenalty&
146  );
147 
149  void operator=(
150  const PiecewisePenalty&
151  );
153 
156 
159 
162 
164  std::vector<PiecewisePenEntry> PiecewisePenalty_list_;
165 };
166 
167 } // namespace Ipopt
168 
169 #endif
Ipopt::PiecewisePenEntry::pen_r
Number pen_r
Definition: IpPiecewisePenalty.hpp:25
Ipopt::PiecewisePenEntry::barrier_obj
Number barrier_obj
Definition: IpPiecewisePenalty.hpp:26
Ipopt::PiecewisePenalty::IsPiecewisePenaltyListEmpty
bool IsPiecewisePenaltyListEmpty()
Definition: IpPiecewisePenalty.hpp:54
Ipopt::PiecewisePenalty::min_piece_penalty_
Number min_piece_penalty_
The min penalty value for the piecewise penalty list.
Definition: IpPiecewisePenalty.hpp:158
Ipopt::PiecewisePenalty::UpdateEntry
void UpdateEntry(Number barrier_obj, Number infeasi)
Update Piecewise Penalty entry for given coordinates.
Ipopt::PiecewisePenalty::Clear
void Clear()
Delete all Piecewise Penalty entries.
Definition: IpPiecewisePenalty.hpp:120
Ipopt::PiecewisePenalty::PiecewisePenalty_list_
std::vector< PiecewisePenEntry > PiecewisePenalty_list_
vector storing the Piecewise Penalty entries
Definition: IpPiecewisePenalty.hpp:164
Ipopt::PiecewisePenalty::max_piece_number_
Index max_piece_number_
The max number of the break points in the piecewise penalty list.
Definition: IpPiecewisePenalty.hpp:161
IpOptionsList.hpp
Ipopt::PiecewisePenEntry
struct for one Piecewise Penalty entry.
Definition: IpPiecewisePenalty.hpp:23
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:13
Ipopt::PiecewisePenalty::dim_
Index dim_
Dimension of the Piecewise Penalty (number of coordinates per entry)
Definition: IpPiecewisePenalty.hpp:155
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
IpJournalist.hpp
Ipopt::PiecewisePenalty::~PiecewisePenalty
~PiecewisePenalty()
Destructor.
Definition: IpPiecewisePenalty.hpp:45
Ipopt::PiecewisePenalty::InitPiecewisePenaltyList
void InitPiecewisePenaltyList(Number pen_r, Number barrier_obj, Number infeasi)
Definition: IpPiecewisePenalty.hpp:59
IpIpoptCalculatedQuantities.hpp
IpBacktrackingLSAcceptor.hpp
Ipopt::PiecewisePenEntry::infeasi
Number infeasi
Definition: IpPiecewisePenalty.hpp:27
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
Ipopt::PiecewisePenalty::Print
void Print(const Journalist &jnlst)
Print current Piecewise Penalty entries.
Ipopt::PiecewisePenalty::BiggestBarr
Number BiggestBarr()
Get the value of the biggest barrier function so far.
Ipopt::PiecewisePenalty::PiecewisePenalty
PiecewisePenalty()
Default Constructor.
IpPDSystemSolver.hpp
Ipopt::PiecewisePenEntry
struct Ipopt::PiecewisePenEntry PiecewisePenEntry
struct for one Piecewise Penalty entry.
Ipopt::PiecewisePenalty
Class for the Piecewise Penalty.
Definition: IpPiecewisePenalty.hpp:36
Ipopt::Journalist
Class responsible for all message output.
Definition: IpJournalist.hpp:116
Ipopt::PiecewisePenalty::Acceptable
bool Acceptable(Number Fzconst, Number Fzlin)
Check acceptability of given coordinates with respect to the Piecewise Penalty.
Ipopt::PiecewisePenalty::AddEntry
void AddEntry(Number pen_r, Number barrier_obj, Number infeasi)
Add a entry to the list.
Definition: IpPiecewisePenalty.hpp:86
Ipopt::PiecewisePenalty::ResetList
void ResetList(Number pen_r, Number barrier_obj, Number infeasi)
Clear and reset the piecewise penalty list.
Definition: IpPiecewisePenalty.hpp:107
Ipopt::PiecewisePenalty::operator=
void operator=(const PiecewisePenalty &)
Default Assignment Operator.
IpDebug.hpp