nlopt 0.1.2 → 0.2.0
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 +8 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/lib/nlopt/opt.rb +9 -9
- data/lib/nlopt/version.rb +1 -1
- data/lib/nlopt.rb +2 -2
- metadata +4 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d86d2057d5924c05984301bdd330d1ff775bef10d7f2e96200ef9b8173760b05
|
|
4
|
+
data.tar.gz: babcd047a506a8a232360391f3fcbfbc729e87f405491c067f06328dfb28853a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b231f7df8f4f4eb546fd67c09b8bc2e502740ef4f97b309c0ba7cfd2a4b74835ebf27ca53b3b8bf9b6c3c80286145fd632a277af9e3f512f1f34b55f07cb9642
|
|
7
|
+
data.tar.gz: 1fbd0ae321752a3405c654a16e1fe09796a56dabfa0a076674bd1dfbbfc33d11b431a556dafb38ff6a9918d33912d2066c63cc80e46b24f7daf0b1184a2d6c2c
|
data/CHANGELOG.md
CHANGED
data/LICENSE.txt
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Copyright (c) 2007-2024 Massachusetts Institute of Technology
|
|
2
|
-
Copyright (c) 2024 Andrew Kane
|
|
2
|
+
Copyright (c) 2024-2026 Andrew Kane
|
|
3
3
|
|
|
4
4
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
5
5
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
data/lib/nlopt/opt.rb
CHANGED
|
@@ -3,7 +3,7 @@ module NLopt
|
|
|
3
3
|
attr_reader :last_optimum_value
|
|
4
4
|
|
|
5
5
|
def initialize(algorithm, n)
|
|
6
|
-
algorithm = FFI.nlopt_algorithm_from_string(algorithm)
|
|
6
|
+
algorithm = FFI.nlopt_algorithm_from_string(+algorithm)
|
|
7
7
|
if algorithm < 0
|
|
8
8
|
raise ArgumentError, "Invalid algorithm"
|
|
9
9
|
end
|
|
@@ -170,15 +170,15 @@ module NLopt
|
|
|
170
170
|
end
|
|
171
171
|
|
|
172
172
|
def set_param(name, val)
|
|
173
|
-
check_res FFI.nlopt_set_param(@opt, name, val)
|
|
173
|
+
check_res FFI.nlopt_set_param(@opt, +name, val)
|
|
174
174
|
end
|
|
175
175
|
|
|
176
176
|
def param(name, defaultval)
|
|
177
|
-
FFI.nlopt_get_param(@opt, name, defaultval)
|
|
177
|
+
FFI.nlopt_get_param(@opt, +name, defaultval)
|
|
178
178
|
end
|
|
179
179
|
|
|
180
180
|
def has_param?(name)
|
|
181
|
-
FFI.nlopt_has_param(@opt, name) == 1
|
|
181
|
+
FFI.nlopt_has_param(@opt, +name) == 1
|
|
182
182
|
end
|
|
183
183
|
|
|
184
184
|
def num_params
|
|
@@ -192,12 +192,12 @@ module NLopt
|
|
|
192
192
|
|
|
193
193
|
def optimize(init)
|
|
194
194
|
x = alloc_dptr(init)
|
|
195
|
-
opt_f = Fiddle::Pointer.malloc(Fiddle::SIZEOF_DOUBLE)
|
|
195
|
+
opt_f = Fiddle::Pointer.malloc(Fiddle::SIZEOF_DOUBLE, Fiddle::RUBY_FREE)
|
|
196
196
|
res = FFI.nlopt_optimize(@opt, x, opt_f)
|
|
197
197
|
|
|
198
198
|
if res < 0 && res != -4
|
|
199
199
|
errmsg = FFI.nlopt_get_errmsg(@opt)
|
|
200
|
-
msg = !errmsg.null? ? errmsg.to_s : "Bad result: #{FFI.nlopt_result_to_string(res)
|
|
200
|
+
msg = !errmsg.null? ? errmsg.to_s : "Bad result: #{FFI.nlopt_result_to_string(res)}"
|
|
201
201
|
raise Error, msg
|
|
202
202
|
end
|
|
203
203
|
|
|
@@ -252,7 +252,7 @@ module NLopt
|
|
|
252
252
|
|
|
253
253
|
def check_res(res)
|
|
254
254
|
if res != 1
|
|
255
|
-
raise Error, "Bad result: #{FFI.nlopt_result_to_string(res)
|
|
255
|
+
raise Error, "Bad result: #{FFI.nlopt_result_to_string(res)}"
|
|
256
256
|
end
|
|
257
257
|
end
|
|
258
258
|
|
|
@@ -266,11 +266,11 @@ module NLopt
|
|
|
266
266
|
|
|
267
267
|
def read_dptr(ptr, size = nil)
|
|
268
268
|
size ||= ptr.size
|
|
269
|
-
ptr.
|
|
269
|
+
ptr.to_str(size).unpack("d*")
|
|
270
270
|
end
|
|
271
271
|
|
|
272
272
|
def out_dptr
|
|
273
|
-
ptr = Fiddle::Pointer.malloc(dimension * Fiddle::SIZEOF_DOUBLE)
|
|
273
|
+
ptr = Fiddle::Pointer.malloc(dimension * Fiddle::SIZEOF_DOUBLE, Fiddle::RUBY_FREE)
|
|
274
274
|
res = yield ptr
|
|
275
275
|
check_res res
|
|
276
276
|
read_dptr(ptr)
|
data/lib/nlopt/version.rb
CHANGED
data/lib/nlopt.rb
CHANGED
|
@@ -33,9 +33,9 @@ module NLopt
|
|
|
33
33
|
autoload :FFI, "nlopt/ffi"
|
|
34
34
|
|
|
35
35
|
def self.lib_version
|
|
36
|
-
major, minor, bugfix = 3.times.map { Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT) }
|
|
36
|
+
major, minor, bugfix = 3.times.map { Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT, Fiddle::RUBY_FREE) }
|
|
37
37
|
FFI.nlopt_version(major, minor, bugfix)
|
|
38
|
-
[major, minor, bugfix].map { |v| v.
|
|
38
|
+
[major, minor, bugfix].map { |v| v.to_str(v.size).unpack1("i") }.join(".")
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def self.srand(seed)
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nlopt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrew Kane
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: fiddle
|
|
@@ -24,7 +23,6 @@ dependencies:
|
|
|
24
23
|
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: '0'
|
|
27
|
-
description:
|
|
28
26
|
email: andrew@ankane.org
|
|
29
27
|
executables: []
|
|
30
28
|
extensions: []
|
|
@@ -42,7 +40,6 @@ homepage: https://github.com/ankane/nlopt-ruby
|
|
|
42
40
|
licenses:
|
|
43
41
|
- MIT
|
|
44
42
|
metadata: {}
|
|
45
|
-
post_install_message:
|
|
46
43
|
rdoc_options: []
|
|
47
44
|
require_paths:
|
|
48
45
|
- lib
|
|
@@ -50,15 +47,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
50
47
|
requirements:
|
|
51
48
|
- - ">="
|
|
52
49
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '3.
|
|
50
|
+
version: '3.3'
|
|
54
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
52
|
requirements:
|
|
56
53
|
- - ">="
|
|
57
54
|
- !ruby/object:Gem::Version
|
|
58
55
|
version: '0'
|
|
59
56
|
requirements: []
|
|
60
|
-
rubygems_version:
|
|
61
|
-
signing_key:
|
|
57
|
+
rubygems_version: 4.0.6
|
|
62
58
|
specification_version: 4
|
|
63
59
|
summary: Nonlinear optimization for Ruby
|
|
64
60
|
test_files: []
|