76 template<
typename MatObj,
83 bool solve(
const MatrixBase<MatObj> & Q,
84 const MatrixBase<VecObj> & c,
85 const MatrixBase<MatEq> & Aeq,
86 const MatrixBase<VecEq> & beq,
87 const MatrixBase<MatIneq> & Aineq,
88 const MatrixBase<VecIneq> & bineq,
89 const MatrixBase<VecVar> & xl,
90 const MatrixBase<VecVar> & xu,
91 bool isDecomp =
false,
99 template<
typename MatObj,
107 const MatrixBase<VecObj> & c,
108 const MatrixBase<MatEq> & Aeq,
109 const MatrixBase<VecEq> & beq,
110 const MatrixBase<MatIneq> & Aineq,
111 const MatrixBase<VecIneq> & bineq,
112 const MatrixBase<VecVar> & xl,
113 const MatrixBase<VecVar> & xu,
117 assert(Aeq.rows() == beq.rows());
118 assert(Aeq.cols() == A_.cols());
119 assert(Aineq.rows() == bineq.rows());
120 assert(Aineq.cols() == A_.cols());
122 int nreq = int(beq.rows());
123 int nrineq = int(bineq.rows());
125 A_.topRows(nreq) = -Aeq;
126 A_.middleRows(nreq, nrineq) = -Aineq;
129 B_.segment(nreq, nrineq) = bineq;
131 return QLDDirect::solve(Q, c, A_.topRows(nreq + nrineq), B_.head(nreq + nrineq), xl, xu, nreq, isDecomp, eps);
A lightweight wrapper of the ql algorithm by Professor Schittkowski. It handles the workspace memory ...
Definition: QLDDirect.h:24
bool solve(const MatrixBase< MatObj > &Q, const MatrixBase< VecObj > &c, const MatrixBase< MatConstr > &A, const MatrixBase< VecConstr > &b, const MatrixBase< VecVar > &xl, const MatrixBase< VecVar > &xu, int nreq, bool isDecomp=false, double eps=1e-12)
Definition: QLDDirect.h:156
EIGEN_QLD_API bool verbose() const
A wrapper of the ql algorithm by Professor Schittkowski, with some convention changes on the way the ...
Definition: QLD.h:16
EIGEN_QLD_API const VectorXd & multipliers() const
bool solve(const MatrixBase< MatObj > &Q, const MatrixBase< VecObj > &c, const MatrixBase< MatEq > &Aeq, const MatrixBase< VecEq > &beq, const MatrixBase< MatIneq > &Aineq, const MatrixBase< VecIneq > &bineq, const MatrixBase< VecVar > &xl, const MatrixBase< VecVar > &xu, bool isDecomp=false, double eps=1e-12)
Definition: QLD.h:106
EIGEN_QLD_API QLD(int nrvar, int nreq, int nrineq, int ldq=-1, bool verbose=false)
EIGEN_QLD_API void problem(int nrvar, int nreq, int nrineq, int ldq=-1)
#define EIGEN_QLD_API
Definition: eigen_qld_api.h:18