@@ -260,19 +260,15 @@ function fit!(
260
260
optsum. final = copy (optsum. initial)
261
261
end
262
262
setpar! = fast ? setθ! : setβθ!
263
- feval = 0
264
263
function obj (x, g)
265
- isempty (g) || error (" gradient not defined for this model" )
266
- feval += 1
264
+ isempty (g) || throw (ArgumentError (" g should be empty for this objective" ))
267
265
val = deviance (pirls! (setpar! (m, x), fast, verbose), nAGQ)
268
- feval == 1 && (optsum. finitial = val)
269
- if verbose
270
- println (" f_" , feval, " : " , val, " " , x)
271
- end
266
+ verbose && println (round (val, digits = 5 ), " " , x)
272
267
val
273
268
end
274
269
opt = Opt (optsum)
275
270
NLopt. min_objective! (opt, obj)
271
+ optsum. finitial = obj (optsum. initial, T[])
276
272
fmin, xmin, ret = NLopt. optimize (opt, copyto! (optsum. final, optsum. initial))
277
273
# # check if very small parameter values bounded below by zero can be set to zero
278
274
xmin_ = copy (xmin)
@@ -290,7 +286,7 @@ function fit!(
290
286
# # ensure that the parameter values saved in m are xmin
291
287
pirls! (setpar! (m, xmin), fast, verbose)
292
288
optsum. nAGQ = nAGQ
293
- optsum. feval = feval
289
+ optsum. feval = opt . numevals
294
290
optsum. final = xmin
295
291
optsum. fmin = fmin
296
292
optsum. returnvalue = ret
0 commit comments