@@ -1484,6 +1484,7 @@ function con_nonlinprogeq!(
14841484 nx̂_nk = nx̂ + nk
14851485 D̂0 = mpc. D̂0
14861486 X̂0_Z̃, K_Z̃ = @views Z̃[(nΔU+ 1 ): (nΔU+ nX̂)], Z̃[(nΔU+ nX̂+ 1 ): (nΔU+ nX̂+ nk* Hp)]
1487+ ΔK = similar (K̇) # TODO : remove this allocation
14871488 @threadsif f_threads for j= 1 : Hp
14881489 if j < 2
14891490 x̂0_Z̃ = @views mpc. estim. x̂0[1 : nx̂]
@@ -1493,6 +1494,7 @@ function con_nonlinprogeq!(
14931494 d̂0 = @views D̂0[(1 + nd* (j- 2 )): (nd* (j- 1 ))]
14941495 end
14951496 k̇ = @views K̇[(1 + nk* (j- 1 )): (nk* j)]
1497+ Δk = @views ΔK[(1 + nk* (j- 1 )): (nk* j)]
14961498 k_Z̃ = @views K_Z̃[(1 + nk* (j- 1 )): (nk* j)]
14971499 x̂0next = @views X̂0[(1 + nx̂* (j- 1 )): (nx̂* j)]
14981500 x̂0next_Z̃ = @views X̂0_Z̃[(1 + nx̂* (j- 1 )): (nx̂* j)]
@@ -1510,11 +1512,10 @@ function con_nonlinprogeq!(
15101512 u0 = @views U0[(1 + nu* (j- 1 )): (nu* j)]
15111513 û0 = @views Û0[(1 + nu* (j- 1 )): (nu* j)]
15121514 f̂_input! (û0, mpc. estim, model, x̂0_Z̃, u0)
1513- Δk = similar (k̇) # TODO : remove this allocation
15141515 for o= 1 : no
15151516 k̇o = @views k̇[(1 + (o- 1 )* nx): (o* nx)]
1516- ko_Z̃ = @views k_Z̃[(1 + (o- 1 )* nx): (o* nx)]
15171517 Δko = @views Δk[(1 + (o- 1 )* nx): (o* nx)]
1518+ ko_Z̃ = @views k_Z̃[(1 + (o- 1 )* nx): (o* nx)]
15181519 Δko .= @. ko_Z̃ - x0_Z̃
15191520 model. f! (k̇o, ko_Z̃, û0, d̂0, p)
15201521 end
0 commit comments