A Note on the Space Complexity of Fast D-Finite Function Evaluation
Supplementary material to the article by Marc Mezzarobba. CASC 2012.
Experimental branch of NumGfun featuring a pure Maple implementation of the algorithm described the paper
We compare the performance of the above code (in blue) with those of the NumGfun mainline (in black), which uses regular binary splitting without truncations. The graphs shown below correspond to the following test case, with 1 ≤ k ≤ 100:
diffeq := {
(13/30+8/15*z+7/30*z^2)*y(z)
+(-9/20+29/30*z-1/12*z^2)*diff(y(z),z)
+(-43/60+49/60*z+11/30*z^2)*diff(y(z),z,z)
+(-7/12+17/30*z-3/5*z^2)*diff(y(z),z,z,z),
y(0)=0, D(y)(0)=7/30, D(D(y))(0)=-43/60};
evaldiffeq(diffeq, y(z), 1/5, k*1000);
The measurements were done using CodeTools[Usage] under Maple 15.
The provisional conclusion is that a lower-level implementation (with explicit memory management in the critical steps) seems to be necessary to see the benefits of the algorithm.
Values (bytes):
Ratios:
Values (bytes):
Ratios:
Values (seconds):
Ratios: