Skip to content

Commit e22972b

Browse files
committed
fixing documentation for CUTEst functions
1 parent 53122e0 commit e22972b

File tree

4 files changed

+61
-28
lines changed

4 files changed

+61
-28
lines changed

docs/src/reference.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,9 @@
44

55
```@index
66
```
7+
8+
```@docs
9+
CUTEst.cons_coord
10+
CUTEst.cons_coord!
11+
CUTEst.consjac
12+
```

src/julia_interface.jl

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ end
2626
2727
Prepare output by copying from source to target, using workspace for type conversion if needed.
2828
"""
29-
@inline function prepare_output!(workspace::Vector{T}, target::AbstractVector{S}, source::AbstractVector{T}) where {T, S}
29+
@inline function prepare_output!(
30+
workspace::Vector{T},
31+
target::AbstractVector{S},
32+
source::AbstractVector{T},
33+
) where {T, S}
3034
if S === T && typeof(target) <: Vector{T}
3135
target .= source
3236
else
@@ -75,9 +79,9 @@ end
7579

7680
function NLPModels.grad!(nlp::CUTEstModel{T}, x::AbstractVector, g::AbstractVector) where {T}
7781
@lencheck nlp.meta.nvar x g
78-
82+
7983
x_prepared = prepare_input!(nlp.input_workspace, x)
80-
84+
8185
if typeof(g) <: Vector{T}
8286
grad!(nlp, x_prepared, g)
8387
else
@@ -222,7 +226,7 @@ function cons_coord!(
222226
@lencheck nlp.meta.nvar x
223227
@lencheck nlp.meta.ncon c
224228
@lencheck nlp.meta.nnzj rows cols vals
225-
229+
226230
nnzj = nlp.meta.nnzj
227231
if length(nlp.jac_coord_rows) < nnzj
228232
resize!(nlp.jac_coord_rows, nnzj)
@@ -232,11 +236,16 @@ function cons_coord!(
232236
if length(nlp.cons_vals) < nlp.meta.ncon
233237
resize!(nlp.cons_vals, nlp.meta.ncon)
234238
end
235-
236-
cons_coord!(nlp, Vector{T}(x), view(nlp.cons_vals, 1:nlp.meta.ncon),
237-
view(nlp.jac_coord_rows, 1:nnzj), view(nlp.jac_coord_cols, 1:nnzj),
238-
view(nlp.jac_coord_vals, 1:nnzj))
239-
239+
240+
cons_coord!(
241+
nlp,
242+
Vector{T}(x),
243+
view(nlp.cons_vals, 1:nlp.meta.ncon),
244+
view(nlp.jac_coord_rows, 1:nnzj),
245+
view(nlp.jac_coord_cols, 1:nnzj),
246+
view(nlp.jac_coord_vals, 1:nnzj),
247+
)
248+
240249
rows .= view(nlp.jac_coord_rows, 1:nnzj)
241250
cols .= view(nlp.jac_coord_cols, 1:nnzj)
242251
vals .= view(nlp.jac_coord_vals, 1:nnzj)
@@ -262,7 +271,7 @@ Usage:
262271
"""
263272
function cons_coord(nlp::CUTEstModel{T}, x::StrideOneVector{T}) where {T}
264273
@lencheck nlp.meta.nvar x
265-
274+
266275
nnzj = nlp.meta.nnzj
267276
if length(nlp.jac_coord_rows) < nnzj
268277
resize!(nlp.jac_coord_rows, nnzj)
@@ -272,16 +281,21 @@ function cons_coord(nlp::CUTEstModel{T}, x::StrideOneVector{T}) where {T}
272281
if length(nlp.cons_vals) < nlp.meta.ncon
273282
resize!(nlp.cons_vals, nlp.meta.ncon)
274283
end
275-
276-
cons_coord!(nlp, x, view(nlp.cons_vals, 1:nlp.meta.ncon),
277-
view(nlp.jac_coord_rows, 1:nnzj), view(nlp.jac_coord_cols, 1:nnzj),
278-
view(nlp.jac_coord_vals, 1:nnzj))
279-
284+
285+
cons_coord!(
286+
nlp,
287+
x,
288+
view(nlp.cons_vals, 1:nlp.meta.ncon),
289+
view(nlp.jac_coord_rows, 1:nnzj),
290+
view(nlp.jac_coord_cols, 1:nnzj),
291+
view(nlp.jac_coord_vals, 1:nnzj),
292+
)
293+
280294
c = copy(view(nlp.cons_vals, 1:nlp.meta.ncon))
281295
rows = copy(view(nlp.jac_coord_rows, 1:nnzj))
282296
cols = copy(view(nlp.jac_coord_cols, 1:nnzj))
283297
vals = copy(view(nlp.jac_coord_vals, 1:nnzj))
284-
298+
285299
return c, rows, cols, vals
286300
end
287301

