42 #ifndef QP_SCHUR_CONSTRAINTS_RELAXED_STD_H
43 #define QP_SCHUR_CONSTRAINTS_RELAXED_STD_H
47 #include "ConstrainedOptPack_QPSchur.hpp"
48 #include "AbstractLinAlgPack_MatrixOp.hpp"
49 #include "AbstractLinAlgPack_VectorSpaceBlocked.hpp"
51 namespace ConstrainedOptPack {
52 namespace QPSchurPack {
124 const VectorSpace::space_ptr_t &space_d_eta
150 const MatrixOp*
E()
const
156 const Vector*
b()
const
159 const MatrixOp*
F()
const
165 const Vector*
f()
const
168 const GenPermMatrixSlice&
P_u()
const
192 ,
const Vector& vs_rhs2, value_type beta
196 VectorMutable* vs_lhs, value_type alpha
199 ,
const SpVectorSlice& sv_rhs3, value_type beta
205 typedef std::vector<size_type> row_i_t;
206 typedef std::vector<size_type> col_j_t;
216 GenPermMatrixSlice P_u_;
219 VectorSpace::space_ptr_t space_cols_;
220 VectorSpaceBlocked space_rows_;
225 ADD_BOUNDS_THEN_MOST_VIOLATED_INEQUALITY
226 ,ADD_BOUNDS_THEN_FIRST_VIOLATED_INEQUALITY
227 ,ADD_MOST_VIOLATED_BOUNDS_AND_INEQUALITY
296 const VectorSpace::space_ptr_t &space_d_eta
312 ,value_type bounds_tol = 1e-10
313 ,value_type inequality_tol = 1e-10
314 ,value_type equality_tol = 1e-10
337 const MatrixOp&
A_bar()
const;
383 const DVectorSlice& x,
size_type* j_viol, value_type* constr_val
384 ,value_type* viol_bnd_val, value_type* norm_2_constr, EBounds* bnd,
bool* can_ignore
398 typedef std::list<size_type> passed_over_equalities_t;
403 MatrixConstraints A_bar_;
412 mutable value_type last_added_bound_;
413 mutable EBounds last_added_bound_type_;
418 mutable passed_over_equalities_t passed_over_equalities_;
428 void cache_last_added(
429 size_type last_added_j, value_type last_added_bound
430 ,EBounds last_added_bound_type
438 #endif // QP_SCHUR_CONSTRAINTS_RELAXED_STD_H
const MatrixConstraints & A_bar_relaxed() const
size_type m_breve() const
void Vp_StPtMtV(VectorMutable *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const SpVectorSlice &sv_rhs3, value_type beta) const
value_type get_bnd(size_type j, EBounds bnd) const
void pick_violated(const DVectorSlice &x, size_type *j_viol, value_type *constr_val, value_type *viol_bnd_val, value_type *norm_2_constr, EBounds *bnd, bool *can_ignore) const
Here the next violated constraint to add to the active set is selected.
const VectorSpace & space_rows() const
BLAS_Cpp::Transp trans_E() const
MatrixOp & operator=(const MatrixOp &m)
void initialize(const VectorSpace::space_ptr_t &space_d_eta, const size_type m_in, const size_type m_eq, const MatrixOp *E, BLAS_Cpp::Transp trans_E, const Vector *b, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const Vector *f, size_type m_undecomp, const size_type j_f_undecomp[])
Initialize.
const VectorSpace & space_cols() const
const MatrixOp & A_bar() const
Represents the constraints matrix.
BLAS_Cpp::Transp trans_F() const
const GenPermMatrixSlice & P_u() const
EPickPolicy pick_violated_policy() const
const MatrixOp * E() const
void Vp_StMtV(VectorMutable *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &vs_rhs2, value_type beta) const
ConstraintsRelaxedStd()
Constructs to uninitialized.
void initialize(const VectorSpace::space_ptr_t &space_d_eta, value_type etaL, const Vector *dL, const Vector *dU, const MatrixOp *E, BLAS_Cpp::Transp trans_E, const Vector *b, const Vector *eL, const Vector *eU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const Vector *f, size_type m_undecomp, const size_type j_f_undecomp[], VectorMutable *Ed, bool check_F=true, value_type bounds_tol=1e-10, value_type inequality_tol=1e-10, value_type equality_tol=1e-10)
Initialize constriants.
Constraints subclass that is used to represent generic varaible bounds, and general inequality and eq...
const MatrixOp * F() const
STANDARD_MEMBER_COMPOSITION_MEMBERS(value_type, bounds_tol)
<<std comp>="">> members for feasibility tolerance for the bound constriants.
MatrixConstraints()
Construct to unitinitialized.
Represents the extra constraints in the QP to be satisfied by the schur complement QP solver QPSchur ...