From: Robert D. <rob...@gm...> - 2018-06-06 15:16:44
|
On 2018-06-05, Michel Talon <ta...@lp...> wrote: > Indeed tracing translate shows that the above calls repeatedly translate > on f_rk_4. One gets things such as: > 1 Enter translate [translate(f_rk_4)] > 1 Exit translate [f_rk_4] > 1 Enter translate [translate(f_rk_4)] > 1 Exit translate [f_rk_4] > 1 Enter translate [translate(f_rk_4)] > 1 Exit translate [f_rk_4] > 1 Enter translate [translate(f_rk_4)] > 1 Exit translate [f_rk_4] > 1 Enter translate [translate(f_rk_4)] > 1 Exit translate [f_rk_4] > 1 Enter translate [translate(f_rk_4)] > ... > Which seems to point to an error in the invocation of translate. I don't think there's any programming error in drawdf. It's constructing a lot of little functions (all with the same name) and translating them. There's no reason to think it shouldn't work. > and more importantly the above example now runs to completion in around > 10s. So i think it is advisable to remove the call to translate > in make_f_rk_4 that is so that the last line is: > [dxdt_var,dydt_var]))))$ I agree that 'translate' has no substantial benefit in this case, but running out of memory after only 1000 calls suggests a bug in Maxima or in SBCL or at least a restrictive, possibly unstated assumption somewhere. I will investigate a little more. best Robert Dodier |