@@ -699,13 +713,18 @@ function NLPModels.hess_coord!(
699713
@lencheck nlp.meta.nvar x
700714
@lencheck nlp.meta.ncon y
701715
@lencheck nlp.meta.nnzh vals
702-
716+
703717
if length(nlp.hess_coord_vals) < nlp.meta.nnzh
704718
resize!(nlp.hess_coord_vals, nlp.meta.nnzh)
705719
end
706-
707-
NLPModels.hess_coord!(nlp, Vector{T}(x), convert(Vector{T}, y),
708-
view(nlp.hess_coord_vals, 1:nlp.meta.nnzh), obj_weight = obj_weight)
720+
721+
NLPModels.hess_coord!(
722+
nlp,
723+
Vector{T}(x),
724+
convert(Vector{T}, y),
725+
view(nlp.hess_coord_vals, 1:nlp.meta.nnzh),
726+
obj_weight = obj_weight,
727+
)
709728
vals .= view(nlp.hess_coord_vals, 1:nlp.meta.nnzh)
710729
return vals
711730
end

src/model.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ mutable struct CUTEstModel{T} <: AbstractNLPModel{T, Vector{T}}
1919
jac_coord_cols::Vector{Cint}
2020
jac_coord_vals::Vector{T}
2121
hess_coord_vals::Vector{T}
22-
22+
2323
cons_vals::Vector{T}
2424
cons_nln_vals::Vector{T}
25-
25+
2626
input_workspace::Vector{T}
2727
output_workspace::Vector{T}
2828

@@ -312,11 +312,11 @@ function CUTEstModel{T}(
312312
jac_coord_cols = Vector{Cint}(undef, nnzj)
313313
jac_coord_vals = Vector{T}(undef, nnzj)
314314
hess_coord_vals = Vector{T}(undef, nnzh)
315-
315+
316316
cons_vals = Vector{T}(undef, ncon)
317317
nnln = count(.!linear)
318318
cons_nln_vals = Vector{T}(undef, nnln)
319-
319+
320320
input_workspace = Vector{T}(undef, nvar)
321321
output_workspace = Vector{T}(undef, max(nvar, ncon))
322322

test/test_comprehensive.jl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ vals_h = Vector{Float64}(undef, nlp1.meta.nnzh)
1212
hess_coord!(nlp1, x0, vals_h)
1313

1414
b_hess = @benchmark hess_coord!($nlp1, $x0, $vals_h) samples=100 evals=5
15-
println("hess_coord!: $(b_hess.allocs) allocations, $(BenchmarkTools.prettytime(median(b_hess).time))")
15+
println(
16+
"hess_coord!: $(b_hess.allocs) allocations, $(BenchmarkTools.prettytime(median(b_hess).time))",
17+
)
1618

1719
finalize(nlp1)
1820

@@ -36,7 +38,9 @@ println("\nTesting cons_coord allocation improvements:")
3638
c1, rows1, cols1, vals1 = cons_coord(nlp2, x0)
3739

3840
b_cons = @benchmark cons_coord($nlp2, $x0) samples=100 evals=5
39-
println("cons_coord: $(b_cons.allocs) allocations, $(BenchmarkTools.prettytime(median(b_cons).time))")
41+
println(
42+
"cons_coord: $(b_cons.allocs) allocations, $(BenchmarkTools.prettytime(median(b_cons).time))",
43+
)
4044
println("Memory: $(BenchmarkTools.prettymemory(median(b_cons).memory))")
4145
println("Returned $(length(vals1)) Jacobian elements")
4246

@@ -46,7 +50,9 @@ vals = Vector{Float64}(undef, nlp2.meta.nnzj)
4650
c_out = Vector{Float64}(undef, nlp2.meta.ncon)
4751

4852
b_cons_inplace = @benchmark cons_coord!($nlp2, $x0, $c_out, $rows, $cols, $vals) samples=100 evals=5
49-
println("cons_coord!: $(b_cons_inplace.allocs) allocations, $(BenchmarkTools.prettytime(median(b_cons_inplace).time))")
53+
println(
54+
"cons_coord!: $(b_cons_inplace.allocs) allocations, $(BenchmarkTools.prettytime(median(b_cons_inplace).time))",
55+
)
5056

5157
println("\nTesting type conversion improvements:")
5258
x0_f32 = Float32.(x0)
@@ -61,6 +67,8 @@ y = zeros(nlp2.meta.ncon)
6167
hess_coord!(nlp2, x0, y, vals_h2)
6268

6369
b_hess2 = @benchmark hess_coord!($nlp2, $x0, $y, $vals_h2) samples=100 evals=5
64-
println("hess_coord! (constrained): $(b_hess2.allocs) allocations, $(BenchmarkTools.prettytime(median(b_hess2).time))")
70+
println(
71+
"hess_coord! (constrained): $(b_hess2.allocs) allocations, $(BenchmarkTools.prettytime(median(b_hess2).time))",
72+
)
6573

6674
finalize(nlp2)

0 commit comments

Comments
 (0)