| 174 | } |
| 175 | |
| 176 | int 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 | |
| 210 | int tiny_set_linear_constraints(TinySolver* solver, |
| 211 | tinyMatrix Alin_x, tinyVector blin_x, |
no test coverage detected