@@ -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 k̇ = @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 = 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) .- k̇
1536+ sk .- = k̇
15361537 # ----------------- continuity constraint defects ------------------------------
15371538 scnext .= mul! (scnext, Co, k_Z̃) .+ (λo.* x0_Z̃) .- x0next_Z̃
15381539 end
0 commit comments