@@ -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