scs 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +1 -1
  5. data/lib/scs/version.rb +1 -1
  6. data/vendor/scs/CITATION.cff +2 -2
  7. data/vendor/scs/CMakeLists.txt +284 -168
  8. data/vendor/scs/Makefile +43 -18
  9. data/vendor/scs/README.md +1 -1
  10. data/vendor/scs/include/glbopts.h +32 -13
  11. data/vendor/scs/include/linsys.h +8 -8
  12. data/vendor/scs/include/scs.h +6 -2
  13. data/vendor/scs/include/scs_types.h +3 -1
  14. data/vendor/scs/include/scs_work.h +9 -8
  15. data/vendor/scs/include/util.h +1 -1
  16. data/vendor/scs/linsys/cpu/direct/private.c +32 -153
  17. data/vendor/scs/linsys/cpu/direct/private.h +6 -6
  18. data/vendor/scs/linsys/cpu/indirect/private.c +9 -22
  19. data/vendor/scs/linsys/cpu/indirect/private.h +4 -2
  20. data/vendor/scs/linsys/csparse.c +140 -12
  21. data/vendor/scs/linsys/csparse.h +10 -17
  22. data/vendor/scs/linsys/gpu/gpu.c +4 -4
  23. data/vendor/scs/linsys/gpu/gpu.h +1 -1
  24. data/vendor/scs/linsys/gpu/indirect/private.c +15 -26
  25. data/vendor/scs/linsys/mkl/direct/private.c +182 -0
  26. data/vendor/scs/linsys/mkl/direct/private.h +38 -0
  27. data/vendor/scs/linsys/scs_matrix.c +11 -5
  28. data/vendor/scs/scs.mk +39 -26
  29. data/vendor/scs/src/cones.c +15 -159
  30. data/vendor/scs/src/exp_cone.c +399 -0
  31. data/vendor/scs/src/normalize.c +4 -2
  32. data/vendor/scs/src/rw.c +93 -38
  33. data/vendor/scs/src/scs.c +83 -52
  34. data/vendor/scs/src/util.c +12 -3
  35. data/vendor/scs/test/minunit.h +2 -1
  36. data/vendor/scs/test/problem_utils.h +2 -1
  37. data/vendor/scs/test/problems/hs21_tiny_qp.h +1 -1
  38. data/vendor/scs/test/problems/hs21_tiny_qp_rw.h +8 -3
  39. data/vendor/scs/test/problems/max_ent +0 -0
  40. data/vendor/scs/test/problems/max_ent.h +8 -0
  41. data/vendor/scs/test/problems/random_prob.h +2 -43
  42. data/vendor/scs/test/problems/rob_gauss_cov_est.h +7 -2
  43. data/vendor/scs/test/problems/test_exp_cone.h +84 -0
  44. data/vendor/scs/test/problems/test_prob_from_data_file.h +57 -0
  45. data/vendor/scs/test/run_from_file.c +7 -1
  46. data/vendor/scs/test/run_tests.c +22 -9
  47. metadata +10 -3
@@ -60,7 +60,7 @@ int main(int argc, char **argv) {
60
60
  }
