=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/src/taka_runge_kutta.rr,v retrieving revision 1.21 retrieving revision 1.22 diff -u -p -r1.21 -r1.22 --- OpenXM/src/asir-contrib/packages/src/taka_runge_kutta.rr 2013/12/15 08:27:18 1.21 +++ OpenXM/src/asir-contrib/packages/src/taka_runge_kutta.rr 2013/12/15 10:52:36 1.22 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/asir-contrib/packages/src/taka_runge_kutta.rr,v 1.20 2013/12/14 04:38:58 takayama Exp $ */ +/* $OpenXM: OpenXM/src/asir-contrib/packages/src/taka_runge_kutta.rr,v 1.21 2013/12/15 08:27:18 takayama Exp $ */ /* From misc/200205/runge-kutta.rr */ /* They have not yet been registered in names.rr */ @@ -482,6 +482,13 @@ def taka_runge_kutta_4a_linear(FF,X0,Y,S0,Ys,T0,H) { if (T0 < S0) { /* opposite direction */ if (H<0) H=-H; + Opt = []; + if (getopt(onestep) >= 0) Opt=[["onestep",getopt(onestep)]]; + if (getopt(inhom) >= 0) Inhom = getopt(inhom); + if (Inhom != 0) { + Inhom = map(taka_minus,base_replace(Inhom,[[X0,-X0]])); + Opt = append(Opt,[["inhom",Inhom]]); + } return taka_runge_kutta_reverse( taka_runge_kutta_4a_linear(map(taka_minus,base_replace(FF,[[X0,-X0]])),X0,Y,-S0,Ys,-T0,H | option_list=Opt)); }