File tree Expand file tree Collapse file tree 2 files changed +70
-0
lines changed
Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Original file line number Diff line number Diff line change @@ -343,6 +343,41 @@ function NLPModels.hprod!(
343343 return Hv
344344end
345345
346+ function NLPModels. jth_hess_coord! (
347+ nlp:: ADNLPModel ,
348+ x:: AbstractVector ,
349+ j:: Integer ,
350+ vals:: AbstractVector ,
351+ )
352+ @lencheck nlp. meta. nnzh vals
353+ @lencheck nlp. meta. nvar x
354+ @rangecheck 1 nlp. meta. ncon j
355+ increment! (nlp, :neval_jhess )
356+ Hx = hessian (nlp. adbackend, x -> nlp. c (x)[j], x)
357+ k = 1
358+ for j = 1 : nlp. meta. nvar
359+ for i = j : nlp. meta. nvar
360+ vals[k] = Hx[i, j]
361+ k += 1
362+ end
363+ end
364+ return vals
365+ end
366+
367+ function NLPModels. jth_hprod! (
368+ nlp:: ADNLPModel ,
369+ x:: AbstractVector ,
370+ v:: AbstractVector ,
371+ j:: Integer ,
372+ Hv:: AbstractVector ,
373+ )
374+ @lencheck nlp. meta. nvar x v Hv
375+ @rangecheck 1 nlp. meta. ncon j
376+ increment! (nlp, :neval_jhprod )
377+ Hv .= Hvprod (nlp. adbackend, x -> nlp. c (x)[j], x, v)
378+ return Hv
379+ end
380+
346381function NLPModels. ghjvprod! (
347382 nlp:: ADNLPModel ,
348383 x:: AbstractVector ,
Original file line number Diff line number Diff line change @@ -472,6 +472,41 @@ function NLPModels.hprod!(
472472 return Hv
473473end
474474
475+ function NLPModels. jth_hess_coord! (
476+ nls:: ADNLSModel ,
477+ x:: AbstractVector ,
478+ j:: Integer ,
479+ vals:: AbstractVector
480+ )
481+ @lencheck nls. meta. nnzh vals
482+ @lencheck nls. meta. nvar x
483+ @rangecheck 1 nls. meta. ncon j
484+ increment! (nls, :neval_jhess )
485+ Hx = hessian (nls. adbackend, x -> nls. c (x)[j], x)
486+ k = 1
487+ for j = 1 : nls. meta. nvar
488+ for i = j : nls. meta. nvar
489+ vals[k] = Hx[i, j]
490+ k += 1
491+ end
492+ end
493+ return vals
494+ end
495+
496+ function NLPModels. jth_hprod! (
497+ nls:: ADNLSModel ,
498+ x:: AbstractVector ,
499+ v:: AbstractVector ,
500+ j:: Integer ,
501+ Hv:: AbstractVector
502+ )
503+ @lencheck nls. meta. nvar x v Hv
504+ @rangecheck 1 nls. meta. ncon j
505+ increment! (nls, :neval_jhprod )
506+ Hv .= Hvprod (nls. adbackend, x -> nls. c (x)[j], x, v)
507+ return Hv
508+ end
509+
475510function NLPModels. ghjvprod! (
476511 nls:: ADNLSModel ,
477512 x:: AbstractVector ,
You can’t perform that action at this time.
0 commit comments