1- using Base: @deprecate
2-
31export obj, grad, grad!, objgrad, objgrad!, objcons, objcons!
42export cons, cons!, cons_lin, cons_lin!, cons_nln, cons_nln!
53export jth_con, jth_congrad, jth_congrad!, jth_sparse_congrad
@@ -268,10 +266,10 @@ function jac_coord!(nlp::AbstractNLPModel, x::AbstractVector, vals::AbstractVect
268266 increment! (nlp, :neval_jac )
269267 if nlp. meta. nlin > 0
270268 if nlp. meta. nnln == 0
271- jac_lin_coord! (nlp, vals)
269+ jac_lin_coord! (nlp, x, vals)
272270 else
273271 lin_ind = 1 : (nlp. meta. lin_nnzj)
274- jac_lin_coord! (nlp, view (vals, lin_ind))
272+ jac_lin_coord! (nlp, x, view (vals, lin_ind))
275273 end
276274 end
277275 if nlp. meta. nnln > 0
@@ -309,43 +307,36 @@ function jac(nlp::AbstractNLPModel, x::AbstractVector)
309307end
310308
311309"""
312- vals = jac_lin_coord!(nlp, vals)
310+ vals = jac_lin_coord!(nlp, x, vals)
313311
314- Evaluate the linear constraints Jacobian in sparse coordinate format,
312+ Evaluate ``J(x)``, the linear constraints Jacobian at `x` in sparse coordinate format,
315313overwriting `vals`.
316314"""
317315function jac_lin_coord! end
318316
319- @deprecate jac_lin_coord! (nlp:: AbstractNLPModel , x:: AbstractVector , vals:: AbstractVector ) jac_lin_coord! (
320- nlp,
321- vals,
322- )
323-
324317"""
325- vals = jac_lin_coord(nlp)
318+ vals = jac_lin_coord(nlp, x )
326319
327- Evaluate the linear constraints Jacobian in sparse coordinate format.
320+ Evaluate ``J(x)``, the linear constraints Jacobian at `x` in sparse coordinate format.
328321"""
329- function jac_lin_coord (nlp:: AbstractNLPModel{T, S} ) where {T, S}
322+ function jac_lin_coord (nlp:: AbstractNLPModel{T, S} , x:: AbstractVector ) where {T, S}
323+ @lencheck nlp. meta. nvar x
330324 vals = S (undef, nlp. meta. lin_nnzj)
331- return jac_lin_coord! (nlp, vals)
325+ return jac_lin_coord! (nlp, x, vals)
332326end
333327
334- @deprecate jac_lin_coord (nlp:: AbstractNLPModel , x:: AbstractVector ) jac_lin_coord (nlp)
335-
336328"""
337- Jx = jac_lin(nlp)
329+ Jx = jac_lin(nlp, x )
338330
339- Evaluate the linear constraints Jacobian as a sparse matrix.
331+ Evaluate ``J(x)``, the linear constraints Jacobian at `x` as a sparse matrix.
340332"""
341- function jac_lin (nlp:: AbstractNLPModel )
333+ function jac_lin (nlp:: AbstractNLPModel , x:: AbstractVector )
334+ @lencheck nlp. meta. nvar x
342335 rows, cols = jac_lin_structure (nlp)
343- vals = jac_lin_coord (nlp)
336+ vals = jac_lin_coord (nlp, x )
344337 sparse (rows, cols, vals, nlp. meta. nlin, nlp. meta. nvar)
345338end
346339
347- @deprecate jac_lin (nlp:: AbstractNLPModel , x:: AbstractVector ) jac_lin (nlp)
348-
349340"""
350341 vals = jac_nln_coord!(nlp, x, vals)
351342
@@ -399,9 +390,9 @@ function jprod!(nlp::AbstractNLPModel, x::AbstractVector, v::AbstractVector, Jv:
399390 increment! (nlp, :neval_jprod )
400391 if nlp. meta. nlin > 0
401392 if nlp. meta. nnln == 0
402- jprod_lin! (nlp, v, Jv)
393+ jprod_lin! (nlp, x, v, Jv)
403394 else
404- jprod_lin! (nlp, v, view (Jv, nlp. meta. lin))
395+ jprod_lin! (nlp, x, v, view (Jv, nlp. meta. lin))
405396 end
406397 end
407398 if nlp. meta. nnln > 0
@@ -436,31 +427,23 @@ function jprod!(
436427end
437428
438429"""
439- Jv = jprod_lin(nlp, v)
430+ Jv = jprod_lin(nlp, x, v)
440431
441432Evaluate ``J(x)v``, the linear Jacobian-vector product at `x`.
442433"""
443- function jprod_lin (nlp:: AbstractNLPModel{T, S} , v:: AbstractVector ) where {T, S}
444- @lencheck nlp. meta. nvar v
434+ function jprod_lin (nlp:: AbstractNLPModel{T, S} , x :: AbstractVector , v:: AbstractVector ) where {T, S}
435+ @lencheck nlp. meta. nvar x v
445436 Jv = S (undef, nlp. meta. nlin)
446- return jprod_lin! (nlp, v, Jv)
437+ return jprod_lin! (nlp, x, v, Jv)
447438end
448439
449440"""
450- Jv = jprod_lin!(nlp, v, Jv)
441+ Jv = jprod_lin!(nlp, x, v, Jv)
451442
452443Evaluate ``J(x)v``, the linear Jacobian-vector product at `x` in place.
453444"""
454445function jprod_lin! end
455446
456- @deprecate jprod_lin (nlp:: AbstractNLPModel , x:: AbstractVector , v:: AbstractVector ) jprod_lin (nlp, v)
457- @deprecate jprod_lin! (
458- nlp:: AbstractNLPModel ,
459- x:: AbstractVector ,
460- v:: AbstractVector ,
461- Jv:: AbstractVector ,
462- ) jprod_lin! (nlp, v, Jv)
463-
464447"""
465448 Jv = jprod_lin!(nlp, rows, cols, vals, v, Jv)
466449
@@ -544,18 +527,18 @@ function jtprod!(nlp::AbstractNLPModel, x::AbstractVector, v::AbstractVector, Jt
544527 @lencheck nlp. meta. ncon v
545528 increment! (nlp, :neval_jtprod )
546529 if nlp. meta. nnln == 0
547- (nlp. meta. nlin > 0 ) && jtprod_lin! (nlp, v, Jtv)
530+ (nlp. meta. nlin > 0 ) && jtprod_lin! (nlp, x, v, Jtv)
548531 elseif nlp. meta. nlin == 0
549532 (nlp. meta. nnln > 0 ) && jtprod_nln! (nlp, x, v, Jtv)
550533 elseif nlp. meta. nlin >= nlp. meta. nnln
551- jtprod_lin! (nlp, view (v, nlp. meta. lin), Jtv)
534+ jtprod_lin! (nlp, x, view (v, nlp. meta. lin), Jtv)
552535 if nlp. meta. nnln > 0
553536 Jtv .+ = jtprod_nln (nlp, x, view (v, nlp. meta. nln))
554537 end
555538 else
556539 jtprod_nln! (nlp, x, view (v, nlp. meta. nln), Jtv)
557540 if nlp. meta. nlin > 0
558- Jtv .+ = jtprod_lin (nlp, view (v, nlp. meta. lin))
541+ Jtv .+ = jtprod_lin (nlp, x, view (v, nlp. meta. lin))
559542 end
560543 end
561544 return Jtv
@@ -583,34 +566,24 @@ function jtprod!(
583566end
584567
585568"""
586- Jtv = jtprod_lin(nlp, v)
569+ Jtv = jtprod_lin(nlp, x, v)
587570
588571Evaluate ``J(x)^Tv``, the linear transposed-Jacobian-vector product at `x`.
589572"""
590- function jtprod_lin (nlp:: AbstractNLPModel{T, S} , v:: AbstractVector ) where {T, S}
573+ function jtprod_lin (nlp:: AbstractNLPModel{T, S} , x:: AbstractVector , v:: AbstractVector ) where {T, S}
574+ @lencheck nlp. meta. nvar x
591575 @lencheck nlp. meta. nlin v
592576 Jtv = S (undef, nlp. meta. nvar)
593- return jtprod_lin! (nlp, v, Jtv)
577+ return jtprod_lin! (nlp, x, v, Jtv)
594578end
595579
596580"""
597- Jtv = jtprod_lin!(nlp, v, Jtv)
581+ Jtv = jtprod_lin!(nlp, x, v, Jtv)
598582
599583Evaluate ``J(x)^Tv``, the linear transposed-Jacobian-vector product at `x` in place.
600584"""
601585function jtprod_lin! end
602586
603- @deprecate jtprod_lin (nlp:: AbstractNLPModel , x:: AbstractVector , v:: AbstractVector ) jtprod_lin (
604- nlp,
605- v,
606- )
607- @deprecate jtprod_lin! (
608- nlp:: AbstractNLPModel ,
609- x:: AbstractVector ,
610- v:: AbstractVector ,
611- Jtv:: AbstractVector ,
612- ) jtprod_lin! (nlp, v, Jtv)
613-
614587"""
615588 Jtv = jtprod_lin!(nlp, rows, cols, vals, v, Jtv)
616589
@@ -763,37 +736,37 @@ function jac_op!(
763736end
764737
765738"""
766- J = jac_lin_op(nlp)
739+ J = jac_lin_op(nlp, x )
767740
768- Return the linear Jacobian as a linear operator.
741+ Return the linear Jacobian at `x` as a linear operator.
769742The resulting object may be used as if it were a matrix, e.g., `J * v` or
770743`J' * v`.
771744"""
772- function jac_lin_op (nlp:: AbstractNLPModel{T, S} ) where {T, S}
745+ function jac_lin_op (nlp:: AbstractNLPModel{T, S} , x:: AbstractVector ) where {T, S}
746+ @lencheck nlp. meta. nvar x
773747 Jv = S (undef, nlp. meta. nlin)
774748 Jtv = S (undef, nlp. meta. nvar)
775- return jac_lin_op! (nlp, Jv, Jtv)
749+ return jac_lin_op! (nlp, x, Jv, Jtv)
776750end
777751
778- @deprecate jac_lin_op (nlp:: AbstractNLPModel , x:: AbstractVector ) jac_lin_op (nlp)
779-
780752"""
781- J = jac_lin_op!(nlp, Jv, Jtv)
753+ J = jac_lin_op!(nlp, x, Jv, Jtv)
782754
783- Return the linear Jacobian as a linear operator.
755+ Return the linear Jacobian at `x` as a linear operator.
784756The resulting object may be used as if it were a matrix, e.g., `J * v` or
785757`J' * v`. The values `Jv` and `Jtv` are used as preallocated storage for the
786758operations.
787759"""
788760function jac_lin_op! (
789761 nlp:: AbstractNLPModel{T, S} ,
762+ x:: AbstractVector{T} ,
790763 Jv:: AbstractVector ,
791764 Jtv:: AbstractVector ,
792765) where {T, S}
766+ @lencheck nlp. meta. nvar x Jtv
793767 @lencheck nlp. meta. nlin Jv
794- @lencheck nlp. meta. nvar Jtv
795768 prod! = @closure (res, v, α, β) -> begin # res = α * J * v + β * res
796- jprod_lin! (nlp, v, Jv)
769+ jprod_lin! (nlp, x, v, Jv)
797770 if β == 0
798771 res .= α .* Jv
799772 else
@@ -802,7 +775,7 @@ function jac_lin_op!(
802775 return res
803776 end
804777 ctprod! = @closure (res, v, α, β) -> begin
805- jtprod_lin! (nlp, v, Jtv)
778+ jtprod_lin! (nlp, x, v, Jtv)
806779 if β == 0
807780 res .= α .* Jtv
808781 else
@@ -813,13 +786,6 @@ function jac_lin_op!(
813786 return LinearOperator {T} (nlp. meta. nlin, nlp. meta. nvar, false , false , prod!, ctprod!, ctprod!)
814787end
815788
816- @deprecate jac_lin_op! (
817- nlp:: AbstractNLPModel ,
818- x:: AbstractVector ,
819- Jv:: AbstractVector ,
820- Jtv:: AbstractVector ,
821- ) jac_lin_op! (nlp, Jv, Jtv)
822-
823789"""
824790 J = jac_lin_op!(nlp, rows, cols, vals, Jv, Jtv)
825791
0 commit comments