scs 0.5.5 → 0.5.6
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/scs/solver.rb +11 -7
- data/lib/scs/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: daba43654b4362faba71b6ba3a761a425ff0ba09f4ab9a033cede2b35f872914
|
|
4
|
+
data.tar.gz: c52bbe956dc6b007b7acca5a2e3f987ff1f7916b741aa9caf05f456f1329685a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ec75c690af938ab997fa83549a12164153ca30fcc2973d3ba75b33f22ed2d6cd7f6f79fdc87444e9cf81ecbde68dcc1ef40269defbaa7f244c6f456c78cdb2be
|
|
7
|
+
data.tar.gz: 9c135f24e8cf9318ee1ed3d5e1d3df8cdaa8fcd3ad19f5c116c4eff521657a4a3ace659aa45db9cfe2ed27e7e0e7ab6c5afc3a84d6c62d89705043246a9d740e
|
data/CHANGELOG.md
CHANGED
data/lib/scs/solver.rb
CHANGED
|
@@ -10,12 +10,21 @@ module SCS
|
|
|
10
10
|
settings = create_settings(settings)
|
|
11
11
|
ccone = create_cone(cone)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
# alloc pointers and hold refs
|
|
14
|
+
solution_ptr = Fiddle::Pointer["\x00" * ffi::Solution.size] # alloc clear memory
|
|
15
|
+
x_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_DOUBLE * cdata.n, Fiddle::RUBY_FREE)
|
|
16
|
+
y_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_DOUBLE * cdata.m, Fiddle::RUBY_FREE)
|
|
17
|
+
s_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_DOUBLE * cdata.m, Fiddle::RUBY_FREE)
|
|
18
|
+
|
|
19
|
+
solution = ffi::Solution.new(solution_ptr)
|
|
20
|
+
solution.x = x_ptr
|
|
21
|
+
solution.y = y_ptr
|
|
22
|
+
solution.s = s_ptr
|
|
23
|
+
|
|
14
24
|
info = ffi::Info.malloc(Fiddle::RUBY_FREE)
|
|
15
25
|
|
|
16
26
|
ffi.scs(cdata, ccone, settings, solution, info)
|
|
17
27
|
|
|
18
|
-
solution = ffi::Solution.new(solution)
|
|
19
28
|
x = read_float_array(solution.x, cdata.n)
|
|
20
29
|
y = read_float_array(solution.y, cdata.m)
|
|
21
30
|
s = read_float_array(solution.s, cdata.m)
|
|
@@ -185,11 +194,6 @@ module SCS
|
|
|
185
194
|
end
|
|
186
195
|
end
|
|
187
196
|
|
|
188
|
-
# alloc clear memory
|
|
189
|
-
def calloc(size)
|
|
190
|
-
Fiddle::Pointer["\x00" * size]
|
|
191
|
-
end
|
|
192
|
-
|
|
193
197
|
def ffi
|
|
194
198
|
@ffi
|
|
195
199
|
end
|
data/lib/scs/version.rb
CHANGED