Skip to content

Commit 83dc048

Browse files
committed
removed: one allocation in OrthogonalCollocation
1 parent c4290c6 commit 83dc048

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/controller/transcription.jl

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,7 +1495,6 @@ function con_nonlinprogeq!(
14951495
D̂0 = mpc.D̂0
14961496
X̂0_Z̃, K_Z̃ = @views Z̃[(nΔU+1):(nΔU+nX̂)], Z̃[(nΔU+nX̂+1):(nΔU+nX̂+nk*Hp)]
14971497
di = mpc.estim.buffer.d
1498-
ΔK = similar(K̇) # TODO: remove this allocation
14991498
@threadsif f_threads for j=1:Hp
15001499
if j < 2
15011500
x̂0_Z̃ = @views mpc.estim.x̂0[1:nx̂]
@@ -1505,7 +1504,6 @@ function con_nonlinprogeq!(
15051504
d̂0 = @views D̂0[(1 + nd*(j-2)):(nd*(j-1))]
15061505
end
15071506
= @views K̇[(1 + nk*(j-1)):(nk*j)]
1508-
Δk = @views ΔK[(1 + nk*(j-1)):(nk*j)]
15091507
k_Z̃ = @views K_Z̃[(1 + nk*(j-1)):(nk*j)]
15101508
d̂0next = @views D̂0[(1 + nd*(j-1)):(nd*j)]
15111509
x̂0next = @views X̂0[(1 + nx̂*(j-1)):(nx̂*j)]
@@ -1524,15 +1522,18 @@ function con_nonlinprogeq!(
15241522
u0 = @views U0[(1 + nu*(j-1)):(nu*j)]
15251523
û0 = @views Û0[(1 + nu*(j-1)):(nu*j)]
15261524
f̂_input!(û0, mpc.estim, model, x̂0_Z̃, u0)
1525+
Δk =
1526+
for i=1:no
1527+
Δk[(1 + (i-1)*nx):(i*nx)] = @views k_Z̃[(1 + (i-1)*nx):(i*nx)] .- x0_Z̃
1528+
end
1529+
mul!(sk, Mo, Δk)
15271530
for i=1:no
15281531
k̇i = @views k̇[(1 + (i-1)*nx):(i*nx)]
1529-
Δki = @views Δk[(1 + (i-1)*nx):(i*nx)]
15301532
ki_Z̃ = @views k_Z̃[(1 + (i-1)*nx):(i*nx)]
1531-
Δki .= @. ki_Z̃ - x0_Z̃
15321533
di .= (1-τ[i]).*d̂0 .+ τ[i].*d̂0next
15331534
model.f!(k̇i, ki_Z̃, û0, d̂0, p)
15341535
end
1535-
sk .= mul!(sk, Mo, Δk) .-
1536+
sk .-=
15361537
# ----------------- continuity constraint defects ------------------------------
15371538
scnext .= mul!(scnext, Co, k_Z̃) .+ (λo.*x0_Z̃) .- x0next_Z̃
15381539
end

0 commit comments

Comments
 (0)