scs 0.3.2 → 0.4.1

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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +35 -6
  5. data/lib/scs/matrix.rb +72 -0
  6. data/lib/scs/solver.rb +19 -26
  7. data/lib/scs/version.rb +1 -1
  8. data/lib/scs.rb +1 -0
  9. data/vendor/scs/CITATION.cff +2 -2
  10. data/vendor/scs/CMakeLists.txt +285 -169
  11. data/vendor/scs/Makefile +43 -18
  12. data/vendor/scs/README.md +3 -1
  13. data/vendor/scs/include/cones.h +5 -3
  14. data/vendor/scs/include/glbopts.h +35 -17
  15. data/vendor/scs/include/linsys.h +8 -8
  16. data/vendor/scs/include/normalize.h +1 -0
  17. data/vendor/scs/include/rw.h +3 -3
  18. data/vendor/scs/include/scs.h +51 -24
  19. data/vendor/scs/include/scs_types.h +3 -1
  20. data/vendor/scs/include/scs_work.h +13 -15
  21. data/vendor/scs/include/util.h +4 -2
  22. data/vendor/scs/linsys/cpu/direct/private.c +32 -153
  23. data/vendor/scs/linsys/cpu/direct/private.h +6 -6
  24. data/vendor/scs/linsys/cpu/indirect/private.c +9 -22
  25. data/vendor/scs/linsys/cpu/indirect/private.h +4 -2
  26. data/vendor/scs/linsys/csparse.c +140 -12
  27. data/vendor/scs/linsys/csparse.h +10 -17
  28. data/vendor/scs/linsys/external/amd/LICENSE.txt +0 -897
  29. data/vendor/scs/linsys/external/amd/SuiteSparse_config.c +4 -2
  30. data/vendor/scs/linsys/external/amd/SuiteSparse_config.h +0 -5
  31. data/vendor/scs/linsys/gpu/gpu.c +4 -4
  32. data/vendor/scs/linsys/gpu/gpu.h +1 -1
  33. data/vendor/scs/linsys/gpu/indirect/private.c +15 -26
  34. data/vendor/scs/linsys/mkl/direct/private.c +182 -0
  35. data/vendor/scs/linsys/mkl/direct/private.h +38 -0
  36. data/vendor/scs/linsys/scs_matrix.c +49 -72
  37. data/vendor/scs/linsys/scs_matrix.h +4 -3
  38. data/vendor/scs/scs.mk +39 -30
  39. data/vendor/scs/src/aa.c +0 -4
  40. data/vendor/scs/src/cones.c +78 -184
  41. data/vendor/scs/src/exp_cone.c +399 -0
  42. data/vendor/scs/src/normalize.c +51 -0
  43. data/vendor/scs/src/rw.c +139 -76
  44. data/vendor/scs/src/scs.c +275 -202
  45. data/vendor/scs/src/util.c +36 -13
  46. data/vendor/scs/test/minunit.h +2 -1
  47. data/vendor/scs/test/problem_utils.h +5 -4
  48. data/vendor/scs/test/problems/degenerate.h +1 -0
  49. data/vendor/scs/test/problems/hs21_tiny_qp.h +2 -1
  50. data/vendor/scs/test/problems/hs21_tiny_qp_rw.h +13 -4
  51. data/vendor/scs/test/problems/infeasible_tiny_qp.h +1 -0
  52. data/vendor/scs/test/problems/max_ent +0 -0
  53. data/vendor/scs/test/problems/max_ent.h +8 -0
  54. data/vendor/scs/test/problems/qafiro_tiny_qp.h +2 -1
  55. data/vendor/scs/test/problems/random_prob.h +2 -39
  56. data/vendor/scs/test/problems/rob_gauss_cov_est.h +15 -3
  57. data/vendor/scs/test/problems/small_lp.h +4 -1
  58. data/vendor/scs/test/problems/small_qp.h +42 -7
  59. data/vendor/scs/test/problems/test_exp_cone.h +84 -0
  60. data/vendor/scs/test/problems/test_prob_from_data_file.h +57 -0
  61. data/vendor/scs/test/problems/test_validation.h +4 -1
  62. data/vendor/scs/test/problems/unbounded_tiny_qp.h +3 -3
  63. data/vendor/scs/test/random_socp_prob.c +3 -1
  64. data/vendor/scs/test/run_from_file.c +22 -4
  65. data/vendor/scs/test/run_tests.c +22 -9
  66. metadata +12 -4
@@ -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.3.2
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-01-17 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
@@ -23,6 +23,7 @@ files:
23
23
  - ext/scs/extconf.rb
24
24
  - lib/scs.rb
25
25
  - lib/scs/ffi.rb
26
+ - lib/scs/matrix.rb
26
27
  - lib/scs/solver.rb
27
28
  - lib/scs/version.rb
28
29
  - vendor/scs/CITATION.cff
@@ -78,12 +79,15 @@ files:
78
79
  - vendor/scs/linsys/gpu/gpu.h
79
80
  - vendor/scs/linsys/gpu/indirect/private.c
80
81
  - vendor/scs/linsys/gpu/indirect/private.h
82
+ - vendor/scs/linsys/mkl/direct/private.c
83
+ - vendor/scs/linsys/mkl/direct/private.h
81
84
  - vendor/scs/linsys/scs_matrix.c
82
85
  - vendor/scs/linsys/scs_matrix.h
83
86
  - vendor/scs/scs.mk
84
87
  - vendor/scs/src/aa.c
85
88
  - vendor/scs/src/cones.c
86
89
  - vendor/scs/src/ctrlc.c
90
+ - vendor/scs/src/exp_cone.c
87
91
  - vendor/scs/src/linalg.c
88
92
  - vendor/scs/src/normalize.c
89
93
  - vendor/scs/src/rw.c
@@ -96,12 +100,16 @@ files:
96
100
  - vendor/scs/test/problems/hs21_tiny_qp.h
97
101
  - vendor/scs/test/problems/hs21_tiny_qp_rw.h
98
102
  - vendor/scs/test/problems/infeasible_tiny_qp.h
103
+ - vendor/scs/test/problems/max_ent
104
+ - vendor/scs/test/problems/max_ent.h
99
105
  - vendor/scs/test/problems/qafiro_tiny_qp.h
100
106
  - vendor/scs/test/problems/random_prob
101
107
  - vendor/scs/test/problems/random_prob.h
102
108
  - vendor/scs/test/problems/rob_gauss_cov_est.h
103
109
  - vendor/scs/test/problems/small_lp.h
104
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
105
113
  - vendor/scs/test/problems/test_validation.h
106
114
  - vendor/scs/test/problems/unbounded_tiny_qp.h
107
115
  - vendor/scs/test/random_socp_prob.c
@@ -120,14 +128,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
128
  requirements:
121
129
  - - ">="
122
130
  - !ruby/object:Gem::Version
123
- version: '2.4'
131
+ version: '2.7'
124
132
  required_rubygems_version: !ruby/object:Gem::Requirement
125
133
  requirements:
126
134
  - - ">="
127
135
  - !ruby/object:Gem::Version
128
136
  version: '0'
129
137
  requirements: []
130
- rubygems_version: 3.3.3
138
+ rubygems_version: 3.4.10
131
139
  signing_key:
132
140
  specification_version: 4
133
141
  summary: SCS - the splitting conic solver - for Ruby