Skip to content

Commit 8b21ec0

Browse files
committed
removed variable size arrays from some test problems
1 parent 916e752 commit 8b21ec0

File tree

4 files changed

+692
-356
lines changed

4 files changed

+692
-356
lines changed

test_problems/test_d_cond.c

Lines changed: 122 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ int main()
181181

182182
// stage-wise variant size
183183

184-
int nx[N+1];
184+
int *nx = (int *) malloc((N+1)*sizeof(int));
185185
#if KEEP_X0
186186
nx[0] = nx_;
187187
#else
@@ -191,17 +191,17 @@ int main()
191191
nx[ii] = nx_;
192192
// nx[N] = 0;
193193

194-
int nu[N+1];
194+
int *nu = (int *) malloc((N+1)*sizeof(int));
195195
for(ii=0; ii<N; ii++)
196196
nu[ii] = nu_;
197197
nu[N] = 0;
198198

199-
int nbu[N+1];
199+
int *nbu = (int *) malloc((N+1)*sizeof(int));
200200
for (ii=0; ii<=N; ii++)
201201
nbu[ii] = nu[ii];
202202

203203
#if 1
204-
int nbx[N+1];
204+
int *nbx = (int *) malloc((N+1)*sizeof(int));
205205
#if KEEP_X0
206206
nbx[0] = nx[0]/2;
207207
#else
@@ -210,31 +210,31 @@ int main()
210210
for(ii=1; ii<=N; ii++)
211211
nbx[ii] = nx[ii]/2;
212212

213-
int nb[N+1];
213+
int *nb = (int *) malloc((N+1)*sizeof(int));
214214
for (ii=0; ii<=N; ii++)
215215
nb[ii] = nbu[ii]+nbx[ii];
216216

217-
int ng[N+1];
217+
int *ng = (int *) malloc((N+1)*sizeof(int));
218218
ng[0] = 0;
219219
for(ii=1; ii<N; ii++)
220220
ng[ii] = 0;
221221
ng[N] = 0;
222222

223-
int nsbx[N+1];
223+
int *nsbx = (int *) malloc((N+1)*sizeof(int));
224224
nsbx[0] = 0;
225225
for(ii=1; ii<N; ii++)
226226
nsbx[ii] = nx[ii]/2;
227227
nsbx[N] = nx[N]/2;
228228

229-
int nsbu[N+1];
229+
int *nsbu = (int *) malloc((N+1)*sizeof(int));
230230
for(ii=0; ii<=N; ii++)
231231
nsbu[ii] = 0;
232232

233-
int nsg[N+1];
233+
int *nsg = (int *) malloc((N+1)*sizeof(int));
234234
for(ii=0; ii<=N; ii++)
235235
nsg[ii] = 0;
236236

237-
int ns[N+1];
237+
int *ns = (int *) malloc((N+1)*sizeof(int));
238238
for(ii=0; ii<=N; ii++)
239239
ns[ii] = nsbx[ii] + nsbu[ii] + nsg[ii];
240240

@@ -587,31 +587,31 @@ int main()
587587
* array of matrices
588588
************************************************/
589589

