@@ -11,8 +11,8 @@ export project!, project
11
11
Computes ``F(x)``, the residual at x.
12
12
"""
13
13
function residual (model:: AbstractVIModel{T, S} , x:: AbstractVector{T} ) where {T, S}
14
- @lencheck model. nvar x
15
- Fx = S (undef, model. nvar)
14
+ @lencheck model. meta . nvar x
15
+ Fx = S (undef, model. meta . nvar)
16
16
residual! (model, x, Fx)
17
17
end
18
18
@@ -27,10 +27,10 @@ function residual! end
27
27
Computes ``J(x)``, the Jacobian of the residual at x.
28
28
"""
29
29
function jac_residual (model:: AbstractVIModel , x:: AbstractVector )
30
- @lencheck model. nvar x
30
+ @lencheck model. meta . nvar x
31
31
rows, cols = jac_structure_residual (model)
32
32
vals = jac_coord_residual (model, x)
33
- sparse (rows, cols, vals, model. nvar, model. nvar)
33
+ sparse (rows, cols, vals, model. meta . nvar, model. meta . nvar)
34
34
end
35
35
36
36
"""
@@ -61,7 +61,7 @@ function jac_coord_residual! end
61
61
Computes the Jacobian of the residual at `x` in sparse coordinate format.
62
62
"""
63
63
function jac_coord_residual (model:: AbstractVIModel , x:: AbstractVector )
64
- @lencheck model. nvar x
64
+ @lencheck model. meta . nvar x
65
65
vals = Vector {eltype(x)} (undef, model. nnzj)
66
66
jac_coord_residual! (model, x, vals)
67
67
end
@@ -75,8 +75,8 @@ function jprod_residual(
75
75
x:: AbstractVector{T} ,
76
76
v:: AbstractVector ,
77
77
) where {T, S}
78
- @lencheck model. nvar x v
79
- Jv = S (undef, model. nvar)
78
+ @lencheck model. meta . nvar x v
79
+ Jv = S (undef, model. meta . nvar)
80
80
jprod_residual! (model, x, v, Jv)
81
81
end
82
82
@@ -100,7 +100,7 @@ function jprod_residual!(
100
100
Jv:: AbstractVector ,
101
101
)
102
102
@lencheck model. nnzj rows cols vals
103
- @lencheck model. nvar v Jv
103
+ @lencheck model. meta . nvar v Jv
104
104
increment! (model, :neval_jprod_residual )
105
105
coo_prod! (rows, cols, vals, v, Jv)
106
106
end
@@ -118,7 +118,7 @@ function jprod_residual!(
118
118
v:: AbstractVector ,
119
119
Jv:: AbstractVector ,
120
120
)
121
- @lencheck model. nvar x v Jv
121
+ @lencheck model. meta . nvar x v Jv
122
122
@lencheck model. nnzj rows cols
123
123
jprod_residual! (model, x, v, Jv)
124
124
end
@@ -132,8 +132,8 @@ function jtprod_residual(
132
132
x:: AbstractVector{T} ,
133
133
v:: AbstractVector ,
134
134
) where {T, S}
135
- @lencheck model. nvar x v
136
- Jtv = S (undef, model. nvar)
135
+ @lencheck model. meta . nvar x v
136
+ Jtv = S (undef, model. meta . nvar)
137
137
jtprod_residual! (model, x, v, Jtv)
138
138
end
139
139
@@ -157,7 +157,7 @@ function jtprod_residual!(
157
157
Jtv:: AbstractVector ,
158
158
)
159
159
@lencheck model. nnzj rows cols vals
160
- @lencheck model. nvar v Jtv
160
+ @lencheck model. meta . nvar v Jtv
161
161
increment! (model, :neval_jtprod_residual )
162
162
coo_prod! (cols, rows, vals, v, Jtv)
163
163
end
@@ -175,7 +175,7 @@ function jtprod_residual!(
175
175
v:: AbstractVector ,
176
176
Jtv:: AbstractVector ,
177
177
)
178
- @lencheck model. nvar x v Jtv
178
+ @lencheck model. meta . nvar x v Jtv
179
179
@lencheck model. nnzj rows cols
180
180
jtprod_residual! (model, x, v, Jtv)
181
181
end
185
185
Computes ``J(x)``, the Jacobian of the residual at x, in linear operator form.
186
186
"""
187
187
function jac_op_residual (model:: AbstractVIModel{T, S} , x:: AbstractVector{T} ) where {T, S}
188
- @lencheck model. nvar x
189
- Jv = S (undef, model. nvar)
190
- Jtv = S (undef, model. nvar)
188
+ @lencheck model. meta . nvar x
189
+ Jv = S (undef, model. meta . nvar)
190
+ Jtv = S (undef, model. meta . nvar)
191
191
return jac_op_residual! (model, x, Jv, Jtv)
192
192
end
193
193
@@ -202,7 +202,7 @@ function jac_op_residual!(
202
202
Jv:: AbstractVector ,
203
203
Jtv:: AbstractVector ,
204
204
)
205
- @lencheck model. nvar x Jv Jtv
205
+ @lencheck model. meta . nvar x Jv Jtv
206
206
prod! = @closure (res, v, α, β) -> begin
207
207
jprod_residual! (model, x, v, Jv)
208
208
if β == 0
@@ -222,8 +222,8 @@ function jac_op_residual!(
222
222
return res
223
223
end
224
224
return LinearOperator {eltype(x)} (
225
- model. nvar,
226
- model. nvar,
225
+ model. meta . nvar,
226
+ model. meta . nvar,
227
227
false ,
228
228
false ,
229
229
prod!,
@@ -246,7 +246,7 @@ function jac_op_residual!(
246
246
Jtv:: AbstractVector ,
247
247
)
248
248
@lencheck model. nnzj rows cols vals
249
- @lencheck model. nvar Jv Jtv
249
+ @lencheck model. meta . nvar Jv Jtv
250
250
prod! = @closure (res, v, α, β) -> begin
251
251
jprod_residual! (model, rows, cols, vals, v, Jv)
252
252
if β == 0
@@ -266,8 +266,8 @@ function jac_op_residual!(
266
266
return res
267
267
end
268
268
return LinearOperator {eltype(vals)} (
269
- model. nvar,
270
- model. nvar,
269
+ model. meta . nvar,
270
+ model. meta . nvar,
271
271
false ,
272
272
false ,
273
273
prod!,
@@ -290,7 +290,7 @@ function jac_op_residual!(
290
290
Jv:: AbstractVector ,
291
291
Jtv:: AbstractVector ,
292
292
)
293
- @lencheck model. nvar x Jv Jtv
293
+ @lencheck model. meta . nvar x Jv Jtv
294
294
@lencheck model. nnzj rows cols
295
295
vals = jac_coord_residual (model, x)
296
296
decrement! (model, :neval_jac_residual )
@@ -304,10 +304,10 @@ Computes the linear combination of the Hessians of the residuals at `x` with coe
304
304
A `Symmetric` object wrapping the lower triangle is returned.
305
305
"""
306
306
function hess_residual (model:: AbstractVIModel , x:: AbstractVector , v:: AbstractVector )
307
- @lencheck model. nvar x v
307
+ @lencheck model. meta . nvar x v
308
308
rows, cols = hess_structure_residual (model)
309
309
vals = hess_coord_residual (model, x, v)
310
- Symmetric (sparse (rows, cols, vals, model. nvar, model. nvar), :L )
310
+ Symmetric (sparse (rows, cols, vals, model. meta . nvar, model. meta . nvar), :L )
311
311
end
312
312
313
313
"""
@@ -339,7 +339,7 @@ Computes the linear combination of the Hessians of the residuals at `x` with coe
339
339
`v` in sparse coordinate format.
340
340
"""
341
341
function hess_coord_residual (model:: AbstractVIModel , x:: AbstractVector , v:: AbstractVector )
342
- @lencheck model. nvar x v
342
+ @lencheck model. meta . nvar x v
343
343
vals = Vector {eltype(x)} (undef, model. nnzh)
344
344
hess_coord_residual! (model, x, v, vals)
345
345
end
@@ -349,10 +349,10 @@ end
349
349
Computes the Hessian of the j-th residual at x.
350
350
"""
351
351
function jth_hess_residual (model:: AbstractVIModel , x:: AbstractVector , j:: Int )
352
- @lencheck model. nvar x
352
+ @lencheck model. meta . nvar x
353
353
increment! (model, :neval_jhess_residual )
354
354
decrement! (model, :neval_hess_residual )
355
- v = [i == j ? one (eltype (x)) : zero (eltype (x)) for i = 1 : (model. nvar)]
355
+ v = [i == j ? one (eltype (x)) : zero (eltype (x)) for i = 1 : (model. meta . nvar)]
356
356
return hess_residual (model, x, v)
357
357
end
358
358
@@ -366,8 +366,8 @@ function hprod_residual(
366
366
i:: Int ,
367
367
v:: AbstractVector ,
368
368
) where {T, S}
369
- @lencheck model. nvar x
370
- Hv = S (undef, model. nvar)
369
+ @lencheck model. meta . nvar x
370
+ Hv = S (undef, model. meta . nvar)
371
371
hprod_residual! (model, x, i, v, Hv)
372
372
end
373
373
@@ -382,8 +382,8 @@ function hprod_residual! end
382
382
Computes the Hessian of the i-th residual at x, in linear operator form.
383
383
"""
384
384
function hess_op_residual (model:: AbstractVIModel{T, S} , x:: AbstractVector{T} , i:: Int ) where {T, S}
385
- @lencheck model. nvar x
386
- Hiv = S (undef, model. nvar)
385
+ @lencheck model. meta . nvar x
386
+ Hiv = S (undef, model. meta . nvar)
387
387
return hess_op_residual! (model, x, i, Hiv)
388
388
end
389
389
392
392
Computes the Hessian of the i-th residual at x, in linear operator form. The vector `Hiv` is used as preallocated storage for the operation.
393
393
"""
394
394
function hess_op_residual! (model:: AbstractVIModel , x:: AbstractVector , i:: Int , Hiv:: AbstractVector )
395
- @lencheck model. nvar x Hiv
395
+ @lencheck model. meta . nvar x Hiv
396
396
prod! = @closure (res, v, α, β) -> begin
397
397
hprod_residual! (model, x, i, v, Hiv)
398
398
if β == 0
@@ -403,8 +403,8 @@ function hess_op_residual!(model::AbstractVIModel, x::AbstractVector, i::Int, Hi
403
403
return res
404
404
end
405
405
return LinearOperator {eltype(x)} (
406
- model. nvar,
407
- model. nvar,
406
+ model. meta . nvar,
407
+ model. meta . nvar,
408
408
true ,
409
409
true ,
410
410
prod!,
@@ -435,7 +435,7 @@ Compute the projection of d over X, i.e.,
435
435
```
436
436
"""
437
437
function project (model:: AbstractVIModel{T, S} , x:: AbstractVector{T} ) where {T, S}
438
- @lencheck model. nvar x
439
- Px = S (undef, model. nvar)
438
+ @lencheck model. meta . nvar x
439
+ Px = S (undef, model. meta . nvar)
440
440
project! (model, x, Px)
441
441
end
0 commit comments