61
61
  for (i = 2; i < argc; i += 2) {
62
62
  if (argc < i + 2) {
63
- scs_printf("Incorrect number of arguments supplied\n.");
63
+ scs_printf("Incorrect number of arguments supplied.\n");
64
64
 
65
65
  SCS(free_data)(d);
66
66
  SCS(free_cone)(k);
@@ -78,6 +78,12 @@ int main(int argc, char **argv) {
78
78
  return -1;
79
79
  }
80
80
  }
81
+ if (!stgs->verbose) {
82
+ scs_printf(
83
+ "File data set `verbose` to 0, SCS will not output information. Add "
84
+ "`verbose 1` to call to override.\n");
85
+ }
86
+ scs_printf("Solving problem.\n");
81
87
  sol = (ScsSolution *)scs_calloc(1, sizeof(ScsSolution));
82
88
  scs(d, k, stgs, sol, &info);
83
89
 
@@ -8,34 +8,45 @@
8
8
  /* Include Tests */
9
9
  #include "problems/degenerate.h"
10
10
  #include "problems/hs21_tiny_qp.h"
11
- #include "problems/hs21_tiny_qp_rw.h"
12
11
  #include "problems/infeasible_tiny_qp.h"
13
12
  #include "problems/qafiro_tiny_qp.h"
14
13
  #include "problems/small_lp.h"
15
14
  #include "problems/small_qp.h"
16
- #include "problems/test_validation.h"
15
+ #include "problems/test_exp_cone.h"
17
16
  #include "problems/unbounded_tiny_qp.h"
18
17
 
18
+ int tests_run = 0;
19
+
20
+ /* decrement tests_run since mu_unit will increment it, so this cancels */
19
21
  #define _SKIP(problem) \
20
22
  char *problem(void) { \
21
23
  scs_printf("skipped\n"); \
24
+ tests_run--; \
22
25
  return 0; \
23
26
  }
24
27
 
25
- #ifdef USE_LAPACK /* solve SDPs, requires blas / lapack */
26
- #include "problems/rob_gauss_cov_est.h"
28
+ #if NO_VALIDATE == 0
29
+ #include "problems/test_validation.h"
27
30
  #else
28
- _SKIP(rob_gauss_cov_est)
31
+ _SKIP(test_validation)
29
32
  #endif
30
33
 
31
- /* TODO: this reads a file written with 32bit ints */
32
- #if defined(USE_LAPACK) && !defined(DLONG)
34
+ /* solve SDPs, requires blas / lapack */
35
+ #if defined(USE_LAPACK) && NO_READ_WRITE == 0
33
36
  #include "problems/random_prob.h"
37
+ #include "problems/rob_gauss_cov_est.h"
34
38
  #else
39
+ _SKIP(rob_gauss_cov_est)
35
40
  _SKIP(random_prob)
36
41
  #endif
37
42
 
38
- int tests_run = 0;
43
+ #if NO_READ_WRITE == 0 /* reads / writes */
44
+ #include "problems/hs21_tiny_qp_rw.h"
45
+ #include "problems/max_ent.h"
46
+ #else
47
+ _SKIP(hs21_tiny_qp_rw)
48
+ _SKIP(max_ent)
49
+ #endif
39
50
 
40
51
  static const char *all_tests(void) {
41
52
  mu_run_test(test_validation);
@@ -49,13 +60,15 @@ static const char *all_tests(void) {
49
60
  mu_run_test(infeasible_tiny_qp);
50
61
  mu_run_test(unbounded_tiny_qp);
51
62
  mu_run_test(random_prob);
63
+ mu_run_test(max_ent);
64
+ mu_run_test(test_exp_cone);
52
65
  return 0;
53
66
  }
54
-
55
67
  int main(void) {
56
68
  const char *result = all_tests();
57
69
  if (result != 0) {
58
70
  scs_printf("%s\n", result);
71
+ scs_printf("TEST FAILED!\n");
59
72
  } else {
60
73
  scs_printf("ALL TESTS PASSED\n");
61
74
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-07 00:00:00.000000000 Z
11
+ date: 2023-04-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: andrew@ankane.org
@@ -79,12 +79,15 @@ files:
79
79
  - vendor/scs/linsys/gpu/gpu.h
80
80
  - vendor/scs/linsys/gpu/indirect/private.c
81
81
  - vendor/scs/linsys/gpu/indirect/private.h
82
+ - vendor/scs/linsys/mkl/direct/private.c
83
+ - vendor/scs/linsys/mkl/direct/private.h
82
84
  - vendor/scs/linsys/scs_matrix.c
83
85
  - vendor/scs/linsys/scs_matrix.h
84
86
  - vendor/scs/scs.mk
85
87
  - vendor/scs/src/aa.c
86
88
  - vendor/scs/src/cones.c
87
89
  - vendor/scs/src/ctrlc.c
90
+ - vendor/scs/src/exp_cone.c
88
91
  - vendor/scs/src/linalg.c
89
92
  - vendor/scs/src/normalize.c
90
93
  - vendor/scs/src/rw.c
@@ -97,12 +100,16 @@ files:
97
100
  - vendor/scs/test/problems/hs21_tiny_qp.h
98
101
  - vendor/scs/test/problems/hs21_tiny_qp_rw.h
99
102
  - vendor/scs/test/problems/infeasible_tiny_qp.h
103
+ - vendor/scs/test/problems/max_ent
104
+ - vendor/scs/test/problems/max_ent.h
100
105
  - vendor/scs/test/problems/qafiro_tiny_qp.h
101
106
  - vendor/scs/test/problems/random_prob
102
107
  - vendor/scs/test/problems/random_prob.h
103
108
  - vendor/scs/test/problems/rob_gauss_cov_est.h
104
109
  - vendor/scs/test/problems/small_lp.h
105
110
  - vendor/scs/test/problems/small_qp.h
111
+ - vendor/scs/test/problems/test_exp_cone.h
112
+ - vendor/scs/test/problems/test_prob_from_data_file.h
106
113
  - vendor/scs/test/problems/test_validation.h
107
114
  - vendor/scs/test/problems/unbounded_tiny_qp.h
108
115
  - vendor/scs/test/random_socp_prob.c
@@ -128,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
135
  - !ruby/object:Gem::Version
129
136
  version: '0'
130
137
  requirements: []
131
- rubygems_version: 3.3.7
138
+ rubygems_version: 3.4.10
132
139
  signing_key:
133
140
  specification_version: 4
134
141
  summary: SCS - the splitting conic solver - for Ruby