scs 0.3.2 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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