1 #ifndef MATH_INEQUALITY_CONSTRAINT_H 2 #define MATH_INEQUALITY_CONSTRAINT_H 6 #include <KrisLibrary/utils/DirtyData.h> 24 virtual int NumDimensions()
const;
27 virtual Real Margin(
const Vector& x,
int& minConstraint);
28 virtual bool Satisfies(
const Vector& x,Real d=Zero);
29 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero);
37 virtual void LineSearch_i(
const Vector& x0,
const Vector& dx,Real& u,
int i);
38 virtual void LineSearch_j(
const Vector& x0,
int j,Real& u);
43 virtual bool Push_i(
Vector&,
int i,Real d);
49 virtual std::string Label()
const;
50 virtual std::string Label(
int i)
const;
51 virtual int NumDimensions()
const;
52 virtual void PreEval(
const Vector& x);
54 virtual Real Eval_i(
const Vector& x,
int i);
56 virtual void Jacobian_i(
const Vector& x,
int i,
Vector& Ji);
58 virtual void Hessian_i(
const Vector& x,
int i,
Matrix& Hi);
59 virtual Real Margin(
const Vector& x,
int& minConstraint);
60 virtual bool Satisfies(
const Vector& x,Real d=Zero);
61 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero);
63 virtual void LineSearch_i(
const Vector& x0,
const Vector& dx,Real& u,
int i);
65 virtual bool Push_i(
Vector& x,
int i,Real d);
67 int GetConstraint(
int &i)
const;
69 std::vector<InequalityConstraint*> constraints;
76 virtual std::string Label()
const {
return "<x within limits>"; }
77 virtual int NumDimensions()
const;
79 virtual Real Eval_i(
const Vector& x,
int i);
81 virtual void Jacobian_i(
const Vector& x,
int i,
Vector& Ji);
82 virtual void Hessian_i(
const Vector& x,
int i,
Matrix& Hi);
84 virtual Real Margin(
const Vector& x,
int& minConstraint);
85 virtual bool Satisfies(
const Vector& x,Real d=Zero);
86 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero);
88 virtual void LineSearch_i(
const Vector& x0,
const Vector& dx,Real& u,
int i);
89 virtual void LineSearch_j(
const Vector& x0,
int j,Real& u);
91 virtual bool Push_i(
Vector& x,
int i,Real d);
103 virtual std::string Label()
const {
return "<Ax>=b>"; }
104 virtual int NumDimensions()
const {
return A.m; }
106 virtual Real Eval_i(
const Vector& x,
int i);
108 virtual void Jacobian_i(
const Vector& x,
int i,
Vector& Ji);
109 virtual Real Jacobian_ij(
const Vector& x,
int i,
int j);
110 virtual void Hessian_i(
const Vector& x,
int i,
Matrix& Hi);
112 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero);
115 virtual void LineSearch_i(
const Vector& x0,
const Vector& dx,Real& u,
int i);
130 virtual std::string Label()
const {
return f.Label(); }
131 virtual std::string Label(
int i)
const {
return f.Label(i); }
132 virtual int NumDimensions()
const {
return f.NumDimensions(); }
133 virtual void PreEval(
const Vector& x) { f.PreEval(x); }
134 virtual void Eval(
const Vector& x,
Vector& v) { f.Eval(x,v); }
135 virtual Real Eval_i(
const Vector& x,
int i) {
return f.Eval_i(x,i); }
136 virtual void Jacobian(
const Vector& x,
Matrix& J) { f.Jacobian(x,J); }
137 virtual void Jacobian_i(
const Vector& x,
int i,
Vector& Ji) { f.Jacobian_i(x,i,Ji); }
138 virtual void Hessian_i(
const Vector& x,
int i,
Matrix& Hi) { f.Hessian_i(x,i,Hi); }
139 virtual void DirectionalDeriv(
const Vector& x,
const Vector& h,
Vector& v) {f.DirectionalDeriv(x,h,v); }
141 virtual Real Margin(
const Vector& x,
int& minConstraint) {
return f.Margin(x,minConstraint); }
142 virtual bool Satisfies(
const Vector& x,Real d=Zero) {
return f.Satisfies(x,d); }
143 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero) {
return f.Satisfies_i(x,i,d); }
145 virtual void LineSearch_i(
const Vector& x0,
const Vector& dx,Real& u,
int i) { f.LineSearch_i(x0,dx,u,i); }
146 virtual void LineSearch_j(
const Vector& x0,
int j,Real& u) { f.LineSearch_j(x0,j,u); }
149 virtual bool Push_i(
Vector& x,
int i,Real d) {
return f.Push_i(x,i,d); }
Abstract base classes for function interfaces.
A function from R^n to R^m.
Definition: function.h:134
Definition: InequalityConstraint.h:72
virtual bool Push(Vector &x, Real d)
Definition: InequalityConstraint.h:148
constraint represented as A*x >= b i.e. constraint value is A*x-b
Definition: InequalityConstraint.h:98
virtual bool Push(Vector &x, Real d)
Definition: InequalityConstraint.cpp:150
virtual void LineSearch(const Vector &x0, const Vector &dx, Real &u)
Definition: InequalityConstraint.h:144
A class that makes it easier to construct "plugin" classes to alter constraint behavior.
Definition: InequalityConstraint.h:125
Definition: InequalityConstraint.h:46
Contains all definitions in the Math package.
Definition: WorkspaceBound.h:12
A vector field with constraints s.t. ci(x) >= 0.
Definition: InequalityConstraint.h:20
virtual void LineSearch(const Vector &x0, const Vector &dx, Real &u)
Definition: InequalityConstraint.cpp:56