Skip to content

Commit c626f5f

Browse files
committed
trig changes
1 parent 5f03f47 commit c626f5f

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/ADNLPProblems/trig.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ function trig(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where
66
for i = 1:n
77
s += i * (1 - cos(x[i]))
88

9-
for j = max(1, i - 2):min(n, i + 2)
9+
js = max(1, i - 2):min(n, i + 2)
10+
if iseven(n)
11+
js = sort(collect(union(collect(js), [j for j in (i + n ÷ 2, i - n ÷ 2) if 1 <= j <= n])))
12+
end
13+
for j in js
1014
aij = 5 * (1 + mod(i, 5) + mod(j, 5))
1115
bij = (i + j) // 10
1216
s += aij * sin(x[j]) + bij * cos(x[j])

src/PureJuMP/trig.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ function trig(args...; n::Int = default_nvar, kwargs...)
2020
Min,
2121
(1 / n) * sum(
2222
i * (1 - cos(x[i])) +
23-
sum(
24-
5 * (1 + mod(i, 5) + mod(j, 5)) * sin(x[j]) + (i + j) / 10 * cos(x[j]) for
25-
j = max(1, i - 2):min(n, i + 2)
23+
(
24+
sum(5 * (1 + mod(i, 5) + mod(j, 5)) * sin(x[j]) + (i + j) / 10 * cos(x[j]) for j in (
25+
iseven(n) ? sort(collect(union(collect(max(1, i - 2):min(n, i + 2)), [j for j in (i + n ÷ 2, i - n ÷ 2) if 1 <= j <= n]))) : max(1, i - 2):min(n, i + 2)
26+
))
2627
) for i = 1:n
2728
)
2829
)

0 commit comments

Comments
 (0)