lbfgsb 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.clang-format +149 -0
- data/.github/workflows/build.yml +2 -2
- data/CHANGELOG.md +3 -0
- data/Gemfile +3 -1
- data/Steepfile +20 -0
- data/ext/lbfgsb/lbfgsbext.c +8 -15
- data/ext/lbfgsb/lbfgsbext.h +1 -0
- data/ext/lbfgsb/src/blas.c +6 -10
- data/ext/lbfgsb/src/blas.h +4 -4
- data/ext/lbfgsb/src/lbfgsb.c +96 -176
- data/ext/lbfgsb/src/lbfgsb.h +68 -109
- data/ext/lbfgsb/src/linpack.c +55 -53
- data/ext/lbfgsb/src/linpack.h +2 -2
- data/lib/lbfgsb/version.rb +1 -1
- data/sig/lbfgsb.rbs +31 -0
- data/sig/patch.rbs +11 -0
- metadata +10 -6
data/ext/lbfgsb/src/lbfgsb.h
CHANGED
@@ -1,122 +1,81 @@
|
|
1
1
|
#ifndef LBFGSB_RB_LBFGSB_H_
|
2
2
|
#define LBFGSB_RB_LBFGSB_H_
|
3
3
|
|
4
|
-
#include <stdio.h>
|
5
|
-
#include <stdlib.h>
|
6
4
|
#include <float.h>
|
7
5
|
#include <math.h>
|
6
|
+
#include <stdio.h>
|
7
|
+
#include <stdlib.h>
|
8
8
|
#include <string.h>
|
9
9
|
#include <time.h>
|
10
10
|
|
11
11
|
#define TRUE_ (1)
|
12
12
|
#define FALSE_ (0)
|
13
13
|
|
14
|
-
extern int setulb_(long
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
extern int
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
extern int
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
extern int
|
68
|
-
|
69
|
-
extern int
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
double *r__, long *itail, long *iupdat, long *col,
|
81
|
-
long *head, double *theta, double *rr, double *dr,
|
82
|
-
double *stp, double *dtd);
|
83
|
-
|
84
|
-
extern int prn1lb_(long *n, long *m, double *l,
|
85
|
-
double *u, double *x, long *iprint, long *itfile,
|
86
|
-
double *epsmch);
|
87
|
-
|
88
|
-
extern int prn2lb_(long *n, double *x, double *f,
|
89
|
-
double *g, long *iprint, long *itfile, long *iter,
|
90
|
-
long *nfgv, long *nact, double *sbgnrm, long *nseg, char*word,
|
91
|
-
long *iword, long *iback, double *stp, double *xstep);
|
92
|
-
|
93
|
-
extern int prn3lb_(long *n, double *x, double *f, char *task,
|
94
|
-
long *iprint, long *info, long *itfile, long *iter,
|
95
|
-
long *nfgv, long *nintol, long *nskip, long *nact,
|
96
|
-
double *sbgnrm, double *time, long *nseg, char *word,
|
97
|
-
long *iback, double *stp, double *xstep, long *k,
|
98
|
-
double *cachyt, double *sbtime, double *lnscht);
|
99
|
-
|
100
|
-
extern int projgr_(long *n, double *l, double *u,
|
101
|
-
long *nbd, double *x, double *g, double *sbgnrm);
|
102
|
-
|
103
|
-
extern int subsm_(long *n, long *m, long *nsub, long *ind,
|
104
|
-
double *l, double *u, long *nbd, double *x,
|
105
|
-
double *d__, double *xp, double *ws, double *wy,
|
106
|
-
double *theta, double *xx, double *gg, long *col,
|
107
|
-
long *head, long *iword, double *wv, double *wn,
|
108
|
-
long *iprint, long *info);
|
109
|
-
|
110
|
-
extern int dcsrch_(double *f, double *g, double *stp,
|
111
|
-
double *ftol, double *gtol, double *xtol,
|
112
|
-
double *stpmin, double *stpmax,
|
113
|
-
char *task, long *isave, double *dsave);
|
114
|
-
|
115
|
-
extern int dcstep_(double *stx, double *fx, double *dx,
|
116
|
-
double *sty, double *fy, double *dy, double *stp,
|
117
|
-
double *fp, double *dp, long *brackt, double *stpmin,
|
118
|
-
double *stpmax);
|
119
|
-
|
120
|
-
extern int timer_(double *ttime);
|
14
|
+
extern int setulb_(long* n, long* m, double* x, double* l, double* u, long* nbd, double* f, double* g, double* factr,
|
15
|
+
double* pgtol, double* wa, long* iwa, char* task, long* iprint, char* csave, long* lsave, long* isave,
|
16
|
+
double* dsave);
|
17
|
+
|
18
|
+
extern int mainlb_(long* n, long* m, double* x, double* l, double* u, long* nbd, double* f, double* g, double* factr,
|
19
|
+
double* pgtol, double* ws, double* wy, double* sy, double* ss, double* wt, double* wn, double* snd,
|
20
|
+
double* z__, double* r__, double* d__, double* t, double* xp, double* wa, long* index, long* iwhere,
|
21
|
+
long* indx2, char* task, long* iprint, char* csave, long* lsave, long* isave, double* dsave);
|
22
|
+
|
23
|
+
extern int active_(long* n, double* l, double* u, long* nbd, double* x, long* iwhere, long* iprint, long* prjctd, long* cnstnd,
|
24
|
+
long* boxed);
|
25
|
+
|
26
|
+
extern int bmv_(long* m, double* sy, double* wt, long* col, double* v, double* p, long* info);
|
27
|
+
|
28
|
+
extern int cauchy_(long* n, double* x, double* l, double* u, long* nbd, double* g, long* iorder, long* iwhere, double* t,
|
29
|
+
double* d__, double* xcp, long* m, double* wy, double* ws, double* sy, double* wt, double* theta, long* col,
|
30
|
+
long* head, double* p, double* c__, double* wbp, double* v, long* nseg, long* iprint, double* sbgnrm,
|
31
|
+
long* info, double* epsmch);
|
32
|
+
|
33
|
+
extern int cmprlb_(long* n, long* m, double* x, double* g, double* ws, double* wy, double* sy, double* wt, double* z__,
|
34
|
+
double* r__, double* wa, long* index, double* theta, long* col, long* head, long* nfree, long* cnstnd,
|
35
|
+
long* info);
|
36
|
+
|
37
|
+
extern int errclb_(long* n, long* m, double* factr, double* l, double* u, long* nbd, char* task, long* info, long* k);
|
38
|
+
|
39
|
+
extern int formk_(long* n, long* nsub, long* ind, long* nenter, long* ileave, long* indx2, long* iupdat, long* updatd,
|
40
|
+
double* wn, double* wn1, long* m, double* ws, double* wy, double* sy, double* theta, long* col, long* head,
|
41
|
+
long* info);
|
42
|
+
|
43
|
+
extern int formt_(long* m, double* wt, double* sy, double* ss, long* col, double* theta, long* info);
|
44
|
+
|
45
|
+
extern int freev_(long* n, long* nfree, long* index, long* nenter, long* ileave, long* indx2, long* iwhere, long* wrk,
|
46
|
+
long* updatd, long* cnstnd, long* iprint, long* iter);
|
47
|
+
|
48
|
+
extern int hpsolb_(long* n, double* t, long* iorder, long* iheap);
|
49
|
+
|
50
|
+
extern int lnsrlb_(long* n, double* l, double* u, long* nbd, double* x, double* f, double* fold, double* gd, double* gdold,
|
51
|
+
double* g, double* d__, double* r__, double* t, double* z__, double* stp, double* dnorm, double* dtd,
|
52
|
+
double* xstep, double* stpmx, long* iter, long* ifun, long* iback, long* nfgv, long* info, char* task,
|
53
|
+
long* boxed, long* cnstnd, char* csave, long* isave, double* dsave);
|
54
|
+
|
55
|
+
extern int matupd_(long* n, long* m, double* ws, double* wy, double* sy, double* ss, double* d__, double* r__, long* itail,
|
56
|
+
long* iupdat, long* col, long* head, double* theta, double* rr, double* dr, double* stp, double* dtd);
|
57
|
+
|
58
|
+
extern int prn1lb_(long* n, long* m, double* l, double* u, double* x, long* iprint, long* itfile, double* epsmch);
|
59
|
+
|
60
|
+
extern int prn2lb_(long* n, double* x, double* f, double* g, long* iprint, long* itfile, long* iter, long* nfgv, long* nact,
|
61
|
+
double* sbgnrm, long* nseg, char* word, long* iword, long* iback, double* stp, double* xstep);
|
62
|
+
|
63
|
+
extern int prn3lb_(long* n, double* x, double* f, char* task, long* iprint, long* info, long* itfile, long* iter, long* nfgv,
|
64
|
+
long* nintol, long* nskip, long* nact, double* sbgnrm, double* time, long* nseg, char* word, long* iback,
|
65
|
+
double* stp, double* xstep, long* k, double* cachyt, double* sbtime, double* lnscht);
|
66
|
+
|
67
|
+
extern int projgr_(long* n, double* l, double* u, long* nbd, double* x, double* g, double* sbgnrm);
|
68
|
+
|
69
|
+
extern int subsm_(long* n, long* m, long* nsub, long* ind, double* l, double* u, long* nbd, double* x, double* d__, double* xp,
|
70
|
+
double* ws, double* wy, double* theta, double* xx, double* gg, long* col, long* head, long* iword, double* wv,
|
71
|
+
double* wn, long* iprint, long* info);
|
72
|
+
|
73
|
+
extern int dcsrch_(double* f, double* g, double* stp, double* ftol, double* gtol, double* xtol, double* stpmin, double* stpmax,
|
74
|
+
char* task, long* isave, double* dsave);
|
75
|
+
|
76
|
+
extern int dcstep_(double* stx, double* fx, double* dx, double* sty, double* fy, double* dy, double* stp, double* fp,
|
77
|
+
double* dp, long* brackt, double* stpmin, double* stpmax);
|
78
|
+
|
79
|
+
extern int timer_(double* ttime);
|
121
80
|
|
122
81
|
#endif /* LBFGSB_RB_LBFGSB_H_ */
|
data/ext/lbfgsb/src/linpack.c
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
* Please read attached file License.txt
|
5
5
|
*/
|
6
6
|
|
7
|
-
#include "blas.h"
|
8
7
|
#include "linpack.h"
|
8
|
+
#include "blas.h"
|
9
9
|
|
10
10
|
static long c__1 = 1;
|
11
11
|
|
@@ -44,8 +44,7 @@ static long c__1 = 1;
|
|
44
44
|
* linpack. this version dated 08/14/78 .
|
45
45
|
* cleve moler, university of new mexico, argonne national lab.
|
46
46
|
*/
|
47
|
-
int lbfgsb_rb_dpofa_(double
|
48
|
-
{
|
47
|
+
int lbfgsb_rb_dpofa_(double* a, long* lda, long* n, long* info) {
|
49
48
|
long a_dim1, a_offset, i__1, i__2, i__3;
|
50
49
|
static long j, k;
|
51
50
|
static double s, t;
|
@@ -57,27 +56,27 @@ int lbfgsb_rb_dpofa_(double *a, long *lda, long *n, long *info)
|
|
57
56
|
|
58
57
|
i__1 = *n;
|
59
58
|
for (j = 1; j <= i__1; ++j) {
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
L20:
|
75
|
-
|
59
|
+
*info = j;
|
60
|
+
s = 0.;
|
61
|
+
jm1 = j - 1;
|
62
|
+
if (jm1 < 1) {
|
63
|
+
goto L20;
|
64
|
+
}
|
65
|
+
i__2 = jm1;
|
66
|
+
for (k = 1; k <= i__2; ++k) {
|
67
|
+
i__3 = k - 1;
|
68
|
+
t = a[k + j * a_dim1] - lbfgsb_rb_ddot_(&i__3, &a[k * a_dim1 + 1], &c__1, &a[j * a_dim1 + 1], &c__1);
|
69
|
+
t /= a[k + k * a_dim1];
|
70
|
+
a[k + j * a_dim1] = t;
|
71
|
+
s += t * t;
|
72
|
+
}
|
73
|
+
L20:
|
74
|
+
s = a[j + j * a_dim1] - s;
|
76
75
|
/* ......exit */
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
76
|
+
if (s <= 0.) {
|
77
|
+
goto L40;
|
78
|
+
}
|
79
|
+
a[j + j * a_dim1] = sqrt(s);
|
81
80
|
}
|
82
81
|
*info = 0;
|
83
82
|
L40:
|
@@ -133,8 +132,7 @@ L40:
|
|
133
132
|
* linpack. this version dated 08/14/78 .
|
134
133
|
* g. w. stewart, university of maryland, argonne national lab.
|
135
134
|
*/
|
136
|
-
int lbfgsb_rb_dtrsl_(double
|
137
|
-
{
|
135
|
+
int lbfgsb_rb_dtrsl_(double* t, long* ldt, long* n, double* b, long* job, long* info) {
|
138
136
|
long t_dim1, t_offset, i__1, i__2;
|
139
137
|
static long j, jj, case__;
|
140
138
|
static double temp;
|
@@ -148,39 +146,43 @@ int lbfgsb_rb_dtrsl_(double *t, long *ldt, long *n, double *b, long *job, long *
|
|
148
146
|
i__1 = *n;
|
149
147
|
for (*info = 1; *info <= i__1; ++(*info)) {
|
150
148
|
/* ......exit */
|
151
|
-
|
152
|
-
|
153
|
-
|
149
|
+
if (t[*info + *info * t_dim1] == 0.) {
|
150
|
+
goto L150;
|
151
|
+
}
|
154
152
|
}
|
155
153
|
*info = 0;
|
156
154
|
|
157
155
|
/* determine the task and go to it. */
|
158
156
|
case__ = 1;
|
159
157
|
if (*job % 10 != 0) {
|
160
|
-
|
158
|
+
case__ = 2;
|
161
159
|
}
|
162
160
|
if (*job % 100 / 10 != 0) {
|
163
|
-
|
161
|
+
case__ += 2;
|
164
162
|
}
|
165
163
|
switch (case__) {
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
164
|
+
case 1:
|
165
|
+
goto L20;
|
166
|
+
case 2:
|
167
|
+
goto L50;
|
168
|
+
case 3:
|
169
|
+
goto L80;
|
170
|
+
case 4:
|
171
|
+
goto L110;
|
170
172
|
}
|
171
173
|
|
172
174
|
/* solve t*x=b for t lower triangular */
|
173
175
|
L20:
|
174
176
|
b[1] /= t[t_dim1 + 1];
|
175
177
|
if (*n < 2) {
|
176
|
-
|
178
|
+
goto L40;
|
177
179
|
}
|
178
180
|
i__1 = *n;
|
179
181
|
for (j = 2; j <= i__1; ++j) {
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
182
|
+
temp = -b[j - 1];
|
183
|
+
i__2 = *n - j + 1;
|
184
|
+
lbfgsb_rb_daxpy_(&i__2, &temp, &t[j + (j - 1) * t_dim1], &c__1, &b[j], &c__1);
|
185
|
+
b[j] /= t[j + j * t_dim1];
|
184
186
|
}
|
185
187
|
L40:
|
186
188
|
goto L140;
|
@@ -189,14 +191,14 @@ L40:
|
|
189
191
|
L50:
|
190
192
|
b[*n] /= t[*n + *n * t_dim1];
|
191
193
|
if (*n < 2) {
|
192
|
-
|
194
|
+
goto L70;
|
193
195
|
}
|
194
196
|
i__1 = *n;
|
195
197
|
for (jj = 2; jj <= i__1; ++jj) {
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
198
|
+
j = *n - jj + 1;
|
199
|
+
temp = -b[j + 1];
|
200
|
+
lbfgsb_rb_daxpy_(&j, &temp, &t[(j + 1) * t_dim1 + 1], &c__1, &b[1], &c__1);
|
201
|
+
b[j] /= t[j + j * t_dim1];
|
200
202
|
}
|
201
203
|
L70:
|
202
204
|
goto L140;
|
@@ -205,14 +207,14 @@ L70:
|
|
205
207
|
L80:
|
206
208
|
b[*n] /= t[*n + *n * t_dim1];
|
207
209
|
if (*n < 2) {
|
208
|
-
|
210
|
+
goto L100;
|
209
211
|
}
|
210
212
|
i__1 = *n;
|
211
213
|
for (jj = 2; jj <= i__1; ++jj) {
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
214
|
+
j = *n - jj + 1;
|
215
|
+
i__2 = jj - 1;
|
216
|
+
b[j] -= lbfgsb_rb_ddot_(&i__2, &t[j + 1 + j * t_dim1], &c__1, &b[j + 1], &c__1);
|
217
|
+
b[j] /= t[j + j * t_dim1];
|
216
218
|
}
|
217
219
|
L100:
|
218
220
|
goto L140;
|
@@ -221,13 +223,13 @@ L100:
|
|
221
223
|
L110:
|
222
224
|
b[1] /= t[t_dim1 + 1];
|
223
225
|
if (*n < 2) {
|
224
|
-
|
226
|
+
goto L130;
|
225
227
|
}
|
226
228
|
i__1 = *n;
|
227
229
|
for (j = 2; j <= i__1; ++j) {
|
228
|
-
|
229
|
-
|
230
|
-
|
230
|
+
i__2 = j - 1;
|
231
|
+
b[j] -= lbfgsb_rb_ddot_(&i__2, &t[j * t_dim1 + 1], &c__1, &b[1], &c__1);
|
232
|
+
b[j] /= t[j + j * t_dim1];
|
231
233
|
}
|
232
234
|
L130:
|
233
235
|
L140:
|
data/ext/lbfgsb/src/linpack.h
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
#include <math.h>
|
5
5
|
|
6
|
-
extern int lbfgsb_rb_dpofa_(double
|
7
|
-
extern int lbfgsb_rb_dtrsl_(double
|
6
|
+
extern int lbfgsb_rb_dpofa_(double* a, long* lda, long* n, long* info);
|
7
|
+
extern int lbfgsb_rb_dtrsl_(double* t, long* ldt, long* n, double* b, long* job, long* info);
|
8
8
|
|
9
9
|
#endif /* LBFGSB_RB_LINPACK_H_ */
|
data/lib/lbfgsb/version.rb
CHANGED
data/sig/lbfgsb.rbs
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module Lbfgsb
|
2
|
+
type result = {
|
3
|
+
task: String,
|
4
|
+
x: Numo::DFloat,
|
5
|
+
fnc: Float,
|
6
|
+
jcb: Numo::DFloat,
|
7
|
+
n_iter: Integer,
|
8
|
+
n_fev: Integer,
|
9
|
+
n_jev: Integer,
|
10
|
+
success: bool
|
11
|
+
}
|
12
|
+
|
13
|
+
VERSION: String
|
14
|
+
|
15
|
+
DBL_EPSILON: Float
|
16
|
+
|
17
|
+
def self?.minimize: (fnc: Method | Proc fnc, x_init: Numo::DFloat x_init, jcb: Method | Proc | bool jcb,
|
18
|
+
?args: untyped args, ?bounds: Numo::DFloat? bounds, ?factr: Float factr, ?pgtol: Float pgtol,
|
19
|
+
?maxcor: Integer maxcor, ?maxiter: Integer maxiter,
|
20
|
+
?verbose: Integer? verbose) -> result
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def self?.fnc: (Method | Proc fnc, Numo::DFloat x, untyped args) -> Float
|
25
|
+
|
26
|
+
def self?.jcb: (Method | Proc jcb, Numo::DFloat x, untyped args) -> Numo::DFloat
|
27
|
+
|
28
|
+
def self?.min_l_bfgs_b: (Method | Proc fnc, Numo::DFloat x, Method | Proc | bool jcb, untyped args,
|
29
|
+
Numo::DFloat l, Numo::DFloat u, Numo::DFloat nbd, Integer maxcor, Float ftol, Float gtol, Integer maxiter,
|
30
|
+
Integer? disp) -> result
|
31
|
+
end
|
data/sig/patch.rbs
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lbfgsb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yoshoku
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: numo-narray
|
@@ -34,6 +34,7 @@ extensions:
|
|
34
34
|
- ext/lbfgsb/extconf.rb
|
35
35
|
extra_rdoc_files: []
|
36
36
|
files:
|
37
|
+
- ".clang-format"
|
37
38
|
- ".github/workflows/build.yml"
|
38
39
|
- ".gitignore"
|
39
40
|
- ".rspec"
|
@@ -43,6 +44,7 @@ files:
|
|
43
44
|
- LICENSE.txt
|
44
45
|
- README.md
|
45
46
|
- Rakefile
|
47
|
+
- Steepfile
|
46
48
|
- ext/lbfgsb/extconf.rb
|
47
49
|
- ext/lbfgsb/lbfgsbext.c
|
48
50
|
- ext/lbfgsb/lbfgsbext.h
|
@@ -56,6 +58,8 @@ files:
|
|
56
58
|
- lbfgsb.gemspec
|
57
59
|
- lib/lbfgsb.rb
|
58
60
|
- lib/lbfgsb/version.rb
|
61
|
+
- sig/lbfgsb.rbs
|
62
|
+
- sig/patch.rbs
|
59
63
|
homepage: https://github.com/yoshoku/lbfgsb.rb
|
60
64
|
licenses:
|
61
65
|
- BSD-3-Clause
|
@@ -64,7 +68,7 @@ metadata:
|
|
64
68
|
source_code_uri: https://github.com/yoshoku/lbfgsb.rb
|
65
69
|
changelog_uri: https://github.com/yoshoku/lbfgsb.rb/blob/main/CHANGELOG.md
|
66
70
|
documentation_uri: https://yoshoku.github.io/lbfgsb.rb/doc/
|
67
|
-
post_install_message:
|
71
|
+
post_install_message:
|
68
72
|
rdoc_options: []
|
69
73
|
require_paths:
|
70
74
|
- lib
|
@@ -79,8 +83,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
83
|
- !ruby/object:Gem::Version
|
80
84
|
version: '0'
|
81
85
|
requirements: []
|
82
|
-
rubygems_version: 3.
|
83
|
-
signing_key:
|
86
|
+
rubygems_version: 3.1.6
|
87
|
+
signing_key:
|
84
88
|
specification_version: 4
|
85
89
|
summary: Lbfgsb.rb is a Ruby binding for L-BFGS-B.
|
86
90
|
test_files: []
|