qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
qrecipe_data.hpp
1 /*
2  * This file is part of qpOASES.
3  *
4  * qpOASES -- An Implementation of the Online Active Set Strategy.
5  * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka,
6  * Christian Kirches et al. All rights reserved.
7  *
8  * qpOASES is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * qpOASES is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  * See the GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with qpOASES; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  */
23 
24 
36 
37 
38 
39 const real_t Inf = INFTY;
40 
41 sparse_int_t H_jc[] = { 0, 4, 8, 12, 16, 20, 20, 20, 20, 20, 20,
42  24, 28, 32, 36, 40, 40, 40, 40, 40, 40,
43  44, 48, 52, 56, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
44  64, 68, 72, 76, 80, 80, 80, 80, 80, 80,
45  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
46  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
47  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
48  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
49  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
50  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
51  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
52  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
53  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
54  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
55  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
56  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
57  80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
58  80, 80, 80, 80, 80, 80 };
59 
60 sparse_int_t H_ir[] = {
61  0, 10, 20, 34, 1, 11, 21, 35, 2, 12, 22, 36, 3, 13, 23, 37, 4, 14, 24, 38,
62  0, 10, 20, 34, 1, 11, 21, 35, 2, 12, 22, 36, 3, 13, 23, 37, 4, 14, 24, 38,
63  0, 10, 20, 34, 1, 11, 21, 35, 2, 12, 22, 36, 3, 13, 23, 37, 4, 14, 24, 38,
64  0, 10, 20, 34, 1, 11, 21, 35, 2, 12, 22, 36, 3, 13, 23, 37, 4, 14, 24, 38};
65 
66 real_t H_val[] = {10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1,
67  1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 1,
68  10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 1, 10, 1,
69  1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10};
70 
71 sparse_int_t A_jc[] = {
72  0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
73  130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270,
74  280, 290, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
75  313, 314, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331,
76  333, 335, 337, 339, 341, 343, 345, 347, 349, 351, 353, 355, 357, 359, 361,
77  363, 365, 367, 369, 371, 373, 383, 393, 403, 405, 408, 410, 413, 415, 418,
78  420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448,
79  450, 452, 454, 456, 458, 460, 462, 472, 482, 492, 494, 497, 499, 502, 504,
80  507, 509, 511, 513, 515, 517, 519, 521, 523, 525, 527, 529, 531, 533, 535,
81  537, 539, 541, 543, 545, 547, 549, 551, 561, 571, 581, 583, 586, 588, 591,
82  593, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
83  610, 611, 612, 613, 614, 615, 616, 617, 618, 628, 638, 648, 650, 653, 655,
84  658, 660, 663};
85 
86 sparse_int_t A_ir[] = {0, 14, 35, 36, 71, 72, 85, 86, 87, 88, 1, 14, 35, 36, 71, 72, 85,
87  86, 87, 88, 2, 14, 35, 36, 71, 72, 85, 86, 87, 88, 3, 14, 35, 36, 71, 72,
88  85, 86, 87, 88, 4, 14, 35, 36, 71, 72, 85, 86, 87, 88, 5, 14, 35, 36, 71,
89  72, 85, 86, 87, 88, 6, 14, 35, 36, 71, 72, 85, 86, 87, 88, 7, 14, 35, 36,
90  71, 72, 85, 86, 87, 88, 8, 14, 35, 36, 71, 72, 85, 86, 87, 88, 9, 14, 35,
91  36, 71, 72, 85, 86, 87, 88, 0, 15, 37, 38, 69, 70, 79, 80, 81, 82, 1, 15,
92  37, 38, 69, 70, 79, 80, 81, 82, 2, 15, 37, 38, 69, 70, 79, 80, 81, 82, 3,
93  15, 37, 38, 69, 70, 79, 80, 81, 82, 4, 15, 37, 38, 69, 70, 79, 80, 81, 82,
94  5, 15, 37, 38, 69, 70, 79, 80, 81, 82, 6, 15, 37, 38, 69, 70, 79, 80, 81,
95  82, 7, 15, 37, 38, 69, 70, 79, 80, 81, 82, 8, 15, 37, 38, 69, 70, 79, 80,
96  81, 82, 9, 15, 37, 38, 69, 70, 79, 80, 81, 82, 0, 16, 39, 40, 67, 68, 73,
97  74, 75, 76, 1, 16, 39, 40, 67, 68, 73, 74, 75, 76, 2, 16, 39, 40, 67, 68,
98  73, 74, 75, 76, 3, 16, 39, 40, 67, 68, 73, 74, 75, 76, 4, 16, 39, 40, 67,
99  68, 73, 74, 75, 76, 5, 16, 39, 40, 67, 68, 73, 74, 75, 76, 6, 16, 39, 40,
100  67, 68, 73, 74, 75, 76, 7, 16, 39, 40, 67, 68, 73, 74, 75, 76, 8, 16, 39,
101  40, 67, 68, 73, 74, 75, 76, 9, 16, 39, 40, 67, 68, 73, 74, 75, 76, 10, 11,
102  12, 13, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 47, 48, 49, 50, 51,
103  52, 53, 54, 55, 56, 57, 47, 58, 48, 59, 49, 60, 50, 61, 51, 62, 52, 63, 53,
104  64, 54, 65, 55, 66, 46, 56, 45, 57, 47, 58, 48, 59, 49, 60, 50, 61, 51, 62,
105  52, 63, 53, 64, 54, 65, 55, 66, 46, 56, 45, 57, 10, 14, 71, 72, 85, 86, 87,
106  88, 89, 90, 11, 15, 69, 70, 79, 80, 81, 82, 83, 84, 12, 16, 67, 68, 73, 74,
107  75, 76, 77, 78, 35, 90, 36, 89, 90, 37, 84, 38, 83, 84, 39, 78, 40, 77, 78,
108  44, 58, 43, 59, 42, 60, 41, 61, 34, 62, 33, 63, 32, 64, 31, 65, 30, 66, 29,
109  46, 28, 45, 44, 58, 43, 59, 42, 60, 41, 61, 34, 62, 33, 63, 32, 64, 31, 65,
110  30, 66, 29, 46, 28, 45, 10, 14, 71, 72, 85, 86, 87, 88, 89, 90, 11, 15, 69,
111  70, 79, 80, 81, 82, 83, 84, 12, 16, 67, 68, 73, 74, 75, 76, 77, 78, 35, 90,
112  36, 89, 90, 37, 84, 38, 83, 84, 39, 78, 40, 77, 78, 27, 44, 26, 43, 25, 42,
113  24, 41, 23, 34, 22, 33, 21, 32, 20, 31, 19, 30, 18, 29, 17, 28, 27, 44, 26,
114  43, 25, 42, 24, 41, 23, 34, 22, 33, 21, 32, 20, 31, 19, 30, 18, 29, 17, 28,
115  10, 14, 71, 72, 85, 86, 87, 88, 89, 90, 11, 15, 69, 70, 79, 80, 81, 82, 83,
116  84, 12, 16, 67, 68, 73, 74, 75, 76, 77, 78, 35, 90, 36, 89, 90, 37, 84, 38,
117  83, 84, 39, 78, 40, 77, 78, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 27,
118  26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 10, 14, 71, 72, 85, 86, 87, 88, 89,
119  90, 11, 15, 69, 70, 79, 80, 81, 82, 83, 84, 12, 16, 67, 68, 73, 74, 75, 76,
120  77, 78, 35, 90, 36, 89, 90, 37, 84, 38, 83, 84, 39, 78, 40, 77, 78};
121 
122 real_t A_val[] = {
123 -1.0000000000000000e+00, 1.0000000000000000e+00, 8.8678200000000004e+01,
124  9.3617050000000006e+01, 1.6000000000000000e+01, 8.1999999999999993e+00,
125  9.9000000000000000e+01, 8.0000000000000000e+01, 1.2000000000000000e+01,
126  9.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
127  8.0062830000000005e+01, 9.9224010000000007e+01, 1.0000000000000000e+02,
128  2.1100000000000001e+01, 1.0000000000000000e+02, 1.0000000000000000e+02,
129  1.1400000000000000e+02, 1.1680000000000000e+02, -1.0000000000000000e+00,
130  1.0000000000000000e+00, 7.4697360000000003e+01, 8.3801220000000001e+01,
131 -8.1999999999999993e+00, 2.0000000000000000e+00, 9.0000000000000000e+01,
132  2.3999999999999999e+00, -1.2000000000000000e+01, -1.4800000000000001e+01,
133 -1.0000000000000000e+00, 1.0000000000000000e+00, 7.9194209999999998e+01,
134  9.0175110000000004e+01, 4.3000000000000000e+01, 8.0000000000000000e+00,
135  1.0000000000000000e+02, 9.5000000000000000e+01, 9.0000000000000000e+00,
136  2.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
137  7.8568219999999997e+01, 8.5996200000000002e+01, -1.2500000000000000e+01,
138  1.0000000000000000e+00, 9.6500000000000000e+01, 4.0000000000000000e+00,
139 -1.8000000000000000e+01, -2.1899999999999999e+01, -1.0000000000000000e+00,
140  1.0000000000000000e+00, 8.2922240000000002e+01, 8.6963380000000001e+01,
141  6.5000000000000000e+01, 1.2500000000000000e+01, 1.0000000000000000e+02,
142  9.8000000000000000e+01, 4.9000000000000000e+01, 3.7000000000000000e+01,
143 -1.0000000000000000e+00, 1.0000000000000000e+00, 8.2592740000000006e+01,
144  9.3147599999999997e+01, -1.2000000000000000e+01, 1.0000000000000000e+00,
145  9.6500000000000000e+01, 4.0000000000000000e+00, -1.8000000000000000e+01,
146 -2.1899999999999999e+01, -1.0000000000000000e+00, 1.0000000000000000e+00,
147  7.6506460000000004e+01, 7.8210250000000002e+01, 7.9000000000000000e+01,
148  1.2000000000000000e+01, 1.0000000000000000e+02, 9.5000000000000000e+01,
149  6.8000000000000000e+01, 6.1000000000000000e+01, -1.0000000000000000e+00,
150  1.0000000000000000e+00, 8.8357460000000003e+01, 9.4257840000000002e+01,
151  1.2500000000000000e+02, 6.1299999999999997e+01, 1.0000000000000000e+02,
152  1.0000000000000000e+02, 1.4500000000000000e+02, 1.4500000000000000e+02,
153 -1.0000000000000000e+00, 1.0000000000000000e+00, 9.0590469999999996e+01,
154  1.0582863000000000e+02, 6.2000000000000002e+00, 6.0000000000000000e+00,
155  9.7000000000000000e+01, 2.8500000000000000e+01, 4.0000000000000000e+00,
156  3.6000000000000001e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
157  8.8678200000000004e+01, 9.3617050000000006e+01, 1.6000000000000000e+01,
158  8.1999999999999993e+00, 9.9000000000000000e+01, 8.0000000000000000e+01,
159  1.2000000000000000e+01, 9.0000000000000000e+00, -1.0000000000000000e+00,
160  1.0000000000000000e+00, 8.0062830000000005e+01, 9.9224010000000007e+01,
161  1.0000000000000000e+02, 2.1100000000000001e+01, 1.0000000000000000e+02,
162  1.0000000000000000e+02, 1.1400000000000000e+02, 1.1680000000000000e+02,
163 -1.0000000000000000e+00, 1.0000000000000000e+00, 7.4697360000000003e+01,
164  8.3801220000000001e+01, -8.1999999999999993e+00, 2.0000000000000000e+00,
165  9.0000000000000000e+01, 2.3999999999999999e+00, -1.2000000000000000e+01,
166 -1.4800000000000001e+01, -1.0000000000000000e+00, 1.0000000000000000e+00,
167  7.9194209999999998e+01, 9.0175110000000004e+01, 4.3000000000000000e+01,
168  8.0000000000000000e+00, 1.0000000000000000e+02, 9.5000000000000000e+01,
169  9.0000000000000000e+00, 2.0000000000000000e+00, -1.0000000000000000e+00,
170  1.0000000000000000e+00, 7.8568219999999997e+01, 8.5996200000000002e+01,
171 -1.2500000000000000e+01, 1.0000000000000000e+00, 9.6500000000000000e+01,
172  4.0000000000000000e+00, -1.8000000000000000e+01, -2.1899999999999999e+01,
173 -1.0000000000000000e+00, 1.0000000000000000e+00, 8.2922240000000002e+01,
174  8.6963380000000001e+01, 6.5000000000000000e+01, 1.2500000000000000e+01,
175  1.0000000000000000e+02, 9.8000000000000000e+01, 4.9000000000000000e+01,
176  3.7000000000000000e+01, -1.0000000000000000e+00, 1.0000000000000000e+00,
177  8.2592740000000006e+01, 9.3147599999999997e+01, -1.2000000000000000e+01,
178  1.0000000000000000e+00, 9.6500000000000000e+01, 4.0000000000000000e+00,
179 -1.8000000000000000e+01, -2.1899999999999999e+01, -1.0000000000000000e+00,
180  1.0000000000000000e+00, 7.6506460000000004e+01, 7.8210250000000002e+01,
181  7.9000000000000000e+01, 1.2000000000000000e+01, 1.0000000000000000e+02,
182  9.5000000000000000e+01, 6.8000000000000000e+01, 6.1000000000000000e+01,
183 -1.0000000000000000e+00, 1.0000000000000000e+00, 8.8357460000000003e+01,
184  9.4257840000000002e+01, 1.2500000000000000e+02, 6.1299999999999997e+01,
185  1.0000000000000000e+02, 1.0000000000000000e+02, 1.4500000000000000e+02,
186  1.4500000000000000e+02, -1.0000000000000000e+00, 1.0000000000000000e+00,
187  9.0590469999999996e+01, 1.0582863000000000e+02, 6.2000000000000002e+00,
188  6.0000000000000000e+00, 9.7000000000000000e+01, 2.8500000000000000e+01,
189  4.0000000000000000e+00, 3.6000000000000001e+00, -1.0000000000000000e+00,
190  1.0000000000000000e+00, 8.8678200000000004e+01, 9.3617050000000006e+01,
191  1.6000000000000000e+01, 8.1999999999999993e+00, 9.9000000000000000e+01,
192  8.0000000000000000e+01, 1.2000000000000000e+01, 9.0000000000000000e+00,
193 -1.0000000000000000e+00, 1.0000000000000000e+00, 8.0062830000000005e+01,
194  9.9224010000000007e+01, 1.0000000000000000e+02, 2.1100000000000001e+01,
195  1.0000000000000000e+02, 1.0000000000000000e+02, 1.1400000000000000e+02,
196  1.1680000000000000e+02, -1.0000000000000000e+00, 1.0000000000000000e+00,
197  7.4697360000000003e+01, 8.3801220000000001e+01, -8.1999999999999993e+00,
198  2.0000000000000000e+00, 9.0000000000000000e+01, 2.3999999999999999e+00,
199 -1.2000000000000000e+01, -1.4800000000000001e+01, -1.0000000000000000e+00,
200  1.0000000000000000e+00, 7.9194209999999998e+01, 9.0175110000000004e+01,
201  4.3000000000000000e+01, 8.0000000000000000e+00, 1.0000000000000000e+02,
202  9.5000000000000000e+01, 9.0000000000000000e+00, 2.0000000000000000e+00,
203 -1.0000000000000000e+00, 1.0000000000000000e+00, 7.8568219999999997e+01,
204  8.5996200000000002e+01, -1.2500000000000000e+01, 1.0000000000000000e+00,
205  9.6500000000000000e+01, 4.0000000000000000e+00, -1.8000000000000000e+01,
206 -2.1899999999999999e+01, -1.0000000000000000e+00, 1.0000000000000000e+00,
207  8.2922240000000002e+01, 8.6963380000000001e+01, 6.5000000000000000e+01,
208  1.2500000000000000e+01, 1.0000000000000000e+02, 9.8000000000000000e+01,
209  4.9000000000000000e+01, 3.7000000000000000e+01, -1.0000000000000000e+00,
210  1.0000000000000000e+00, 8.2592740000000006e+01, 9.3147599999999997e+01,
211 -1.2000000000000000e+01, 1.0000000000000000e+00, 9.6500000000000000e+01,
212  4.0000000000000000e+00, -1.8000000000000000e+01, -2.1899999999999999e+01,
213 -1.0000000000000000e+00, 1.0000000000000000e+00, 7.6506460000000004e+01,
214  7.8210250000000002e+01, 7.9000000000000000e+01, 1.2000000000000000e+01,
215  1.0000000000000000e+02, 9.5000000000000000e+01, 6.8000000000000000e+01,
216  6.1000000000000000e+01, -1.0000000000000000e+00, 1.0000000000000000e+00,
217  8.8357460000000003e+01, 9.4257840000000002e+01, 1.2500000000000000e+02,
218  6.1299999999999997e+01, 1.0000000000000000e+02, 1.0000000000000000e+02,
219  1.4500000000000000e+02, 1.4500000000000000e+02, -1.0000000000000000e+00,
220  1.0000000000000000e+00, 9.0590469999999996e+01, 1.0582863000000000e+02,
221  6.2000000000000002e+00, 6.0000000000000000e+00, 9.7000000000000000e+01,
222  2.8500000000000000e+01, 4.0000000000000000e+00, 3.6000000000000001e+00,
223 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
224 -1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00,
225  1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00,
226  1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00,
227  1.0000000000000000e+00, 1.0000000000000000e+00, -1.2000000000000000e-01,
228 -3.8000000000000000e-01, -5.0000000000000000e-01, 1.0000000000000000e+00,
229  1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00,
230  1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00,
231  1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00,
232  1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
233  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
234 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
235  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
236 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
237  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
238 -1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00,
239 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
240 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
241  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
242 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
243  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
244 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
245  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
246  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
247 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
248 -4.7000000000000000e+01, -8.6999999999999993e+00, -9.0000000000000000e+01,
249 -5.0000000000000000e+01, -1.0000000000000000e+01, -1.0000000000000000e+01,
250 -9.3000000000000000e+01, -8.9000000000000000e+01, 1.0000000000000000e+00,
251 -1.0000000000000000e+00, -4.7000000000000000e+01, -8.6999999999999993e+00,
252 -9.0000000000000000e+01, -5.0000000000000000e+01, -1.0000000000000000e+01,
253 -1.0000000000000000e+01, -8.9000000000000000e+01, -8.5000000000000000e+01,
254  1.0000000000000000e+00, -1.0000000000000000e+00, -4.7000000000000000e+01,
255 -8.6999999999999993e+00, -9.0000000000000000e+01, -5.0000000000000000e+01,
256 -1.0000000000000000e+01, -1.0000000000000000e+01, -9.1000000000000000e+01,
257 -8.8000000000000000e+01, -1.0000000000000000e+00, 5.0000000000000000e-01,
258 -1.0000000000000000e+00, 1.0000000000000000e+00, 5.0000000000000000e-01,
259 -1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
260  1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
261  5.0000000000000000e-01, -1.0000000000000000e+00, 1.0000000000000000e+00,
262  5.0000000000000000e-01, 1.0000000000000000e+00, -1.0000000000000000e+00,
263  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
264 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
265  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
266 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
267  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
268 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
269  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
270 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
271  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
272 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
273  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
274 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
275  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
276 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
277  1.0000000000000000e+00, -1.0000000000000000e+00, -4.7000000000000000e+01,
278 -8.6999999999999993e+00, -9.0000000000000000e+01, -5.0000000000000000e+01,
279 -1.0000000000000000e+01, -1.0000000000000000e+01, -9.3000000000000000e+01,
280 -8.9000000000000000e+01, 1.0000000000000000e+00, -1.0000000000000000e+00,
281 -4.7000000000000000e+01, -8.6999999999999993e+00, -9.0000000000000000e+01,
282 -5.0000000000000000e+01, -1.0000000000000000e+01, -1.0000000000000000e+01,
283 -8.9000000000000000e+01, -8.5000000000000000e+01, 1.0000000000000000e+00,
284 -1.0000000000000000e+00, -4.7000000000000000e+01, -8.6999999999999993e+00,
285 -9.0000000000000000e+01, -5.0000000000000000e+01, -1.0000000000000000e+01,
286 -1.0000000000000000e+01, -9.1000000000000000e+01, -8.8000000000000000e+01,
287 -1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
288  1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
289  5.0000000000000000e-01, -1.0000000000000000e+00, 1.0000000000000000e+00,
290  5.0000000000000000e-01, -1.0000000000000000e+00, 5.0000000000000000e-01,
291 -1.0000000000000000e+00, 1.0000000000000000e+00, 5.0000000000000000e-01,
292  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
293 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
294  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
295 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
296  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
297 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
298  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
299 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
300  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
301 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
302  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
303 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
304  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
305 -1.0000000000000000e+00, 1.0000000000000000e+00, -1.0000000000000000e+00,
306  1.0000000000000000e+00, -1.0000000000000000e+00, 1.0000000000000000e+00,
307 -1.0000000000000000e+00, -4.7000000000000000e+01, -8.6999999999999993e+00,
308 -9.0000000000000000e+01, -5.0000000000000000e+01, -1.0000000000000000e+01,
309 -1.0000000000000000e+01, -9.3000000000000000e+01, -8.9000000000000000e+01,
310  1.0000000000000000e+00, -1.0000000000000000e+00, -4.7000000000000000e+01,
311 -8.6999999999999993e+00, -9.0000000000000000e+01, -5.0000000000000000e+01,
312 -1.0000000000000000e+01, -1.0000000000000000e+01, -8.9000000000000000e+01,
313 -8.5000000000000000e+01, 1.0000000000000000e+00, -1.0000000000000000e+00,
314 -4.7000000000000000e+01, -8.6999999999999993e+00, -9.0000000000000000e+01,
315 -5.0000000000000000e+01, -1.0000000000000000e+01, -1.0000000000000000e+01,
316 -9.1000000000000000e+01, -8.8000000000000000e+01, -1.0000000000000000e+00,
317  5.0000000000000000e-01, -1.0000000000000000e+00, 1.0000000000000000e+00,
318  5.0000000000000000e-01, -1.0000000000000000e+00, 5.0000000000000000e-01,
319 -1.0000000000000000e+00, 1.0000000000000000e+00, 5.0000000000000000e-01,
320 -1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
321  1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
322 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
323 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
324 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
325 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
326 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
327 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
328 -1.0000000000000000e+00, -1.0000000000000000e+00, -1.0000000000000000e+00,
329  1.0000000000000000e+00, -1.0000000000000000e+00, -4.7000000000000000e+01,
330 -8.6999999999999993e+00, -9.0000000000000000e+01, -5.0000000000000000e+01,
331 -1.0000000000000000e+01, -1.0000000000000000e+01, -9.3000000000000000e+01,
332 -8.9000000000000000e+01, 1.0000000000000000e+00, -1.0000000000000000e+00,
333 -4.7000000000000000e+01, -8.6999999999999993e+00, -9.0000000000000000e+01,
334 -5.0000000000000000e+01, -1.0000000000000000e+01, -1.0000000000000000e+01,
335 -8.9000000000000000e+01, -8.5000000000000000e+01, 1.0000000000000000e+00,
336 -1.0000000000000000e+00, -4.7000000000000000e+01, -8.6999999999999993e+00,
337 -9.0000000000000000e+01, -5.0000000000000000e+01, -1.0000000000000000e+01,
338 -1.0000000000000000e+01, -9.1000000000000000e+01, -8.8000000000000000e+01,
339 -1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
340  1.0000000000000000e+00, 5.0000000000000000e-01, -1.0000000000000000e+00,
341  5.0000000000000000e-01, -1.0000000000000000e+00, 1.0000000000000000e+00,
342  5.0000000000000000e-01, -1.0000000000000000e+00, 5.0000000000000000e-01,
343 -1.0000000000000000e+00, 1.0000000000000000e+00, 5.0000000000000000e-01};
344 
345 real_t g[] = {+0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00,
346  +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00,
347  +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00,
348  +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00,
349  +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00,
350  +0e+00, +0e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00,
351  -2e+00, +0e+00, -2e+00, +0e+00, +2e-03, +2e-03, +2e-03, +2e-03, +2e-03,
352  +2e-03, +1e-03, +2e-03, +2e-03, +2e-03, +0e+00, -2e-03, -2e-03, -2e-03,
353  -2e-03, -2e-03, -2e-03, -1e-03, -2e-03, -2e-03, -2e-03, +0e+00, +0e+00,
354  +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +2e-03,
355  +2e-03, +2e-03, +2e-03, +2e-03, +2e-03, +1e-03, +2e-03, +2e-03, +2e-03,
356  +0e+00, -2e-03, -2e-03, -2e-03, -2e-03, -2e-03, -2e-03, -1e-03, -2e-03,
357  -2e-03, -2e-03, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00,
358  +0e+00, +0e+00, +0e+00, +2e-03, +2e-03, +2e-03, +2e-03, +2e-03, +2e-03,
359  +1e-03, +2e-03, +2e-03, +2e-03, +0e+00, -2e-03, -2e-03, -2e-03, -2e-03,
360  -2e-03, -2e-03, -1e-03, -2e-03, -2e-03, -2e-03, +0e+00, +0e+00, +0e+00,
361  +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +1e-01, +1e-01,
362  +1e-01, +1e-01, +1e-01, +1e-01, +1e-01, +1e-01, +1e-01, +1e-01, +0e+00,
363  -1e-01, -1e-01, -1e-01, -1e-01, -1e-01, -1e-01, -1e-01, -1e-01, -1e-01,
364  -1e-01, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00, +0e+00,
365  +0e+00};
366 
367 real_t lb[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
369  0, 0, 0, -Inf, 0, -Inf, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 5,
370  10, 5, 0, 10, 0, 2, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
371  0, 0, 0, 0, 0, 10, 5, 10, 5, 0, 10, 0, 5, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 5, 10, 5, 0, 10, 0, 5, 0, 10, 0, 0,
373  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
374  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
375 
376 real_t ub[] = {Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf,
377  Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf,
378  Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf,
379  Inf, Inf, 0, 92, 39, 87, 29, 0, 20, 0, 28, 20, 71, Inf, 130, 45, 53, 55, 75,
380  112, 0, 73, 480, 154, 121, 50, 30, 77, 20, 0, 18, 0, 5, 20, 71, Inf, Inf,
381  Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, 130, 55, 93, 60, 75, 115, 0, 67,
382  480, 154, 121, 50, 20, 37, 15, 0, 15, 0, 8, 20, 71, Inf, Inf, Inf, Inf, Inf,
383  Inf, Inf, Inf, Inf, Inf, 130, 55, 93, 60, 75, 105, 0, 67, 4980, 154, 110,
384  50, 20, 37, 15, 0, 25, 0, 8, 20, 71, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf,
385  Inf, Inf, 20, 20, 20, 20, 0, 20, 0, 20, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
386  0, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf};
387 
388 real_t lbA[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -Inf, -Inf,
391  -Inf, -Inf, -Inf, -Inf, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392  0};
393 
394 real_t ubA[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397  0, 0, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf,
398  Inf, Inf, Inf, Inf};
399 
400 long H_nnz = (long) sizeof(H_val) / (long) sizeof(real_t);
401 long A_nnz = (long) sizeof(A_val) / (long) sizeof(real_t);
Options::initialStatusBounds
SubjectToStatus initialStatusBounds
Definition: Options.hpp:147
real_t
BEGIN_NAMESPACE_QPOASES typedef double real_t
Definition: Types.hpp:171
Options
Manages all user-specified options for solving QPs.
Definition: Options.hpp:56
MyConstraintProduct::MyConstraintProduct
MyConstraintProduct(const MyConstraintProduct &rhs)
Definition: example4CP.cpp:65
example4CP.cpp
MyConstraintProduct::A
real_t * A
Definition: example4CP.cpp:107
END_NAMESPACE_QPOASES
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
BooleanType
BooleanType
Definition: Types.hpp:203
SQProblem::hotstart
returnValue hotstart(SymmetricMatrix *H_new, const real_t *const g_new, Matrix *A_new, const real_t *const lb_new, const real_t *const ub_new, const real_t *const lbA_new, const real_t *const ubA_new, int_t &nWSR, real_t *const cputime=0, const Bounds *const guessedBounds=0, const Constraints *const guessedConstraints=0)
Definition: SQProblem.cpp:99
QProblem::setConstraintProduct
returnValue setConstraintProduct(ConstraintProduct *const _constraintProduct)
Definition: QProblem.cpp:885
stdFile
BEGIN_NAMESPACE_QPOASES FILE * stdFile
Definition: MessageHandling.cpp:49
main
int main()
Definition: exampleLP.cpp:40
MyConstraintProduct::MyConstraintProduct
MyConstraintProduct()
Definition: example4CP.cpp:51
BEGIN_NAMESPACE_QPOASES
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
MyConstraintProduct
Example illustrating the use of the ConstraintProduct class.
Definition: example4CP.cpp:47
MyConstraintProduct::MyConstraintProduct
MyConstraintProduct(int_t _nV, int_t _nC, real_t *_A)
Definition: example4CP.cpp:54
ST_INACTIVE
@ ST_INACTIVE
Definition: Types.hpp:275
SparseMatrix
Interfaces matrix-vector operations tailored to general sparse matrices.
Definition: Matrices.hpp:557
SolutionAnalysis::getVarianceCovariance
returnValue getVarianceCovariance(QProblemB *const qp, const real_t *const g_b_bA_VAR, real_t *const Primal_Dual_VAR) const
Definition: SolutionAnalysis.cpp:265
SQProblem
Implements the online active set strategy for QPs with varying matrices.
Definition: SQProblem.hpp:59
MyConstraintProduct::operator()
virtual int_t operator()(int_t constrIndex, const real_t *const x, real_t *const constrValue) const
Definition: example4CP.cpp:89
QProblemB
Implements the online active set strategy for box-constrained QPs.
Definition: QProblemB.hpp:63
ConstraintProduct
Interface for specifying user-defined evaluations of constraint products.
Definition: ConstraintProduct.hpp:57
SolutionAnalysis
Provides additional tools for analysing QP solutions.
Definition: SolutionAnalysis.hpp:57
getCPUtime
real_t getCPUtime()
Definition: Utils.cpp:581
SymSparseMat
Interfaces matrix-vector operations tailored to symmetric sparse matrices.
Definition: Matrices.hpp:936
QProblem::solveCurrentEQP
returnValue solveCurrentEQP(const int_t n_rhs, const real_t *g_in, const real_t *lb_in, const real_t *ub_in, const real_t *lbA_in, const real_t *ubA_in, real_t *x_out, real_t *y_out)
Definition: QProblem.cpp:718
USING_NAMESPACE_QPOASES
#define USING_NAMESPACE_QPOASES
Definition: Types.hpp:113
INFTY
const real_t INFTY
Definition: Constants.hpp:61
DenseMatrix
Interfaces matrix-vector operations tailored to general dense matrices.
Definition: Matrices.hpp:328
BT_FALSE
@ BT_FALSE
Definition: Types.hpp:205
QProblem
Implements the online active set strategy for QPs with general constraints.
Definition: QProblem.hpp:61
QProblemB::init
returnValue init(SymmetricMatrix *_H, const real_t *const _g, const real_t *const _lb, const real_t *const _ub, int_t &nWSR, real_t *const cputime=0, const real_t *const xOpt=0, const real_t *const yOpt=0, const Bounds *const guessedBounds=0, const real_t *const _R=0)
Definition: QProblemB.cpp:253
Options::printLevel
PrintLevel printLevel
Definition: Options.hpp:122
main
int main()
Definition: example3b.cpp:43
runOqpBenchmark
returnValue runOqpBenchmark(const char *path, BooleanType isSparse, const Options &options, int_t &nWSR, real_t &maxCPUtime, real_t &maxStationarity, real_t &maxFeasibility, real_t &maxComplementarity)
Definition: OQPinterface.cpp:569
QProblem::hotstart
returnValue hotstart(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, const real_t *const lbA_new, const real_t *const ubA_new, int_t &nWSR, real_t *const cputime=0, const Bounds *const guessedBounds=0, const Constraints *const guessedConstraints=0)
Definition: QProblem.cpp:446
QProblemB::printOptions
returnValue printOptions() const
Definition: QProblemB.cpp:1010
QProblem::init
returnValue init(SymmetricMatrix *_H, const real_t *const _g, Matrix *_A, const real_t *const _lb, const real_t *const _ub, const real_t *const _lbA, const real_t *const _ubA, int_t &nWSR, real_t *const cputime=0, const real_t *const xOpt=0, const real_t *const yOpt=0, const Bounds *const guessedBounds=0, const Constraints *const guessedConstraints=0, const real_t *const _R=0)
Definition: QProblem.cpp:258
main
int main()
Definition: example2.cpp:41
main
int main()
Definition: example1.cpp:40
main
int main()
Definition: example4.cpp:45
main
int main()
Definition: example3.cpp:43
Options::setToMPC
returnValue setToMPC()
Definition: Options.cpp:191
MyConstraintProduct::nV
int_t nV
Definition: example4CP.cpp:102
main
int main()
Definition: example5.cpp:45
MyConstraintProduct::operator=
MyConstraintProduct & operator=(const MyConstraintProduct &rhs)
Definition: example4CP.cpp:77
QProblemB::setOptions
returnValue setOptions(const Options &_options)
Definition: QProblemB.ipp:191
QProblemB::getObjVal
real_t getObjVal() const
Definition: QProblemB.cpp:700
main
int main()
Definition: example1b.cpp:39
SUCCESSFUL_RETURN
@ SUCCESSFUL_RETURN
Definition: MessageHandling.hpp:68
MyConstraintProduct::nC
int_t nC
Definition: example4CP.cpp:106
QProblemB::setPrintLevel
returnValue setPrintLevel(PrintLevel _printlevel)
Definition: QProblemB.cpp:824
myPrintf
returnValue myPrintf(const char *s)
Definition: Utils.cpp:225
main
int main()
Definition: example1a.cpp:40
HST_ZERO
@ HST_ZERO
Definition: Types.hpp:250
SparseMatrix::createDiagInfo
sparse_int_t * createDiagInfo()
Definition: Matrices.cpp:1362
QProblemB::getPrimalSolution
returnValue getPrimalSolution(real_t *const xOpt) const
Definition: QProblemB.cpp:774
MyConstraintProduct::~MyConstraintProduct
virtual ~MyConstraintProduct()
Definition: example4CP.cpp:74
SolutionAnalysis::getKktViolation
real_t getKktViolation(QProblemB *const qp, real_t *const maxStat=0, real_t *const maxFeas=0, real_t *const maxCmpl=0) const
Definition: SolutionAnalysis.cpp:93
SparseMatrix::full
virtual real_t * full() const
Definition: Matrices.cpp:1381
getAbs
real_t getAbs(real_t x)
Definition: Utils.ipp:143
Options::enableCholeskyRefactorisation
int_t enableCholeskyRefactorisation
Definition: Options.hpp:131
QProblemB::hotstart
returnValue hotstart(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int_t &nWSR, real_t *const cputime=0, const Bounds *const guessedBounds=0)
Definition: QProblemB.cpp:414
sparse_int_t
int_t sparse_int_t
Definition: Types.hpp:199
SymDenseMat
Interfaces matrix-vector operations tailored to symmetric dense matrices.
Definition: Matrices.hpp:511
QProblem::getDualSolution
virtual returnValue getDualSolution(real_t *const yOpt) const
Definition: QProblem.cpp:859
int_t
int int_t
Definition: Types.hpp:180
PL_NONE
@ PL_NONE
Definition: Types.hpp:216
Options::numRefinementSteps
int_t numRefinementSteps
Definition: Options.hpp:151