-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathsolver_H4lv1v2ks_4pt_244x250_6sol.m
456 lines (346 loc) · 19.4 KB
/
solver_H4lv1v2ks_4pt_244x250_6sol.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
% Generated using GBSolver generator Copyright Martin Bujnak,
% Zuzana Kukelova, Tomas Pajdla CTU Prague 2008.
%
% Please refer to the following paper, when using this code :
% Kukelova Z., Bujnak M., Pajdla T., Automatic Generator of Minimal Problem Solvers,
% ECCV 2008, Marseille, France, October 12-18, 2008
function [u1, u2, u3, l1, l2, k, v1, v2, v3] = solver_H4lv1v2ks_4pt_244x250_6sol(x11, x1p1, x21, x2p1, x31, x3p1, x41, x4p1)
v1 = 10000;
v2 = 10000;
v3 = 10000;
l1 = 10000;
l2 = 10000;
k = 10000;
u1 = 10000;
u2 = 10000;
u3 = 10000;
% precalculate polynomial equations coefficients
c(1) = x11(1)*x1p1(2);
c(2) = -x11(2)*x1p1(2);
c(3) = x11(1)*x1p1(1);
c(4) = -x11(2)*x1p1(1);
c(5) = x11(1)*x1p1(1)^2 + x11(1)*x1p1(2)^2;
c(6) = - x11(2)*x1p1(1)^2 - x11(2)*x1p1(2)^2;
c(7) = x11(1);
c(8) = -x11(2);
c(9) = x11(1)*x1p1(2) - x11(2)*x1p1(1);
c(10) = x21(1)*x2p1(2);
c(11) = -x21(2)*x2p1(2);
c(12) = x21(1)*x2p1(1);
c(13) = -x21(2)*x2p1(1);
c(14) = x21(1)*x2p1(1)^2 + x21(1)*x2p1(2)^2;
c(15) = - x21(2)*x2p1(1)^2 - x21(2)*x2p1(2)^2;
c(16) = x21(1);
c(17) = -x21(2);
c(18) = x21(1)*x2p1(2) - x21(2)*x2p1(1);
c(19) = x11(1)^2*x1p1(2) + x11(2)^2*x1p1(2);
c(20) = x11(1)^2*x1p1(1) + x11(2)^2*x1p1(1);
c(21) = x11(1)^2*x1p1(1)^2 + x11(1)^2*x1p1(2)^2 + x11(2)^2*x1p1(1)^2 + x11(2)^2*x1p1(2)^2;
c(22) = -x11(1)*x1p1(2);
c(23) = -x11(1)*x1p1(1);
c(24) = x1p1(2);
c(25) = x1p1(1);
c(26) = - x11(1)*x1p1(1)^2 - x11(1)*x1p1(2)^2;
c(27) = x11(1)^2 + x11(2)^2 + x1p1(1)^2 + x1p1(2)^2;
c(28) = -x11(1);
c(29) = 1;
c(30) = x11(1)^2*x1p1(1) - x11(1)*x1p1(1)^2 - x11(1)*x1p1(2)^2 + x11(2)^2*x1p1(1);
c(31) = x1p1(1) - x11(1);
c(32) = x21(1)^2*x2p1(2) + x21(2)^2*x2p1(2);
c(33) = x21(1)^2*x2p1(1) + x21(2)^2*x2p1(1);
c(34) = x21(1)^2*x2p1(1)^2 + x21(1)^2*x2p1(2)^2 + x21(2)^2*x2p1(1)^2 + x21(2)^2*x2p1(2)^2;
c(35) = -x21(1)*x2p1(2);
c(36) = -x21(1)*x2p1(1);
c(37) = x2p1(2);
c(38) = x2p1(1);
c(39) = - x21(1)*x2p1(1)^2 - x21(1)*x2p1(2)^2;
c(40) = x21(1)^2 + x21(2)^2 + x2p1(1)^2 + x2p1(2)^2;
c(41) = -x21(1);
c(42) = 1;
c(43) = x21(1)^2*x2p1(1) - x21(1)*x2p1(1)^2 - x21(1)*x2p1(2)^2 + x21(2)^2*x2p1(1);
c(44) = x2p1(1) - x21(1);
c(45) = 1;
c(46) = 1;
c(47) = 1;
c(48) = x31(1)*x3p1(2);
c(49) = -x31(2)*x3p1(2);
c(50) = x31(1)*x3p1(1);
c(51) = -x31(2)*x3p1(1);
c(52) = x31(1)*x3p1(1)^2 + x31(1)*x3p1(2)^2;
c(53) = - x31(2)*x3p1(1)^2 - x31(2)*x3p1(2)^2;
c(54) = x31(1);
c(55) = -x31(2);
c(56) = x31(1)*x3p1(2) - x31(2)*x3p1(1);
c(57) = x31(1)^2*x3p1(2) + x31(2)^2*x3p1(2);
c(58) = x31(1)^2*x3p1(1) + x31(2)^2*x3p1(1);
c(59) = x31(1)^2*x3p1(1)^2 + x31(1)^2*x3p1(2)^2 + x31(2)^2*x3p1(1)^2 + x31(2)^2*x3p1(2)^2;
c(60) = -x31(1)*x3p1(2);
c(61) = -x31(1)*x3p1(1);
c(62) = x3p1(2);
c(63) = x3p1(1);
c(64) = - x31(1)*x3p1(1)^2 - x31(1)*x3p1(2)^2;
c(65) = x31(1)^2 + x31(2)^2 + x3p1(1)^2 + x3p1(2)^2;
c(66) = -x31(1);
c(67) = 1;
c(68) = x31(1)^2*x3p1(1) - x31(1)*x3p1(1)^2 - x31(1)*x3p1(2)^2 + x31(2)^2*x3p1(1);
c(69) = x3p1(1) - x31(1);
c(70) = x41(1)*x4p1(2);
c(71) = -x41(2)*x4p1(2);
c(72) = x41(1)*x4p1(1);
c(73) = -x41(2)*x4p1(1);
c(74) = x41(1)*x4p1(1)^2 + x41(1)*x4p1(2)^2;
c(75) = - x41(2)*x4p1(1)^2 - x41(2)*x4p1(2)^2;
c(76) = x41(1);
c(77) = -x41(2);
c(78) = x41(1)*x4p1(2) - x41(2)*x4p1(1);
c(79) = x41(1)^2*x4p1(2) + x41(2)^2*x4p1(2);
c(80) = x41(1)^2*x4p1(1) + x41(2)^2*x4p1(1);
c(81) = x41(1)^2*x4p1(1)^2 + x41(1)^2*x4p1(2)^2 + x41(2)^2*x4p1(1)^2 + x41(2)^2*x4p1(2)^2;
c(82) = -x41(1)*x4p1(2);
c(83) = -x41(1)*x4p1(1);
c(84) = x4p1(2);
c(85) = x4p1(1);
c(86) = - x41(1)*x4p1(1)^2 - x41(1)*x4p1(2)^2;
c(87) = x41(1)^2 + x41(2)^2 + x4p1(1)^2 + x4p1(2)^2;
c(88) = -x41(1);
c(89) = 1;
c(90) = x41(1)^2*x4p1(1) - x41(1)*x4p1(1)^2 - x41(1)*x4p1(2)^2 + x41(2)^2*x4p1(1);
c(91) = x4p1(1) - x41(1);
c(92) = 1;
c(93) = 1;
c(94) = 1;
M = zeros(244, 250);
ci = [26935, 27424, 27669, 28646, 28891, 29136, 31089, 31822, 32067, 32556, 38413, 38658, 39147, 46561, 46806, 47051, 47296, 47541, 48762, 49495, 56849];
M(ci) = c(1);
ci = [20347, 20836, 21081, 22058, 22303, 22548, 24257, 30358, 30603, 31092, 36949, 37194, 37683, 42169, 42414, 42659, 42904, 43149, 44370, 45103, 49496, 52425, 55385];
M(ci) = c(2);
ci = [26203, 26692, 26937, 27914, 28159, 28404, 30845, 31578, 31823, 32312, 38169, 38414, 38903, 45585, 45830, 46075, 46320, 47297, 48518, 49251, 56605];
M(ci) = c(3);
ci = [19615, 20104, 20349, 21326, 21571, 21816, 24013, 30114, 30359, 30848, 36705, 36950, 37439, 41193, 41438, 41683, 41928, 42905, 44126, 44859, 49252, 52181, 55141];
M(ci) = c(4);
ci = [28399, 28888, 29133, 29378, 29623, 29868, 31333, 32310, 32555, 38901, 39146, 47781, 48026, 48271, 48516, 48761, 49006, 49739, 57093];
M(ci) = c(5);
ci = [21811, 22300, 22545, 22790, 23035, 23280, 24501, 30846, 31091, 31336, 37437, 37682, 37927, 43389, 43634, 43879, 44124, 44369, 44614, 45347, 49740, 52669, 55629];
M(ci) = c(6);
ci = [45967, 46700, 46945, 47678, 47923, 48168, 49633, 55833, 56078, 56323, 56568, 56813, 57058, 60509];
M(ci) = c(7);
ci = [41575, 42308, 42553, 43286, 43531, 43776, 45241, 49146, 49391, 49636, 52077, 52322, 52567, 54369, 54614, 54859, 55104, 55349, 55594, 60265];
M(ci) = c(8);
ci = [52799, 53044, 53289, 53534, 53779, 54024, 55489, 56466, 56711, 56956, 57933, 58178, 58423, 58761, 59006, 59251, 59496, 59741, 59986, 60231, 60476, 60721, 60997];
M(ci) = c(9);
ci = [15373, 26948, 27437, 27682, 28659, 28904, 29149, 30614, 31103, 31836, 32081, 32570, 38427, 38672, 39161, 46570, 46815, 47060, 47305, 47550, 48771, 49504, 56850];
M(ci) = c(10);
ci = [14153, 20360, 20849, 21094, 22071, 22316, 22561, 23782, 24271, 30372, 30617, 31106, 36963, 37208, 37697, 42178, 42423, 42668, 42913, 43158, 44379, 45112, 49505, 52434, 55386];
M(ci) = c(11);
ci = [15129, 26216, 26705, 26950, 27927, 28172, 28417, 30370, 30859, 31592, 31837, 32326, 38183, 38428, 38917, 45594, 45839, 46084, 46329, 47306, 48527, 49260, 56606];
M(ci) = c(12);
ci = [13909, 19628, 20117, 20362, 21339, 21584, 21829, 23538, 24027, 30128, 30373, 30862, 36719, 36964, 37453, 41202, 41447, 41692, 41937, 42914, 44135, 44868, 49261, 52190, 55142];
M(ci) = c(13);
ci = [28412, 28901, 29146, 29391, 29636, 29881, 31102, 31347, 32324, 32569, 38915, 39160, 47790, 48035, 48280, 48525, 48770, 49015, 49748, 57094];
M(ci) = c(14);
ci = [14641, 21824, 22313, 22558, 22803, 23048, 23293, 24270, 24515, 30860, 31105, 31350, 37451, 37696, 37941, 43398, 43643, 43888, 44133, 44378, 44623, 45356, 49749, 52678, 55630];
M(ci) = c(15);
ci = [32453, 45980, 46713, 46958, 47691, 47936, 48181, 49402, 49647, 55842, 56087, 56332, 56577, 56822, 57067, 60510];
M(ci) = c(16);
ci = [30989, 41588, 42321, 42566, 43299, 43544, 43789, 45010, 45255, 49160, 49405, 49650, 52091, 52336, 52581, 54378, 54623, 54868, 55113, 55358, 55603, 60266];
M(ci) = c(17);
ci = [48557, 52812, 53057, 53302, 53547, 53792, 54037, 55258, 55503, 56480, 56725, 56970, 57947, 58192, 58437, 58770, 59015, 59260, 59505, 59750, 59995, 60240, 60485, 60730, 60998];
M(ci) = c(18);
ci = [5126, 5859, 6104, 7081, 7570, 13915, 14160, 14649, 22082, 22327, 22572, 24281, 31114, 37703, 44407];
M(ci) = c(19);
ci = [4638, 5371, 5616, 6837, 7326, 13671, 13916, 14405, 21350, 21595, 21840, 24037, 30870, 37459, 44163];
M(ci) = c(20);
ci = [6102, 6347, 6592, 7569, 7814, 14403, 14648, 14893, 22814, 23059, 23304, 24525, 31358, 37947, 44651];
M(ci) = c(21);
ci = [34894, 35627, 35872, 37093, 37582, 38315, 38560, 39049, 50630, 50875, 51120, 52341, 58315];
M(ci) = c(22);
ci = [34406, 35139, 35384, 36849, 37338, 38071, 38316, 38805, 49898, 50143, 50388, 52097, 58071];
M(ci) = c(23);
ci = [20742, 21963, 22208, 23673, 24162, 30263, 30508, 30997, 42090, 42335, 42580, 45021, 49414, 52343, 55387];
M(ci) = c(24);
ci = [20010, 21231, 21476, 23429, 23918, 30019, 30264, 30753, 41114, 41359, 41604, 44777, 49170, 52099, 55143];
M(ci) = c(25);
ci = [35870, 36115, 36360, 37581, 37826, 38803, 39048, 51362, 51607, 51852, 52585, 58559];
M(ci) = c(26);
ci = [22206, 22695, 22940, 24161, 24406, 30751, 30996, 31241, 43310, 43555, 43800, 45265, 49658, 52587, 55631];
M(ci) = c(27);
ci = [50754, 51243, 51488, 52221, 52466, 57218, 57463, 57708, 60755];
M(ci) = c(28);
ci = [42214, 43191, 43436, 44901, 45146, 49051, 49296, 49541, 54290, 54535, 54780, 60267];
M(ci) = c(29);
ci = [40262, 40507, 40752, 44169, 44414, 48319, 48564, 48809, 53558, 53803, 54048, 55513, 56978, 58443, 60023];
M(ci) = c(30);
ci = [52950, 53439, 53684, 55149, 55394, 56371, 56616, 56861, 58682, 58927, 59172, 60149, 60394, 60639, 60999];
M(ci) = c(31);
ci = [5134, 5867, 6112, 7089, 7578, 13923, 14168, 14657, 22088, 22333, 22578, 24287, 31120, 37709, 44408];
M(ci) = c(32);
ci = [4646, 5379, 5624, 6845, 7334, 13679, 13924, 14413, 21356, 21601, 21846, 24043, 30876, 37465, 44164];
M(ci) = c(33);
ci = [6110, 6355, 6600, 7577, 7822, 14411, 14656, 14901, 22820, 23065, 23310, 24531, 31364, 37953, 44652];
M(ci) = c(34);
ci = [34902, 35635, 35880, 37101, 37590, 38323, 38568, 39057, 50636, 50881, 51126, 52347, 58316];
M(ci) = c(35);
ci = [34414, 35147, 35392, 36857, 37346, 38079, 38324, 38813, 49904, 50149, 50394, 52103, 58072];
M(ci) = c(36);
ci = [20750, 21971, 22216, 23681, 24170, 30271, 30516, 31005, 42096, 42341, 42586, 45027, 49420, 52349, 55388];
M(ci) = c(37);
ci = [20018, 21239, 21484, 23437, 23926, 30027, 30272, 30761, 41120, 41365, 41610, 44783, 49176, 52105, 55144];
M(ci) = c(38);
ci = [35878, 36123, 36368, 37589, 37834, 38811, 39056, 51368, 51613, 51858, 52591, 58560];
M(ci) = c(39);
ci = [22214, 22703, 22948, 24169, 24414, 30759, 31004, 31249, 43316, 43561, 43806, 45271, 49664, 52593, 55632];
M(ci) = c(40);
ci = [50762, 51251, 51496, 52229, 52474, 57224, 57469, 57714, 60756];
M(ci) = c(41);
ci = [42222, 43199, 43444, 44909, 45154, 49059, 49304, 49549, 54296, 54541, 54786, 60268];
M(ci) = c(42);
ci = [40270, 40515, 40760, 44177, 44422, 48327, 48572, 48817, 53564, 53809, 54054, 55519, 56984, 58449, 60024];
M(ci) = c(43);
ci = [52958, 53447, 53692, 55157, 55402, 56379, 56624, 56869, 58688, 58933, 59178, 60155, 60400, 60645, 61000];
M(ci) = c(44);
ci = [14170, 14659, 15148, 15393, 26974, 27463, 27708, 28685, 28930, 29175, 30640, 31129, 31862, 32107, 32596, 38453, 38698, 39187, 46579, 46824, 47069, 47314, 47559, 48780, 49513];
M(ci) = c(45);
ci = [6850, 7339, 13684, 13929, 14418, 19654, 20143, 20388, 21365, 21610, 21855, 23564, 24053, 30154, 30399, 30888, 36745, 36990, 37479, 41211, 41456, 41701, 41946, 42923, 44144, 44877, 49270, 52199];
M(ci) = c(46);
ci = [37594, 37839, 38816, 39061, 50398, 50887, 51132, 51377, 51622, 51867, 52356, 52601, 57315, 57560, 57805, 58050, 58295, 58540];
M(ci) = c(47);
ci = [755, 1732, 2221, 2710, 4175, 4664, 5153, 6130, 8815, 9304, 9793, 11258, 11747, 12236, 13213, 16386, 17960, 20160, 20893, 22358, 26753, 27486, 28951, 34566, 35055, 36032, 42442, 46835, 50984];
M(ci) = c(48);
ci = [511, 1488, 1977, 2466, 3931, 4420, 4909, 5886, 8571, 9060, 9549, 11014, 11503, 11992, 12969, 16142, 17716, 19916, 20649, 22114, 26509, 27242, 28707, 34322, 34811, 35788, 42198, 46591, 50740];
M(ci) = c(49);
ci = [267, 1244, 1733, 2222, 3199, 3688, 4665, 5642, 8327, 8816, 9305, 10282, 10771, 11748, 12725, 15898, 16984, 17473, 18450, 18939, 19428, 20161, 21626, 25043, 25532, 26021, 26754, 28219, 33100, 33589, 34078, 34567, 35544, 39756, 40245, 41466, 45859, 50252];
M(ci) = c(50);
ci = [23, 1000, 1489, 1978, 2955, 3444, 4421, 5398, 8083, 8572, 9061, 10038, 10527, 11504, 12481, 15654, 16740, 17229, 18206, 18695, 19184, 19917, 21382, 24799, 25288, 25777, 26510, 27975, 32856, 33345, 33834, 34323, 35300, 39512, 40001, 41222, 45615, 50008];
M(ci) = c(51);
ci = [3684, 4661, 5150, 5640, 6129, 6618, 10767, 11744, 12233, 12723, 13212, 21624, 22357, 23090, 28217, 28950, 29683, 35542, 36031, 36520, 43662, 48055, 51716];
M(ci) = c(52);
ci = [3440, 4417, 4906, 5396, 5885, 6374, 10523, 11500, 11989, 12479, 12968, 13457, 21380, 22113, 22846, 27973, 28706, 29439, 35298, 35787, 36276, 43418, 47811, 51472];
M(ci) = c(53);
ci = [19300, 20033, 20766, 21500, 22233, 22966, 25895, 26628, 27361, 28095, 28828, 29561, 41388, 42365, 43586, 45785, 46762, 47983, 50182, 50915, 51648, 54642, 56107, 57572];
M(ci) = c(54);
ci = [19056, 19789, 20522, 21256, 21989, 22722, 25651, 26384, 27117, 27851, 28584, 29317, 41144, 42121, 43342, 45541, 46518, 47739, 49938, 50671, 51404, 54398, 55863, 57328];
M(ci) = c(55);
ci = [40527, 41748, 42725, 42970, 43215, 43948, 44193, 44438, 46147, 47124, 47369, 47614, 48347, 48592, 48837, 51278, 53584, 54073, 54318, 54807, 55052, 55297, 55542, 55787, 56276, 56521, 56766, 57011, 57256, 57745, 57990, 58235, 58480, 58788, 59277, 60254, 60499, 60744];
M(ci) = c(56);
ci = [527, 772, 3945, 4190, 4435, 4924, 5901, 11026, 11271, 11516, 12005, 12982, 16155, 16400, 17733, 17978, 22127, 28716, 35793];
M(ci) = c(57);
ci = [39, 284, 2969, 3214, 3459, 4436, 5413, 10050, 10295, 10540, 11517, 12494, 15667, 15912, 16757, 17002, 21395, 27984, 35305];
M(ci) = c(58);
ci = [5411, 5900, 6389, 12492, 12981, 13470, 22859, 29448, 36281];
M(ci) = c(59);
ci = [20295, 21028, 22493, 26888, 27621, 29086, 42623, 47016, 51165];
M(ci) = c(60);
ci = [17119, 17364, 18585, 18830, 19563, 20296, 21761, 25178, 25423, 26156, 26889, 28354, 33235, 33480, 39937, 40182, 41647, 46040, 50433];
M(ci) = c(61);
ci = [17607, 17852, 19807, 20540, 22005, 26400, 27133, 28598, 42135, 46528, 50677];
M(ci) = c(62);
ci = [16631, 16876, 18097, 18342, 19075, 19808, 21273, 24690, 24935, 25668, 26401, 27866, 32747, 32992, 39449, 39694, 41159, 45552, 49945];
M(ci) = c(63);
ci = [21759, 22492, 23225, 28352, 29085, 29818, 43843, 48236, 51897];
M(ci) = c(64);
ci = [21271, 22004, 22737, 27864, 28597, 29330, 43355, 47748, 51409];
M(ci) = c(65);
ci = [41523, 42500, 43721, 45920, 46897, 48118, 54823, 56288, 57753];
M(ci) = c(66);
ci = [41035, 42012, 43233, 45432, 46409, 47630, 54335, 55800, 57265];
M(ci) = c(67);
ci = [40543, 40788, 43229, 43474, 43963, 44208, 44453, 47626, 47871, 48360, 48605, 48850, 51291, 51536, 53601, 53846, 55555, 57020, 58485];
M(ci) = c(68);
ci = [53475, 53720, 54209, 54454, 54943, 55188, 55433, 55678, 55923, 56412, 56657, 56902, 57147, 57392, 58725, 58970, 60191, 60436, 60681];
M(ci) = c(69);
ci = [785, 1762, 2251, 2740, 4205, 4694, 5183, 6160, 8845, 9334, 9823, 11288, 11777, 12266, 13243, 16416, 17982, 20182, 20915, 22380, 26775, 27508, 28973, 34588, 35077, 36054, 42447, 46840, 50989];
M(ci) = c(70);
ci = [541, 1518, 2007, 2496, 3961, 4450, 4939, 5916, 8601, 9090, 9579, 11044, 11533, 12022, 12999, 16172, 17738, 19938, 20671, 22136, 26531, 27264, 28729, 34344, 34833, 35810, 42203, 46596, 50745];
M(ci) = c(71);
ci = [297, 1274, 1763, 2252, 3229, 3718, 4695, 5672, 8357, 8846, 9335, 10312, 10801, 11778, 12755, 15928, 17006, 17495, 18472, 18961, 19450, 20183, 21648, 25065, 25554, 26043, 26776, 28241, 33122, 33611, 34100, 34589, 35566, 39761, 40250, 41471, 45864, 50257];
M(ci) = c(72);
ci = [53, 1030, 1519, 2008, 2985, 3474, 4451, 5428, 8113, 8602, 9091, 10068, 10557, 11534, 12511, 15684, 16762, 17251, 18228, 18717, 19206, 19939, 21404, 24821, 25310, 25799, 26532, 27997, 32878, 33367, 33856, 34345, 35322, 39517, 40006, 41227, 45620, 50013];
M(ci) = c(73);
ci = [3714, 4691, 5180, 5670, 6159, 6648, 10797, 11774, 12263, 12753, 13242, 21646, 22379, 23112, 28239, 28972, 29705, 35564, 36053, 36542, 43667, 48060, 51721];
M(ci) = c(74);
ci = [3470, 4447, 4936, 5426, 5915, 6404, 10553, 11530, 12019, 12509, 12998, 13487, 21402, 22135, 22868, 27995, 28728, 29461, 35320, 35809, 36298, 43423, 47816, 51477];
M(ci) = c(75);
ci = [19330, 20063, 20796, 21530, 22263, 22996, 25925, 26658, 27391, 28125, 28858, 29591, 41410, 42387, 43608, 45807, 46784, 48005, 50204, 50937, 51670, 54647, 56112, 57577];
M(ci) = c(76);
ci = [19086, 19819, 20552, 21286, 22019, 22752, 25681, 26414, 27147, 27881, 28614, 29347, 41166, 42143, 43364, 45563, 46540, 47761, 49960, 50693, 51426, 54403, 55868, 57333];
M(ci) = c(77);
ci = [40557, 41778, 42755, 43000, 43245, 43978, 44223, 44468, 46177, 47154, 47399, 47644, 48377, 48622, 48867, 51308, 53606, 54095, 54340, 54829, 55074, 55319, 55564, 55809, 56298, 56543, 56788, 57033, 57278, 57767, 58012, 58257, 58502, 58793, 59282, 60259, 60504, 60749];
M(ci) = c(78);
ci = [557, 802, 3975, 4220, 4465, 4954, 5931, 11056, 11301, 11546, 12035, 13012, 16185, 16430, 17755, 18000, 22149, 28738, 35815];
M(ci) = c(79);
ci = [69, 314, 2999, 3244, 3489, 4466, 5443, 10080, 10325, 10570, 11547, 12524, 15697, 15942, 16779, 17024, 21417, 28006, 35327];
M(ci) = c(80);
ci = [5441, 5930, 6419, 12522, 13011, 13500, 22881, 29470, 36303];
M(ci) = c(81);
ci = [20325, 21058, 22523, 26918, 27651, 29116, 42645, 47038, 51187];
M(ci) = c(82);
ci = [17149, 17394, 18615, 18860, 19593, 20326, 21791, 25208, 25453, 26186, 26919, 28384, 33265, 33510, 39959, 40204, 41669, 46062, 50455];
M(ci) = c(83);
ci = [17637, 17882, 19837, 20570, 22035, 26430, 27163, 28628, 42157, 46550, 50699];
M(ci) = c(84);
ci = [16661, 16906, 18127, 18372, 19105, 19838, 21303, 24720, 24965, 25698, 26431, 27896, 32777, 33022, 39471, 39716, 41181, 45574, 49967];
M(ci) = c(85);
ci = [21789, 22522, 23255, 28382, 29115, 29848, 43865, 48258, 51919];
M(ci) = c(86);
ci = [21301, 22034, 22767, 27894, 28627, 29360, 43377, 47770, 51431];
M(ci) = c(87);
ci = [41553, 42530, 43751, 45950, 46927, 48148, 54845, 56310, 57775];
M(ci) = c(88);
ci = [41065, 42042, 43263, 45462, 46439, 47660, 54357, 55822, 57287];
M(ci) = c(89);
ci = [40573, 40818, 43259, 43504, 43993, 44238, 44483, 47656, 47901, 48390, 48635, 48880, 51321, 51566, 53623, 53868, 55577, 57042, 58507];
M(ci) = c(90);
ci = [53505, 53750, 54239, 54484, 54973, 55218, 55463, 55708, 55953, 56442, 56687, 56932, 57177, 57422, 58747, 58992, 60213, 60458, 60703];
M(ci) = c(91);
ci = [1791, 2280, 2769, 4722, 5211, 6188, 8873, 9362, 9851, 11804, 12293, 13270, 20200, 20933, 22398, 26791, 27524, 28989, 34602, 35091, 36068, 42450, 46843, 50992];
M(ci) = c(92);
ci = [1059, 1548, 2037, 3502, 4479, 5456, 8141, 8630, 9119, 10584, 11561, 12538, 19224, 19957, 21422, 25815, 26548, 28013, 33870, 34359, 35336, 41230, 45623, 50016];
M(ci) = c(93);
ci = [19603, 20336, 21069, 21802, 22535, 23268, 26197, 26930, 27663, 28396, 29129, 29862, 41672, 42649, 43870, 46067, 47044, 48265, 50462, 51195, 51928, 54894, 56359, 57824];
M(ci) = c(94);
M = gj(M);
A = zeros(6);
amcols = [250 249 248 247 246 245];
A(1, :) = -M(242, amcols);
A(2, :) = -M(236, amcols);
A(3, :) = -M(230, amcols);
A(4, :) = -M(224, amcols);
A(5, :) = -M(221, amcols);
A(6, :) = -M(218, amcols);
[V D] = eig(A);
sol = V([6, 5, 4, 3, 2],:)./(ones(5, 1)*V(1,:));
if (find(isnan(sol(:))) > 0)
v1 = 10000;
v2 = 10000;
v3 = 10000;
l1 = 10000;
l2 = 10000;
k = 10000;
u1 = 10000;
u2 = 10000;
u3 = 10000;
else
%WARNING: cannot extract all unknowns at once. A back-substitution required (not implemented/automatized)
ev = diag(D);
I = find(not(imag( sol(1,:) )) & not(imag( ev' )));
% Columns 234 through 243
% 'v2*k' 'v3*u1' 'v3*u2' 'v3*u3' 'v3*l1' 'v3*l2' 'v3*k' 'u1' 'u2' 'u3'
% Columns 244 through 250
% 'l1' 'l2' 'k' 'v1' 'v2' 'v3' '1'
if isempty(I) == 0
u2 = ev(I);
l2 = sol(1,I);
k = sol(2,I);
v1 = sol(3,I);
v2 = sol(4,I);
v3 = sol(5,I);
ms = [];
for i = 1:size(k,2)
ms = [l2(i) , k(i), v1(i), v2(i), v3(i), 1]';
l1(i,1) = -M(244,245:250)*ms;
u1(i,1) = -M(241,245:250)*ms;
uu2(i,1) = -M(242,245:250)*ms;
u3(i,1) = -M(243,245:250)*ms;
end
end
end