scs 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/scs/ffi.rb +2 -0
  4. data/lib/scs/version.rb +1 -1
  5. data/vendor/scs/CITATION.cff +2 -2
  6. data/vendor/scs/CMakeLists.txt +136 -6
  7. data/vendor/scs/Makefile +53 -3
  8. data/vendor/scs/README.md +1 -1
  9. data/vendor/scs/include/cones.h +47 -2
  10. data/vendor/scs/include/glbopts.h +1 -1
  11. data/vendor/scs/include/scs.h +29 -0
  12. data/vendor/scs/include/scs_blas.h +4 -0
  13. data/vendor/scs/include/scs_types.h +3 -1
  14. data/vendor/scs/include/util_spectral_cones.h +45 -0
  15. data/vendor/scs/linsys/cpu/direct/private.c +3 -3
  16. data/vendor/scs/linsys/cpu/direct/private.h +2 -1
  17. data/vendor/scs/linsys/csparse.c +1 -1
  18. data/vendor/scs/linsys/cudss/direct/private.c +279 -0
  19. data/vendor/scs/linsys/cudss/direct/private.h +63 -0
  20. data/vendor/scs/linsys/external/qdldl/qdldl_types.h +1 -1
  21. data/vendor/scs/linsys/gpu/indirect/private.c +14 -21
  22. data/vendor/scs/scs.mk +17 -2
  23. data/vendor/scs/src/aa.c +8 -12
  24. data/vendor/scs/src/cones.c +783 -12
  25. data/vendor/scs/src/rw.c +15 -1
  26. data/vendor/scs/src/scs.c +4 -0
  27. data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_IPM.c +660 -0
  28. data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_Newton.c +279 -0
  29. data/vendor/scs/src/spectral_cones/logdeterminant/log_cone_wrapper.c +205 -0
  30. data/vendor/scs/src/spectral_cones/logdeterminant/logdet_cone.c +143 -0
  31. data/vendor/scs/src/spectral_cones/nuclear/ell1_cone.c +221 -0
  32. data/vendor/scs/src/spectral_cones/nuclear/nuclear_cone.c +99 -0
  33. data/vendor/scs/src/spectral_cones/sum-largest/sum_largest_cone.c +196 -0
  34. data/vendor/scs/src/spectral_cones/sum-largest/sum_largest_eval_cone.c +140 -0
  35. data/vendor/scs/src/spectral_cones/util_spectral_cones.c +52 -0
  36. data/vendor/scs/test/problems/complex_PSD.h +83 -0
  37. data/vendor/scs/test/rng.h +4 -4
  38. data/vendor/scs/test/run_tests.c +25 -0
  39. data/vendor/scs/test/spectral_cones_problems/exp_design.h +141 -0
  40. data/vendor/scs/test/spectral_cones_problems/graph_partitioning.h +275 -0
  41. data/vendor/scs/test/spectral_cones_problems/robust_pca.h +253 -0
  42. data/vendor/scs/test/spectral_cones_problems/several_logdet_cones.h +222 -0
  43. data/vendor/scs/test/spectral_cones_problems/several_nuc_cone.h +285 -0
  44. data/vendor/scs/test/spectral_cones_problems/several_sum_largest.h +420 -0
  45. metadata +21 -2
