@@ -698,9 +698,9 @@ function p_constraint_exa!(p, p_ocp, e1, e2, e3, c_type, label)
698698 e2 = replace_call(e2, p. x, p. t0, x0)
699699 e2 = replace_call(e2, p. x, p. tf, xf)
700700 e2 = subs2(e2, x0, p. x, 0 )
701- e2 = subs(e2, x0, :([$ (p. x)[$ k, 0 ] for $ k ∈ 1 : $ (p. dim_x)]))
701+ e2 = subs(e2, x0, :([$ (p. x)[$ k, 0 ] for $ k in 1 : ( $ (p. dim_x) )]))
702702 e2 = subs2(e2, xf, p. x, :grid_size)
703- e2 = subs(e2, xf, :([$ (p. x)[$ k, grid_size] for $ k ∈ 1 : $ (p. dim_x)]))
703+ e2 = subs(e2, xf, :([$ (p. x)[$ k, grid_size] for $ k in 1 : ( $ (p. dim_x) )]))
704704 concat(code, :($ pref. constraint($ p_ocp, $ e2; lcon= ($ e1[1 ]), ucon= ($ e3[1 ])))) # todo: e1/3[1] will be e1/3[k] when vectorised over dim
705705 end
706706 (:initial, rg) => begin
@@ -801,9 +801,9 @@ function p_constraint_exa!(p, p_ocp, e1, e2, e3, c_type, label)
801801 j = __symgen(:j)
802802 k = __symgen(:k)
803803 e2 = subs2(e2, xt, p. x, j)
804- e2 = subs(e2, xt, :([$ (p. x)[$ k, $ j] for $ k ∈ 1 : $ (p. dim_x)]))
804+ e2 = subs(e2, xt, :([$ (p. x)[$ k, $ j] for $ k in 1 : ( $ (p. dim_x) )]))
805805 e2 = subs2(e2, ut, p. u, j)
806- e2 = subs(e2, ut, :([$ (p. u)[$ k, $ j] for $ k ∈ 1 : $ (p. dim_u)]))
806+ e2 = subs(e2, ut, :([$ (p. u)[$ k, $ j] for $ k in 1 : ( $ (p. dim_u) )]))
807807 e2 = subs(e2, p. t, :($ (p. t0) + $ j * $ (p. dt)))
808808 concat(
809809 code,
@@ -904,31 +904,34 @@ function p_dynamics_coord_exa!(p, p_ocp, x, i, t, e)
904904 j12 = :($ j1 + 0.5 )
905905 k = __symgen(:k)
906906 ej1 = subs2(e, xt, p. x, j1)
907- ej1 = subs(ej1, xt, :([$ (p. x)[$ k, $ j1] for $ k ∈ 1 : $ (p. dim_x)]))
907+ ej1 = subs(ej1, xt, :([$ (p. x)[$ k, $ j1] for $ k in 1 : ( $ (p. dim_x) )]))
908908 ej1 = subs2(ej1, ut, p. u, j1)
909- ej1 = subs(ej1, ut, :([$ (p. u)[$ k, $ j1] for $ k ∈ 1 : $ (p. dim_u)]))
909+ ej1 = subs(ej1, ut, :([$ (p. u)[$ k, $ j1] for $ k in 1 : ( $ (p. dim_u) )]))
910910 ej1 = subs(ej1, p. t, :($ (p. t0) + $ j1 * $ (p. dt)))
911911 ej2 = subs2(e, xt, p. x, j2)
912- ej2 = subs(ej2, xt, :([$ (p. x)[$ k, $ j2] for $ k ∈ 1 : $ (p. dim_x)]))
912+ ej2 = subs(ej2, xt, :([$ (p. x)[$ k, $ j2] for $ k in 1 : ( $ (p. dim_x) )]))
913913 ej2 = subs2(ej2, ut, p. u, j2)
914- ej2 = subs(ej2, ut, :([$ (p. u)[$ k, $ j2] for $ k ∈ 1 : $ (p. dim_u)]))
914+ ej2 = subs(ej2, ut, :([$ (p. u)[$ k, $ j2] for $ k in 1 : ( $ (p. dim_u) )]))
915915 ej2 = subs(ej2, p. t, :($ (p. t0) + $ j2 * $ (p. dt)))
916916 ej12 = subs2m(e, xt, p. x, j1)
917- ej12 = subs(ej12, xt, :([(($ (p. x)[$ k, $ j1] + $ (p. x)[$ k, $ j1 + 1 ]) / 2 ) for $ k ∈ 1 : $ (p. dim_x)]))
917+ ej12 = subs(
918+ ej12, xt, :([(($ (p. x)[$ k, $ j1] + $ (p. x)[$ k, $ j1 + 1 ]) / 2 ) for $ k in 1 : ($ (p. dim_x))
919+ ])
920+ )
918921 ej12 = subs2(ej12, ut, p. u, j1)
919- ej12 = subs(ej12, ut, :([$ (p. u)[$ k, $ j1] for $ k ∈ 1 : $ (p. dim_u)]))
922+ ej12 = subs(ej12, ut, :([$ (p. u)[$ k, $ j1] for $ k in 1 : ( $ (p. dim_u) )]))
920923 ej12 = subs(ej12, p. t, :($ (p. t0) + $ j12 * $ (p. dt)))
921924 dxij = :($ (p. x)[$ i, $ j2] - $ (p. x)[$ i, $ j1])
922925 code = quote
923926 if scheme == :euler
924- $ pref. constraint($ p_ocp, $ dxij - $ (p. dt) * $ ej1 for $ j1 in 0 : grid_size- 1 )
927+ $ pref. constraint($ p_ocp, $ dxij - $ (p. dt) * $ ej1 for $ j1 in 0 : ( grid_size - 1 ) )
925928 elseif scheme ∈ (:euler_implicit, :euler_b) # euler_b is deprecated
926- $ pref. constraint($ p_ocp, $ dxij - $ (p. dt) * $ ej2 for $ j1 in 0 : grid_size- 1 )
929+ $ pref. constraint($ p_ocp, $ dxij - $ (p. dt) * $ ej2 for $ j1 in 0 : ( grid_size - 1 ) )
927930 elseif scheme == :midpoint
928- $ pref. constraint($ p_ocp, $ dxij - $ (p. dt) * $ ej12 for $ j1 in 0 : grid_size- 1 )
931+ $ pref. constraint($ p_ocp, $ dxij - $ (p. dt) * $ ej12 for $ j1 in 0 : ( grid_size - 1 ) )
929932 elseif scheme ∈ (:trapeze, :trapezoidal) # trapezoidal is deprecated
930933 $ pref. constraint(
931- $ p_ocp, $ dxij - $ (p. dt) * ($ ej1 + $ ej2) / 2 for $ j1 in 0 : grid_size- 1
934+ $ p_ocp, $ dxij - $ (p. dt) * ($ ej1 + $ ej2) / 2 for $ j1 in 0 : ( grid_size - 1 )
932935 )
933936 else
934937 throw(
@@ -981,25 +984,28 @@ function p_lagrange_exa!(p, p_ocp, e, type)
981984 j12 = :($ j1 + 0.5 )
982985 k = __symgen(:k)
983986 ej1 = subs2(e, xt, p. x, j1)
984- ej1 = subs(ej1, xt, :([$ (p. x)[$ k, $ j1] for $ k ∈ 1 : $ (p. dim_x)]))
987+ ej1 = subs(ej1, xt, :([$ (p. x)[$ k, $ j1] for $ k in 1 : ( $ (p. dim_x) )]))
985988 ej1 = subs2(ej1, ut, p. u, j1)
986- ej1 = subs(ej1, ut, :([$ (p. u)[$ k, $ j1] for $ k ∈ 1 : $ (p. dim_u)]))
989+ ej1 = subs(ej1, ut, :([$ (p. u)[$ k, $ j1] for $ k in 1 : ( $ (p. dim_u) )]))
987990 ej1 = subs(ej1, p. t, :($ (p. t0) + $ j1 * $ (p. dt)))
988991 ej12 = subs2m(e, xt, p. x, j1)
989- ej12 = subs(ej12, xt, :([(($ (p. x)[$ k, $ j1] + $ (p. x)[$ k, $ j1 + 1 ]) / 2 ) for $ k ∈ 1 : $ (p. dim_x)]))
992+ ej12 = subs(
993+ ej12, xt, :([(($ (p. x)[$ k, $ j1] + $ (p. x)[$ k, $ j1 + 1 ]) / 2 ) for $ k in 1 : ($ (p. dim_x))
994+ ])
995+ )
990996 ej12 = subs2(ej12, ut, p. u, j1)
991- ej12 = subs(ej12, ut, :([$ (p. u)[$ k, $ j1] for $ k ∈ 1 : $ (p. dim_u)]))
997+ ej12 = subs(ej12, ut, :([$ (p. u)[$ k, $ j1] for $ k in 1 : ( $ (p. dim_u) )]))
992998 ej12 = subs(ej12, p. t, :($ (p. t0) + $ j12 * $ (p. dt)))
993999 code = quote
9941000 if scheme == :euler
995- $ pref. objective($ p_ocp, $ (p. dt) * $ ej1 for $ j1 in 0 : grid_size- 1 )
1001+ $ pref. objective($ p_ocp, $ (p. dt) * $ ej1 for $ j1 in 0 : ( grid_size - 1 ) )
9961002 elseif scheme ∈ (:euler_implicit, :euler_b) # euler_b is deprecated
9971003 $ pref. objective($ p_ocp, $ (p. dt) * $ ej1 for $ j1 in 1 : grid_size)
9981004 elseif scheme == :midpoint
999- $ pref. objective($ p_ocp, $ (p. dt) * $ ej12 for $ j1 in 0 : grid_size- 1 )
1005+ $ pref. objective($ p_ocp, $ (p. dt) * $ ej12 for $ j1 in 0 : ( grid_size - 1 ) )
10001006 elseif scheme ∈ (:trapeze, :trapezoidal) # trapezoidal is deprecated
10011007 $ pref. objective($ p_ocp, $ (p. dt) * $ ej1 / 2 for $ j1 in (0 , grid_size))
1002- $ pref. objective($ p_ocp, $ (p. dt) * $ ej1 for $ j1 in 1 : grid_size- 1 )
1008+ $ pref. objective($ p_ocp, $ (p. dt) * $ ej1 for $ j1 in 1 : ( grid_size - 1 ) )
10031009 else
10041010 throw(
10051011 " unknown numerical scheme: $scheme (possible choices are :euler, :euler_implicit, :midpoint, :trapeze)" ,
@@ -1049,9 +1055,9 @@ function p_mayer_exa!(p, p_ocp, e, type)
10491055 e = replace_call(e, p. x, p. t0, x0)
10501056 e = replace_call(e, p. x, p. tf, xf)
10511057 e = subs2(e, x0, p. x, 0 )
1052- e = subs(e, x0, :([$ (p. x)[$ k, 0 ] for $ k ∈ 1 : $ (p. dim_x)]))
1058+ e = subs(e, x0, :([$ (p. x)[$ k, 0 ] for $ k in 1 : ( $ (p. dim_x) )]))
10531059 e = subs2(e, xf, p. x, :grid_size)
1054- e = subs(e, xf, :([$ (p. x)[$ k, grid_size] for $ k ∈ 1 : $ (p. dim_x)]))
1060+ e = subs(e, xf, :([$ (p. x)[$ k, grid_size] for $ k in 1 : ( $ (p. dim_x) )]))
10551061 # now, x[i](t0) has been replaced by x[i, 0] and x[i](tf) by x[i, grid_size]
10561062 code = :($ pref. objective($ p_ocp, $ e))
10571063 return __wrap(code, p. lnum, p. line)
@@ -1369,7 +1375,9 @@ function def_exa(e; log=false)
13691375 $ (p. box_u) # lvar and uvar for control
13701376 $ (p. box_v) # lvar and uvar for variable (after x and u for compatibility with CTDirect)
13711377 $ p_ocp = $ pref. ExaCore(
1372- base_type; backend= backend, minimize= ($ p. criterion == :min) # not $(p.xxxx) as this info is known statically
1378+ base_type;
1379+ backend= backend,
1380+ minimize= ($ p. criterion == :min), # not $(p.xxxx) as this info is known statically
13731381 )
13741382 $ code
13751383 $ dyn_check
0 commit comments