Skip to content

Commit 5d3e551

Browse files
committed
fixing errors and adding documentation
1 parent 09064a6 commit 5d3e551

19 files changed

Lines changed: 167 additions & 138 deletions

src/ADNLPProblems/auglag.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ function auglag(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) whe
99
s = zero(T)
1010
for i = 1:n
1111
if mod(i, 5) == 0
12-
# Compute exp(∏ x[i+1-j] for j=1:5)
1312
prod_term = one(T)
1413
sum_sq = zero(T)
1514
for j = 1:5
@@ -21,12 +20,10 @@ function auglag(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) whe
2120
end
2221
s += exp(prod_term) + 10 * (sum_sq - 10 - λ₁)^2
2322

24-
# Add (x[i-3]*x[i-2] - 5*x[i-1]*x[i] - λ₂)^2
2523
if i >= 4
2624
s += 10 * (x[i-3] * x[i-2] - 5 * x[i-1] * x[i] - λ₂)^2
2725
end
2826

29-
# Add (x[i-4]^3 + x[i-3]^3 + 1 - λ₃)^2
3027
if i >= 4
3128
s += 10 * (x[i-4]^3 + x[i-3]^3 + 1 - λ₃)^2
3229
end
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
export browngen
1+
export browngen1
22

3-
function browngen(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
3+
function browngen1(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
44
n = max(2, n)
55
function f(x; n = length(x))
66
s = zero(T)
@@ -12,5 +12,5 @@ function browngen(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) w
1212
return s
1313
end
1414
x0 = [isodd(i) ? zero(T) : -one(T) for i in 1:n]
15-
return ADNLPModels.ADNLPModel(f, x0, name = "browngen"; kwargs...)
15+
return ADNLPModels.ADNLPModel(f, x0, name = "browngen1"; kwargs...)
1616
end

src/ADNLPProblems/chainwoo.jl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,10 @@ function chainwoo(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, k
2626
(n % 4 == 0) || @warn("chainwoo: number of variables adjusted to be a multiple of 4")
2727
n = 4 * max(1, div(n, 4))
2828
function F!(r, x; n = length(x))
29-
# construct typical residuals corresponding to each pair block
3029
for i = 1:(div(n, 2) - 1)
3130
idx = 2 * i - 1
3231
r[idx] = 1 - x[idx]
3332
r[idx + 1] = x[idx + 1] - x[idx]^2
34-
# second pair
3533
r[idx + 2] = 1 - x[idx + 2]
3634
r[idx + 3] = x[idx + 3] - x[idx + 2]^2
3735
end

src/ADNLPProblems/cragglvy2.jl

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@ function cragglvy2(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64,
2626
n = max(2, n)
2727
function F!(r, x; n = length(x))
2828
for i = 1:(div(n, 2) - 1)
29-
r[2 * i - 1] = (exp(x[2 * i - 1]) - x[2 * i])^2
30-
r[2 * i] = 10 * (x[2 * i] - x[2 * i + 1])^4
31-
r[2 * i + 1] = tan(x[2 * i + 1] - x[2 * i + 2])^2
32-
r[2 * i + 2] = x[2 * i + 2] - 1
29+
r[5 * (i - 1) + 1] = (exp(x[2 * i - 1]) - x[2 * i])^2
30+
r[5 * (i - 1) + 2] = 10 * (x[2 * i] - x[2 * i + 1])^3
31+
r[5 * (i - 1) + 3] = (tan(x[2 * i + 1] - x[2 * i + 2]))^2
32+
r[5 * (i - 1) + 4] = x[2 * i - 1]^4
33+
r[5 * (i - 1) + 5] = x[2 * i + 2] - 1
3334
end
3435
return r
3536
end
37+
nequ = 5 * (div(n, 2) - 1)
3638
x0 = vcat(T(1), T(2) * ones(T, n - 1))
37-
return ADNLPModels.ADNLSModel!(F!, x0, n, name = "cragglvy2-nls"; kwargs...)
39+
return ADNLPModels.ADNLSModel!(F!, x0, nequ, name = "cragglvy2-nls"; kwargs...)
3840
end
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
export genbroydentri
22

3-
function genbroyden(; use_nls::Bool = false, kwargs...)
3+
function genbroydentri(; use_nls::Bool = false, kwargs...)
44
model = use_nls ? :nls : :nlp
5-
return genbroyden(Val(model); kwargs...)
5+
return genbroydentri(Val(model); kwargs...)
66
end
77

8-
function genbroyden(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
8+
function genbroydentri(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
99
p = T(7) / T(3)
1010
function f(x; n = length(x))
1111
x0 = zero(T)
@@ -18,10 +18,10 @@ function genbroyden(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64,
1818
return s
1919
end
2020
x0 = fill(-one(T), n)
21-
return ADNLPModels.ADNLPModel(f, x0, name = "genbroyden"; kwargs...)
21+
return ADNLPModels.ADNLPModel(f, x0, name = "genbroydentri"; kwargs...)
2222
end
2323

24-
function genbroyden(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
24+
function genbroydentri(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
2525
p = T(7) / T(3)
2626
x0 = fill(-one(T), n)
2727
function F!(r, x)
@@ -36,5 +36,5 @@ function genbroyden(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64,
3636
end
3737
return r
3838
end
39-
return ADNLPModels.ADNLSModel!(F!, x0, n, name = "genbroyden-nls"; kwargs...)
39+
return ADNLPModels.ADNLSModel!(F!, x0, n, name = "genbroydentri-nls"; kwargs...)
4040
end

src/ADNLPProblems/genrose.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ function genrose(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kw
1818
end
1919

2020
function genrose(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
21-
# Ensure safe indexing in F!: requires at least 2 variables
2221
n = max(2, n)
2322
nequ = n - 1
2423
function F!(r, x; n = length(x))

src/ADNLPProblems/nazareth.jl

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,32 @@ end
77

88
function nazareth(::Val{:nlp}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
99
function f(x; n = length(x))
10+
nh = div(n, 2)
1011
s = zero(T)
1112
for i = 1:n
12-
Ji = [j for j in max(1, i-2):min(n, i+2)]
13-
nh = div(n, 2)
14-
for j in (1:n)
15-
if abs(j-i) == nh && !(j in Ji)
16-
push!(Ji, j)
17-
end
18-
end
1913
sumtrig = zero(T)
20-
for j in Ji
21-
aij = 5 * (1 + mod(i,5) + mod(j,5))
22-
bij = (i + j) // 10
14+
for j = max(1, i-2):min(n, i+2)
15+
aij = T(5 * (1 + mod(i,5) + mod(j,5)))
16+
bij = T((i + j) / 10)
2317
sumtrig += aij * sin(x[j]) + bij * cos(x[j])
2418
end
19+
for j = 1:n
20+
if abs(j-i) == nh && (j < max(1, i-2) || j > min(n, i+2))
21+
aij = T(5 * (1 + mod(i,5) + mod(j,5)))
22+
bij = T((i + j) / 10)
23+
sumtrig += aij * sin(x[j]) + bij * cos(x[j])
24+
end
25+
end
2526
s += (n + i - sumtrig)^2
2627
end
27-
return s
28+
return s / T(n)
2829
end
29-
x0 = fill(one(T) // n, n)
30+
x0 = fill(one(T)/sqrt(T(n)), n)
3031
return ADNLPModels.ADNLPModel(f, x0, name = "nazareth", minimize = true; kwargs...)
3132
end
3233

3334
function nazareth(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
34-
x0 = fill(one(T)/T(n), n)
35+
x0 = fill(one(T)/sqrt(T(n)), n)
3536
function F!(r, x)
3637
nh = div(n, 2)
3738
@inbounds for i = 1:n
@@ -48,7 +49,7 @@ function nazareth(::Val{:nls}; n::Int = default_nvar, type::Type{T} = Float64, k
4849
sumtrig += aij * sin(x[j]) + bij * cos(x[j])
4950
end
5051
end
51-
r[i] = n + i - sumtrig
52+
r[i] = (n + i - sumtrig) / sqrt(T(n))
5253
end
5354
return r
5455
end

src/Meta/browngen.jl

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/Meta/browngen1.jl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
browngen1_meta = Dict(
2+
:nvar => 100,
3+
:variable_nvar => true,
4+
:ncon => 0,
5+
:variable_ncon => false,
6+
:minimize => true,
7+
:name => "browngen1",
8+
:has_equalities_only => false,
9+
:has_inequalities_only => false,
10+
:has_bounds => false,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :unconstrained,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :literature,
19+
)
20+
21+
get_browngen1_nvar(; n::Integer = default_nvar, kwargs...) = max(n, 2)
22+
get_browngen1_ncon(; n::Integer = default_nvar, kwargs...) = 0
23+
get_browngen1_nlin(; n::Integer = default_nvar, kwargs...) = 0
24+
get_browngen1_nnln(; n::Integer = default_nvar, kwargs...) = 0
25+
get_browngen1_nequ(; n::Integer = default_nvar, kwargs...) = 0
26+
get_browngen1_nineq(; n::Integer = default_nvar, kwargs...) = 0
27+
get_browngen1_nls_nequ(; n::Integer = default_nvar, kwargs...) = 0

src/Meta/cragglvy2.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ get_cragglvy2_nlin(; n::Integer = default_nvar, kwargs...) = 0
2424
get_cragglvy2_nnln(; n::Integer = default_nvar, kwargs...) = 0
2525
get_cragglvy2_nequ(; n::Integer = default_nvar, kwargs...) = 0
2626
get_cragglvy2_nineq(; n::Integer = default_nvar, kwargs...) = 0
27-
get_cragglvy2_nls_nequ(; n::Integer = default_nvar, kwargs...) = get_cragglvy2_nvar(; n = n)
27+
get_cragglvy2_nls_nequ(; n::Integer = default_nvar, kwargs...) = 5 * (div(n, 2) - 1)

0 commit comments

Comments
 (0)