@@ -0,0 +1,420 @@
1
+ #include "glbopts.h"
2
+ #include "linalg.h"
3
+ #include "minunit.h"
4
+ #include "problem_utils.h"
5
+ #include "rw.h"
6
+ #include "scs.h"
7
+ #include "scs_matrix.h"
8
+ #include "util.h"
9
+
10
+ // for SpectralSCS
11
+ static const char *several_sum_largest(void) {
12
+ ScsCone *k = (ScsCone *)scs_calloc(1, sizeof(ScsCone));
13
+ ScsData *d = (ScsData *)scs_calloc(1, sizeof(ScsData));
14
+ ScsSettings *stgs = (ScsSettings *)scs_calloc(1, sizeof(ScsSettings));
15
+ ScsSolution *sol = (ScsSolution *)scs_calloc(1, sizeof(ScsSolution));
16
+ ScsInfo info = {0};
17
+ scs_int exitflag;
18
+ scs_float perr, derr;
19
+ scs_int success;
20
+ const char *fail;
21
+
22
+ /* data */
23
+ scs_float Ax[] = {
24
+ -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1.,
25
+ 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1.,
26
+ -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1.,
27
+ -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1.,
28
+ 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1.,
29
+ -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1.,
30
+ -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1.,
31
+ 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1., -1., 1., -1.,
32
+ -1., 1., -1., -1., 1., -1., -1., 1., -1., -1.};
33
+ scs_int Ai[] = {
34
+ 1, 822, 0, 2, 823, 0, 42, 863, 0, 81, 902, 0, 119, 940, 0,
35
+ 156, 977, 0, 192, 1013, 0, 227, 1048, 0, 261, 1082, 0, 294, 1115, 0,
36
+ 326, 1147, 0, 357, 1178, 0, 387, 1208, 0, 416, 1237, 0, 444, 1265, 0,
37
+ 471, 1292, 0, 497, 1318, 0, 522, 1343, 0, 546, 1367, 0, 569, 1390, 0,
38
+ 591, 1412, 0, 612, 1433, 0, 632, 1453, 0, 651, 1472, 0, 669, 1490, 0,
39
+ 686, 1507, 0, 702, 1523, 0, 717, 1538, 0, 731, 1552, 0, 744, 1565, 0,
40
+ 756, 1577, 0, 767, 1588, 0, 777, 1598, 0, 786, 1607, 0, 794, 1615, 0,
41
+ 801, 1622, 0, 807, 1628, 0, 812, 1633, 0, 816, 1637, 0, 819, 1640, 0,
42
+ 821, 1642};
43
+ scs_int Ap[] = {0, 1, 2, 5, 8, 11, 14, 17, 20, 23, 26,
44
+ 29, 32, 35, 38, 41, 44, 47, 50, 53, 56, 59,
45
+ 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92,
46
+ 95, 98, 101, 104, 107, 110, 113, 116, 119, 122};
47
+
48
+ scs_float b[] = {
49
+ 0., 0., -1., -0., -0., -0.,
50
+ -0., -0., -0., -0., -0., -0.,
51
+ -0., -0., -0., -0., -0., -0.,
52
+ -0., -0., -0., -0., -0., -0.,
53
+ -0., -0., -0., -0., -0., -0.,
54
+ -0., -0., -0., -0., -0., -0.,
55
+ -0., -0., 1.41421356, -0., -0., -0.,
56
+ -1., -0., 1.41421356, -0., -0., -0.,
57
+ -0., -0., -0., -0., -0., -0.,
58
+ -0., -0., -0., -0., -0., -0.,
59
+ -0., -0., -0., -0., -0., -0.,
60
+ -0., -0., -0., -0., -0., -0.,
61
+ -0., -0., -0., -0., -0., -0.,
62
+ -0., -0., -0., -1., -0., -0.,
63
+ -0., -0., -0., -0., -0., -0.,
64
+ -0., -0., -0., -0., -0., -0.,
65
+ -0., -0., -0., -0., -0., -0.,
66
+ -0., -0., -0., -0., -0., -0.,
67
+ -0., -0., -0., -0., -0., -0.,
68
+ -0., -0., -0., 1.41421356, -0., -6.,
69
+ -0., -0., -0., 1.41421356, -0., -0.,
70
+ -0., -0., -0., -0., 1.41421356, 1.41421356,
71
+ -0., -0., -0., -0., -0., -0.,
72
+ 1.41421356, -0., -0., -0., -0., -0.,
73
+ -0., -0., -0., 1.41421356, -0., -0.,
74
+ -0., -0., -0., -0., -0., -0.,
75
+ -2., -0., -0., -0., -0., -0.,
76
+ -0., -0., -0., -0., -0., -0.,
77
+ -0., -0., -0., -0., -0., -0.,
78
+ -0., -0., 1.41421356, -0., -0., 1.41421356,
79
+ -0., -0., -0., -0., -0., -0.,
80
+ -0., -0., -0., -0., -0., -0.,
81
+ -2., -0., 1.41421356, -0., -0., -0.,
82
+ -0., -0., -0., -0., -0., -0.,
83
+ -0., -0., -0., 1.41421356, -0., -0.,
84
+ -0., -0., -0., -0., -0., -0.,
85
+ -0., -0., -0., -0., -0., -0.,
86
+ -0., -0., -0., -0., -0., -3.,
87
+ -0., -0., -0., -0., -0., -0.,
88
+ 1.41421356, -0., -0., -0., -0., -0.,
89
+ -0., -0., -0., -0., -0., -0.,
90
+ -0., -0., -0., -0., -0., -0.,
91
+ -0., -0., -0., -0., -0., 1.41421356,
92
+ 1.41421356, -0., -0., -6., -0., -0.,
93
+ -0., 1.41421356, -0., -0., -0., -0.,
94
+ -0., -0., -0., -0., -0., -0.,
95
+ 1.41421356, -0., -0., -0., -0., -0.,
96
+ -0., 1.41421356, -0., -0., -0., -0.,
97
+ -0., -0., -0., -0., 1.41421356, -0.,
98
+ -1., -0., -0., -0., -0., -0.,
99
+ -0., -0., -0., -0., -0., -0.,
100
+ -0., -0., -0., -0., -0., -0.,
101
+ -0., -0., -0., -0., -0., -0.,
102
+ -0., -0., -0., 1.41421356, -0., -0.,
103
+ -0., -0., -1., -0., -0., -0.,
104
+ -0., -0., -0., -0., -0., -0.,
105
+ -0., -0., -0., -0., -0., -0.,
106
+ -0., -0., -0., 1.41421356, -0., -0.,
107
+ -0., -0., -0., -0., -0., -0.,
108
+ -0., -0., -0., -3., -0., -0.,
109
+ -0., -0., -0., -0., -0., -0.,
110
+ -0., -0., -0., -0., -0., -0.,
111
+ -0., 1.41421356, -0., -0., -0., -0.,
112
+ -0., -0., -0., -0., -0., -0.,
113
+ 1.41421356, -0., 1.41421356, -2., 1.41421356, -0.,
114
+ -0., -0., -0., -0., -0., -0.,
115
+ -0., -0., -0., -0., -0., -0.,
116
+ -0., -0., -0., -0., -0., -0.,
117
+ -0., -0., -0., -0., -0., -0.,
118
+ -0., -0., -3., 1.41421356, -0., -0.,
119
+ -0., -0., -0., -0., -0., -0.,
120
+ -0., -0., -0., -0., -0., -0.,
121
+ -0., 1.41421356, -0., -0., -0., -0.,
122
+ -0., -0., -0., -0., -0., -0.,
123
+ -4., 1.41421356, -0., -0., 1.41421356, -0.,
124
+ -0., -0., -0., -0., -0., -0.,
125
+ -0., -0., -0., -0., -0., -0.,
126
+ -0., -0., -0., -0., -0., -0.,
127
+ -0., -0., -0., -3., -0., -0.,
128
+ -0., -0., -0., -0., -0., -0.,
129
+ -0., -0., -0., 1.41421356, -0., -0.,
130
+ -0., -0., -0., -0., -0., -0.,
131
+ -0., -0., -0., -0., -0., -5.,
132
+ -0., -0., -0., -0., -0., -0.,
133
+ -0., -0., -0., -0., 1.41421356, -0.,
134
+ -0., 1.41421356, -0., -0., -0., -0.,
135
+ -0., -0., 1.41421356, -0., 1.41421356, -0.,
136
+ -2., -0., -0., -0., -0., -0.,
137
+ -0., -0., -0., 1.41421356, -0., 1.41421356,
138
+ -0., -0., -0., -0., -0., -0.,
139
+ -0., -0., -0., -0., -0., -0.,
140
+ -3., -0., -0., -0., -0., -0.,
141
+ -0., -0., -0., -0., -0., -0.,
142
+ -0., -0., -0., -0., 1.41421356, -0.,
143
+ 1.41421356, -0., -0., -0., -0., -0.,
144
+ -0., -0., -0., -0., -0., -0.,
145
+ -0., -0., -0., -0., -0., -0.,
146
+ -0., -0., -0., -0., -0., -0.,
147
+ -0., -0., -0., -2., -0., -0.,
148
+ -0., -0., -0., -0., -0., -0.,
149
+ -0., -0., -0., -0., -0., 1.41421356,
150
+ -0., -0., 1.41421356, -0., -0., -0.,
151
+ -2., -0., -0., -0., -0., -0.,
152
+ -0., -0., -0., -0., -0., -0.,
153
+ -0., 1.41421356, -0., -0., -0., -0.,
154
+ -0., -0., -1., -0., -0., -0.,
155
+ -0., 1.41421356, -0., -0., -0., -0.,
156
+ -0., -0., -0., -0., -0., -0.,
157
+ -0., -0., -0., -2., -0., -0.,
158
+ -0., -0., -0., -0., -0., -0.,
159
+ -0., -0., -0., -0., -0., -0.,
160
+ -0., -0., -0., -2., -0., -0.,
161
+ -0., -0., -0., -0., -0., -0.,
162
+ -0., 1.41421356, -0., -0., 1.41421356, -0.,
163
+ -0., -0., -3., -0., -0., -0.,
164
+ 1.41421356, 1.41421356, -0., -0., -0., -0.,
165
+ -0., -0., -0., -0., -0., -0.,
166
+ -1., -0., -0., -0., -0., -0.,
167
+ -0., -0., -0., -0., -0., -0.,
168
+ -0., -0., -0., -5., -0., -0.,
169
+ -0., -0., -0., 1.41421356, -0., -0.,
170
+ -0., -0., -0., -0., -0., -2.,
171
+ -0., -0., -0., -0., -0., -0.,
172
+ -0., -0., -0., -0., -0., -0.,
173
+ -4., -0., -0., -0., -0., -0.,
174
+ -0., -0., 1.41421356, -0., 1.41421356, -0.,
175
+ -4., -0., -0., -0., -0., -0.,
176
+ -0., -0., -0., -0., -0., -2.,
177
+ -0., -0., -0., -0., 1.41421356, 1.41421356,
178
+ -0., -0., -0., -1., -0., -0.,
179
+ -0., -0., -0., -0., -0., -0.,
180
+ -3., -0., 1.41421356, -0., -0., -0.,
181
+ -0., 1.41421356, -4., -0., -0., -0.,
182
+ -0., -0., -0., -1., -0., -0.,
183
+ -0., -0., -0., -4., -0., -0.,
184
+ -0., 1.41421356, -7., -0., -0., -0.,
185
+ -2., -0., -0., -4., -0., -3.,
186
+ 0., -0., -0., -0., -0., -0.,
187
+ -0., -0., -0., -0., -0., -0.,
188
+ -0., -0., -0., -0., -0., -0.,
189
+ -0., -0., -0., -0., -0., -0.,
190
+ -0., -0., -0., -0., -0., -0.,
191
+ -0., -0., -0., -0., -0., -0.,
192
+ -0., -0., -0., -0., -0., -2.,
193
+ -0., -0., -0., -0., 1.41421356, -0.,
194
+ -0., -0., -0., -0., -0., -0.,
195
+ -0., -0., -0., -0., -0., -0.,
196
+ -0., -0., -0., -0., -0., -0.,
197
+ -0., -0., -0., -0., 1.41421356, -0.,
198
+ -0., -0., -0., -0., -0., -0.,
199
+ -0., -0., -4., -0., -0., -0.,
200
+ -0., -0., -0., 1.41421356, -0., -0.,
201
+ -0., -0., -0., -0., -0., -0.,
202
+ -0., -0., -0., -0., -0., 1.41421356,
203
+ -0., 1.41421356, 1.41421356, -0., -0., -0.,
204
+ -0., -0., -0., -0., -0., -0.,
205
+ -0., -0., -0., -0., -3., -0.,
206
+ -0., -0., -0., -0., -0., -0.,
207
+ -0., 1.41421356, -0., -0., -0., 1.41421356,
208
+ -0., -0., -0., -0., -0., -0.,
209
+ -0., -0., -0., 1.41421356, -0., -0.,
210
+ -0., -0., -0., -0., -0., -0.,
211
+ -0., -0., -0., -0., -0., -4.,
212
+ -0., -0., 1.41421356, -0., 1.41421356, -0.,
213
+ -0., -0., -0., -0., -0., -0.,
214
+ -0., -0., -0., -0., -0., -0.,
215
+ -0., -0., -0., -0., -0., -0.,
216
+ -0., -0., -0., 1.41421356, -0., 1.41421356,
217
+ -0., -0., -0., -0., -0., -3.,
218
+ -0., -0., -0., -0., -0., -0.,
219
+ -0., -0., -0., -0., -0., -0.,
220
+ -0., -0., -0., -0., -0., -0.,
221
+ 1.41421356, -0., -0., -0., -0., -0.,
222
+ -0., -0., -0., -0., 1.41421356, -0.,
223
+ 1.41421356, -0., -0., -0., -1., -0.,
224
+ -0., -0., -0., -0., -0., -0.,
225
+ -0., -0., -0., -0., -0., -0.,
226
+ -0., -0., -0., -0., -0., -0.,
227
+ -0., -0., -0., -0., -0., -0.,
228
+ -0., -0., -0., -0., -0., -0.,
229
+ -0., -0., -2., -0., -0., -0.,
230
+ -0., -0., -0., -0., -0., -0.,
231
+ -0., 1.41421356, -0., -0., -0., -0.,
232
+ -0., -0., -0., -0., -0., -0.,
233
+ -0., -0., -0., -0., -0., -0.,
234
+ -0., -0., -0., -0., -0., -6.,
235
+ -0., -0., -0., -0., -0., -0.,
236
+ -0., -0., -0., 1.41421356, 1.41421356, -0.,
237
+ -0., -0., -0., -0., -0., -0.,
238
+ 1.41421356, -0., -0., -0., -0., -0.,
239
+ 1.41421356, -0., -0., 1.41421356, -0., -0.,
240
+ 1.41421356, -5., -0., -0., -0., 1.41421356,
241
+ -0., -0., -0., -0., -0., -0.,
242
+ -0., -0., -0., -0., -0., -0.,
243
+ -0., -0., -0., -0., -0., -0.,
244
+ 1.41421356, -0., 1.41421356, -0., -0., -0.,
245
+ -0., -0., -2., -0., -0., -0.,
246
+ -0., -0., -0., -0., -0., -0.,
247
+ -0., -0., -0., -0., -0., 1.41421356,
248
+ -0., -0., 1.41421356, -0., -0., -0.,
249
+ -0., -0., -0., -0., -0., -0.,
250
+ -0., -0., -2., -0., -0., -0.,
251
+ -0., -0., -0., -0., -0., -0.,
252
+ -0., -0., -0., -0., -0., -0.,
253
+ 1.41421356, -0., 1.41421356, -0., -0., -0.,
254
+ -0., -0., -0., -0., -0., -0.,
255
+ -0., -3., -0., -0., -0., -0.,
256
+ -0., -0., -0., -0., -0., -0.,
257
+ 1.41421356, -0., -0., -0., -0., -0.,
258
+ -0., -0., -0., -0., 1.41421356, -0.,
259
+ -0., -0., -0., -0., -0., -3.,
260
+ -0., -0., -0., -0., -0., -0.,
261
+ -0., -0., -0., -0., 1.41421356, -0.,
262
+ -0., -0., 1.41421356, -0., -0., -0.,
263
+ -0., -0., -0., -0., -0., -0.,
264
+ -0., -0., -5., -0., -0., -0.,
265
+ 1.41421356, -0., -0., -0., -0., -0.,
266
+ -0., -0., -0., -0., -0., 1.41421356,
267
+ -0., 1.41421356, -0., -0., -0., 1.41421356,
268
+ -0., -0., 1.41421356, -0., -1., -0.,
269
+ -0., -0., -0., -0., 1.41421356, -0.,
270
+ -0., -0., -0., -0., -0., -0.,
271
+ -0., -0., -0., -0., -0., -0.,
272
+ -0., -0., -0., -0., -0., -5.,
273
+ -0., -0., -0., -0., -0., 1.41421356,
274
+ -0., -0., -0., 1.41421356, -0., -0.,
275
+ -0., -0., -0., 1.41421356, -0., 1.41421356,
276
+ -0., -0., -0., -0., -0., -0.,
277
+ -0., -0., -0., -0., -0., -0.,
278
+ -0., -0., -0., -0., -0., -0.,
279
+ -0., -0., -0., -0., -0., -0.,
280
+ -0., -0., -0., -0., -3., -0.,
281
+ -0., -0., -0., -0., -0., -0.,
282
+ -0., -0., -0., -0., -0., -0.,
283
+ -0., -0., -0., -0., -0., -0.,
284
+ -0., -0., -1., -0., -0., -0.,
285
+ -0., -0., -0., -0., -0., -0.,
286
+ -0., -0., -0., -0., -0., -0.,
287
+ -0., -0., -0., -0., -0., -1.,
288
+ -0., -0., -0., -0., -0., -0.,
289
+ -0., -0., 1.41421356, -0., -0., -0.,
290
+ -0., -0., -0., -0., -0., -0.,
291
+ -0., -2., -0., -0., -0., -0.,
292
+ 1.41421356, -0., -0., -0., -0., -0.,
293
+ -0., -0., -0., -0., -0., -0.,
294
+ -0., -0., -2., -0., -0., -0.,
295
+ -0., -0., -0., -0., -0., -0.,
296
+ -0., -0., 1.41421356, -0., -0., -0.,
297
+ -0., -0., -2., -0., -0., -0.,
298
+ -0., -0., -0., -0., -0., -0.,
299
+ -0., -0., -0., -0., -0., -0.,
300
+ -0., -2., -0., -0., -0., -0.,
301
+ -0., -0., -0., -0., -0., -0.,
302
+ -0., -0., -0., -0., -0., -4.,
303
+ -0., -0., 1.41421356, -0., -0., -0.,
304
+ -0., -0., -0., -0., -0., -0.,
305
+ -0., 1.41421356, -4., -0., -0., -0.,
306
+ -0., -0., -0., -0., -0., -0.,
307
+ -0., -0., -0., -0., -2., -0.,
308
+ -0., -0., -0., -0., -0., -0.,
309
+ -0., -0., -0., -0., -0., -3.,
310
+ -0., -0., -0., -0., -0., -0.,
311
+ -0., -0., -0., -0., -0., -3.,
312
+ -0., -0., -0., -0., -0., -0.,
313
+ -0., -0., -0., -0., -1., -0.,
314
+ -0., -0., -0., -0., -0., -0.,
315
+ -0., -0., -1., -0., -0., -0.,
316
+ -0., -0., -0., -0., -0., -4.,
317
+ 1.41421356, -0., -0., -0., -0., -0.,
318
+ -0., -5., -0., 1.41421356, -0., 1.41421356,
319
+ -0., -0., -6., -0., -0., -0.,
320
+ -0., 1.41421356, -2., -0., -0., -0.,
321
+ -0., -2., -0., -0., -0., -1.,
322
+ -0., -0., -1., -0., -3.};
323
+ scs_float c[] = {1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
324
+ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
325
+ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.};
326
+
327
+ scs_int m = 1643;
328
+ scs_int n = 42;
329
+
330
+ scs_int z = 1;
331
+ scs_int l = 0;
332
+ scs_int *q = SCS_NULL;
333
+ scs_int qsize = 0;
334
+ scs_int *s = SCS_NULL;
335
+ scs_int ssize = 0;
336
+ scs_int ep = 0;
337
+ scs_int ed = 0;
338
+ scs_float *p = SCS_NULL;
339
+ scs_int psize = 0;
340
+ scs_int *d_array = SCS_NULL;
341
+ scs_int dsize = 0;
342
+ scs_int *nuc_m = SCS_NULL;
343
+ scs_int *nuc_n = SCS_NULL;
344
+ scs_int nucsize = 0;
345
+ scs_int *ell1 = SCS_NULL;
346
+ scs_int ell1_size = 0;
347
+ scs_int sl_n[] = {40, 40};
348
+ scs_int sl_k[] = {4, 7};
349
+ scs_int sl_size = 2;
350
+
351
+ // computed using mosek (the input of Ax is truncated, and mosek solved
352
+ // the problem with the non-truncated data)
353
+ scs_float opt = -6.8681703775862095;
354
+ /* end data */
355
+
356
+ d->m = m;
357
+ d->n = n;
358
+ d->b = b;
359
+ d->c = c;
360
+
361
+ d->A = (ScsMatrix *)scs_calloc(1, sizeof(ScsMatrix));
362
+
363
+ d->A->m = m;
364
+ d->A->n = n;
365
+ d->A->x = Ax;
366
+ d->A->i = Ai;
367
+ d->A->p = Ap;
368
+
369
+ k->z = z;
370
+ k->l = l;
371
+ k->q = q;
372
+ k->qsize = qsize;
373
+ k->s = s;
374
+ k->ssize = ssize;
375
+ k->ep = ep;
376
+ k->ed = ed;
377
+ k->p = p;
378
+ k->psize = psize;
379
+ k->d = d_array;
380
+ k->dsize = dsize;
381
+ k->nuc_m = nuc_m;
382
+ k->nuc_n = nuc_n;
383
+ k->nucsize = nucsize;
384
+ k->ell1 = ell1;
385
+ k->ell1_size = ell1_size;
386
+ k->sl_n = sl_n;
387
+ k->sl_k = sl_k;
388
+ k->sl_size = sl_size;
389
+
390
+ scs_set_default_settings(stgs);
391
+ stgs->eps_abs = 1e-7;
392
+ stgs->eps_rel = 1e-7;
393
+ stgs->eps_infeas = 1e-9;
394
+
395
+ exitflag = scs(d, k, stgs, sol, &info);
396
+
397
+ perr = SCS(dot)(d->c, sol->x, d->n) - opt;
398
+ derr = -SCS(dot)(d->b, sol->y, d->m) - opt;
399
+
400
+ scs_printf("primal obj error %4e\n", perr);
401
+ scs_printf("dual obj error %4e\n", derr);
402
+
403
+ success = ABS(perr) < 1e-4 && ABS(derr) < 1e-4 && exitflag == SCS_SOLVED;
404
+
405
+ mu_assert("several_sum_largest: SCS failed to produce outputflag SCS_SOLVED",
406
+ success);
407
+
408
+ fail = verify_solution_correct(d, k, stgs, &info, sol, exitflag);
409
+ if (fail)
410
+ return fail;
411
+
412
+ /* kill data */
413
+ scs_free(d->A);
414
+ scs_free(k);
415
+ scs_free(stgs);
416
+ scs_free(d);
417
+ SCS(free_sol)(sol);
418
+
419
+ return fail;
420
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
@@ -56,12 +56,15 @@ files:
56
56
  - vendor/scs/include/scs_types.h
57
57
  - vendor/scs/include/scs_work.h
58
58
  - vendor/scs/include/util.h
59
+ - vendor/scs/include/util_spectral_cones.h
59
60
  - vendor/scs/linsys/cpu/direct/private.c
60
61
  - vendor/scs/linsys/cpu/direct/private.h
61
62
  - vendor/scs/linsys/cpu/indirect/private.c
62
63
  - vendor/scs/linsys/cpu/indirect/private.h
63
64
  - vendor/scs/linsys/csparse.c
64
65
  - vendor/scs/linsys/csparse.h
66
+ - vendor/scs/linsys/cudss/direct/private.c
67
+ - vendor/scs/linsys/cudss/direct/private.h
65
68
  - vendor/scs/linsys/external/amd/LICENSE.txt
66
69
  - vendor/scs/linsys/external/amd/SuiteSparse_config.c
67
70
  - vendor/scs/linsys/external/amd/SuiteSparse_config.h
@@ -105,9 +108,19 @@ files:
105
108
  - vendor/scs/src/rw.c
106
109
  - vendor/scs/src/scs.c
107
110
  - vendor/scs/src/scs_version.c
111
+ - vendor/scs/src/spectral_cones/logdeterminant/log_cone_IPM.c
112
+ - vendor/scs/src/spectral_cones/logdeterminant/log_cone_Newton.c
113
+ - vendor/scs/src/spectral_cones/logdeterminant/log_cone_wrapper.c
114
+ - vendor/scs/src/spectral_cones/logdeterminant/logdet_cone.c
115
+ - vendor/scs/src/spectral_cones/nuclear/ell1_cone.c
116
+ - vendor/scs/src/spectral_cones/nuclear/nuclear_cone.c
117
+ - vendor/scs/src/spectral_cones/sum-largest/sum_largest_cone.c
118
+ - vendor/scs/src/spectral_cones/sum-largest/sum_largest_eval_cone.c
119
+ - vendor/scs/src/spectral_cones/util_spectral_cones.c
108
120
  - vendor/scs/src/util.c
109
121
  - vendor/scs/test/minunit.h
110
122
  - vendor/scs/test/problem_utils.h
123
+ - vendor/scs/test/problems/complex_PSD.h
111
124
  - vendor/scs/test/problems/degenerate.h
112
125
  - vendor/scs/test/problems/hs21_tiny_qp.h
113
126
  - vendor/scs/test/problems/hs21_tiny_qp_rw.h
@@ -132,6 +145,12 @@ files:
132
145
  - vendor/scs/test/rng.h
133
146
  - vendor/scs/test/run_from_file.c
134
147
  - vendor/scs/test/run_tests.c
148
+ - vendor/scs/test/spectral_cones_problems/exp_design.h
149
+ - vendor/scs/test/spectral_cones_problems/graph_partitioning.h
150
+ - vendor/scs/test/spectral_cones_problems/robust_pca.h
151
+ - vendor/scs/test/spectral_cones_problems/several_logdet_cones.h
152
+ - vendor/scs/test/spectral_cones_problems/several_nuc_cone.h
153
+ - vendor/scs/test/spectral_cones_problems/several_sum_largest.h
135
154
  homepage: https://github.com/ankane/scs-ruby
136
155
  licenses:
137
156
  - MIT
@@ -150,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
169
  - !ruby/object:Gem::Version
151
170
  version: '0'
152
171
  requirements: []
153
- rubygems_version: 3.6.7
172
+ rubygems_version: 3.6.9
154
173
  specification_version: 4
155
174
  summary: SCS - the splitting conic solver - for Ruby
156
175
  test_files: []