590-
double *hA[N];
591-
double *hB[N];
592-
double *hb[N];
593-
double *hQ[N+1];
594-
double *hS[N+1];
595-
double *hR[N+1];
596-
double *hq[N+1];
597-
double *hr[N+1];
598-
int *hidxbx[N+1];
599-
double *hd_lbx[N+1];
600-
double *hd_ubx[N+1];
601-
int *hidxbu[N+1];
602-
double *hd_lbu[N+1];
603-
double *hd_ubu[N+1];
604-
double *hC[N+1];
605-
double *hD[N+1];
606-
double *hd_lg[N+1];
607-
double *hd_ug[N+1];
608-
double *hZl[N+1];
609-
double *hZu[N+1];
610-
double *hzl[N+1];
611-
double *hzu[N+1];
612-
int *hidxs[N+1]; // XXX
613-
double *hd_ls[N+1];
614-
double *hd_us[N+1];
590+
double **hA = (double **) malloc((N)*sizeof(double *));
591+
double **hB = (double **) malloc((N)*sizeof(double *));
592+
double **hb = (double **) malloc((N)*sizeof(double *));
593+
double **hQ = (double **) malloc((N+1)*sizeof(double *));
594+
double **hS = (double **) malloc((N+1)*sizeof(double *));
595+
double **hR = (double **) malloc((N+1)*sizeof(double *));
596+
double **hq = (double **) malloc((N+1)*sizeof(double *));
597+
double **hr = (double **) malloc((N+1)*sizeof(double *));
598+
int **hidxbx = (int **) malloc((N+1)*sizeof(int *));
599+
double **hd_lbx = (double **) malloc((N+1)*sizeof(double *));
600+
double **hd_ubx = (double **) malloc((N+1)*sizeof(double *));
601+
int **hidxbu = (int **) malloc((N+1)*sizeof(int *));
602+
double **hd_lbu = (double **) malloc((N+1)*sizeof(double *));
603+
double **hd_ubu = (double **) malloc((N+1)*sizeof(double *));
604+
double **hC = (double **) malloc((N+1)*sizeof(double *));
605+
double **hD = (double **) malloc((N+1)*sizeof(double *));
606+
double **hd_lg = (double **) malloc((N+1)*sizeof(double *));
607+
double **hd_ug = (double **) malloc((N+1)*sizeof(double *));
608+
double **hZl = (double **) malloc((N+1)*sizeof(double *));
609+
double **hZu = (double **) malloc((N+1)*sizeof(double *));
610+
double **hzl = (double **) malloc((N+1)*sizeof(double *));
611+
double **hzu = (double **) malloc((N+1)*sizeof(double *));
612+
int **hidxs = (int **) malloc((N+1)*sizeof(int *));
613+
double **hd_ls = (double **) malloc((N+1)*sizeof(double *));
614+
double **hd_us = (double **) malloc((N+1)*sizeof(double *));
615615

616616
hA[0] = A;
617617
hB[0] = B;
@@ -819,7 +819,7 @@ int main()
819819
/* update cond */
820820

821821
// index of updated dynamics
822-
int idxc[N];
822+
int *idxc = (int *) malloc(N*sizeof(int));
823823
for(ii=0; ii<N; ii++)
824824
idxc[ii] = 0;
825825
idxc[0] = 1;
@@ -1042,17 +1042,29 @@ int main()
10421042

10431043
d_cond_qp_expand_sol(&ocp_qp, &dense_qp_sol, &ocp_qp_sol, &cond_arg, &cond_ws);
10441044

1045-
double *u[N+1]; for(ii=0; ii<=N; ii++) d_zeros(u+ii, nu[ii], 1);
1046-
double *x[N+1]; for(ii=0; ii<=N; ii++) d_zeros(x+ii, nx[ii], 1);
1047-
double *ls[N+1]; for(ii=0; ii<=N; ii++) d_zeros(ls+ii, ns[ii], 1);
1048-
double *us[N+1]; for(ii=0; ii<=N; ii++) d_zeros(us+ii, ns[ii], 1);
1049-
double *pi[N]; for(ii=0; ii<N; ii++) d_zeros(pi+ii, nx[ii+1], 1);
1050-
double *lam_lb[N+1]; for(ii=0; ii<=N; ii++) d_zeros(lam_lb+ii, nb[ii], 1);
1051-
double *lam_ub[N+1]; for(ii=0; ii<=N; ii++) d_zeros(lam_ub+ii, nb[ii], 1);
1052-
double *lam_lg[N+1]; for(ii=0; ii<=N; ii++) d_zeros(lam_lg+ii, ng[ii], 1);
1053-
double *lam_ug[N+1]; for(ii=0; ii<=N; ii++) d_zeros(lam_ug+ii, ng[ii], 1);
1054-
double *lam_ls[N+1]; for(ii=0; ii<=N; ii++) d_zeros(lam_ls+ii, ns[ii], 1);
1055-
double *lam_us[N+1]; for(ii=0; ii<=N; ii++) d_zeros(lam_us+ii, ns[ii], 1);
1045+
double **u = (double **) malloc((N+1)*sizeof(double *));
1046+
double **x = (double **) malloc((N+1)*sizeof(double *));
1047+
double **ls = (double **) malloc((N+1)*sizeof(double *));
1048+
double **us = (double **) malloc((N+1)*sizeof(double *));
1049+
double **pi = (double **) malloc(N*sizeof(double *));
1050+
double **lam_lb = (double **) malloc((N+1)*sizeof(double *));
1051+
double **lam_ub = (double **) malloc((N+1)*sizeof(double *));
1052+
double **lam_lg = (double **) malloc((N+1)*sizeof(double *));
1053+
double **lam_ug = (double **) malloc((N+1)*sizeof(double *));
1054+
double **lam_ls = (double **) malloc((N+1)*sizeof(double *));
1055+
double **lam_us = (double **) malloc((N+1)*sizeof(double *));
1056+
1057+
for(ii=0; ii<=N; ii++) d_zeros(u+ii, nu[ii], 1);
1058+
for(ii=0; ii<=N; ii++) d_zeros(x+ii, nx[ii], 1);
1059+
for(ii=0; ii<=N; ii++) d_zeros(ls+ii, ns[ii], 1);
1060+
for(ii=0; ii<=N; ii++) d_zeros(us+ii, ns[ii], 1);
1061+
for(ii=0; ii<N; ii++) d_zeros(pi+ii, nx[ii+1], 1);
1062+
for(ii=0; ii<=N; ii++) d_zeros(lam_lb+ii, nb[ii], 1);
1063+
for(ii=0; ii<=N; ii++) d_zeros(lam_ub+ii, nb[ii], 1);
1064+
for(ii=0; ii<=N; ii++) d_zeros(lam_lg+ii, ng[ii], 1);
1065+
for(ii=0; ii<=N; ii++) d_zeros(lam_ug+ii, ng[ii], 1);
1066+
for(ii=0; ii<=N; ii++) d_zeros(lam_ls+ii, ns[ii], 1);
1067+
for(ii=0; ii<=N; ii++) d_zeros(lam_us+ii, ns[ii], 1);
10561068

