Skip to content

Instantly share code, notes, and snippets.

@jgillis
Last active September 7, 2023 08:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jgillis/cc8f6336220fcb86180b2b6451ea966c to your computer and use it in GitHub Desktop.
Save jgillis/cc8f6336220fcb86180b2b6451ea966c to your computer and use it in GitHub Desktop.
m = 10 # Limite memory size
x_latest = MX.sym("x_latest",nx)
g_latest = MX.sym("g_latest",nx)
x_prev = MX.sym("x_prev",nx)
g_prev = MX.sym("g_prev",nx)
s_latest = x_latest-x_prev
y_latest = g_latest-g_prev
s_mem = MX.sym("nx", nx, m)
y_mem = MX.sym("nx", ny, m)
H = ...
for i in range(m):
H = f(H,s_mem[:,i],y_mem[:,i])
mem_in = veccat(x_prev,g_prev, s_mem, y_mem)
mem_out = vertcat(x_latest,g_latest,veccat(s_latest,s_mem[:,:-1]),veccat(y_latest,y_mem[:,:-1]))
LBGS = Function('LBGS',[x_latest,g_latest, mem_in],[H, mem_out])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment