MCPcopy Create free account
hub / github.com/TinyMPC/TinyMPC / tiny_set_cone_constraints

Function tiny_set_cone_constraints

src/tinympc/tiny_api.cpp:176–208  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

174}
175
176int tiny_set_cone_constraints(TinySolver* solver,
177 VectorXi Acx, VectorXi qcx, tinyVector cx,
178 VectorXi Acu, VectorXi qcu, tinyVector cu) {
179 if (!solver) {
180 std::cout << "Error in tiny_set_cone_constraints: solver is nullptr" << std::endl;
181 return 1;
182 }
183
184 // Make sure all cone constraint vector sizes are self-consistent
185 int num_state_cones = Acx.rows();
186 int num_input_cones = Acu.rows();
187 int status = 0;
188 status |= check_dimension("Cone state size (qcx)", "rows", qcx.rows(), num_state_cones);
189 status |= check_dimension("Cone mu value for state (cx)", "rows", cx.rows(), num_state_cones);
190 status |= check_dimension("Cone input size (qcu)", "rows", qcu.rows(), num_input_cones);
191 status |= check_dimension("Cone mu value for input (cu)", "rows", cu.rows(), num_input_cones);
192 if (status) {
193 return status;
194 }
195
196 solver->work->numStateCones = num_state_cones;
197 solver->work->numInputCones = num_input_cones;
198
199 solver->work->Acx = Acx;
200 solver->work->qcx = qcx;
201 solver->work->cx = cx;
202
203 solver->work->Acu = Acu;
204 solver->work->qcu = qcu;
205 solver->work->cu = cu;
206
207 return 0;
208}
209
210int tiny_set_linear_constraints(TinySolver* solver,
211 tinyMatrix Alin_x, tinyVector blin_x,

Callers 1

mainFunction · 0.85

Calls 2

check_dimensionFunction · 0.85
rowsMethod · 0.45

Tested by

no test coverage detected