10571069
d_ocp_qp_sol_get_all(&ocp_qp_sol, u, x, ls, us, pi, lam_lb, lam_ub, lam_lg, lam_ug, lam_ls, lam_us);
10581070

@@ -1116,6 +1128,19 @@ int main()
11161128
* free memory
11171129
************************************************/
11181130

1131+
free(nx);
1132+
free(nu);
1133+
free(nbu);
1134+
free(nbx);
1135+
free(nb);
1136+
free(ng);
1137+
free(nsbx);
1138+
free(nsbu);
1139+
free(nsg);
1140+
free(ns);
1141+
1142+
free(idxc);
1143+
11191144
d_free(A);
11201145
d_free(B);
11211146
d_free(b);
@@ -1176,6 +1201,56 @@ int main()
11761201
d_free(d_lsN);
11771202
d_free(d_usN);
11781203

1204+
free(hA);
1205+
free(hB);
1206+
free(hb);
1207+
free(hQ);
1208+
free(hS);
1209+
free(hR);
1210+
free(hq);
1211+
free(hr);
1212+
free(hidxbx);
1213+
free(hd_lbx);
1214+
free(hd_ubx);
1215+
free(hidxbu);
1216+
free(hd_lbu);
1217+
free(hd_ubu);
1218+
free(hC);
1219+
free(hD);
1220+
free(hd_lg);
1221+
free(hd_ug);
1222+
free(hZl);
1223+
free(hZu);
1224+
free(hzl);
1225+
free(hzu);
1226+
free(hidxs);
1227+
free(hd_ls);
1228+
free(hd_us);
1229+
1230+
for(ii=0; ii<=N; ii++) d_free(u[ii]);
1231+
for(ii=0; ii<=N; ii++) d_free(x[ii]);
1232+
for(ii=0; ii<=N; ii++) d_free(ls[ii]);
1233+
for(ii=0; ii<=N; ii++) d_free(us[ii]);
1234+
for(ii=0; ii<N; ii++) d_free(pi[ii]);
1235+
for(ii=0; ii<=N; ii++) d_free(lam_lb[ii]);
1236+
for(ii=0; ii<=N; ii++) d_free(lam_ub[ii]);
1237+
for(ii=0; ii<=N; ii++) d_free(lam_lg[ii]);
1238+
for(ii=0; ii<=N; ii++) d_free(lam_ug[ii]);
1239+
for(ii=0; ii<=N; ii++) d_free(lam_ls[ii]);
1240+
for(ii=0; ii<=N; ii++) d_free(lam_us[ii]);
1241+
1242+
free(u);
1243+
free(x);
1244+
free(ls);
1245+
free(us);
1246+
free(pi);
1247+
free(lam_lb);
1248+
free(lam_ub);
1249+
free(lam_lg);
1250+
free(lam_ug);
1251+
free(lam_ls);
1252+
free(lam_us);
1253+
11791254
free(ocp_qp_mem);
11801255
free(ocp_qp_sol_mem);
11811256
free(dense_qp_mem);

0 commit comments

Comments
 (0)