>
|
|
| (1) |
Consider a problem with data length of 1 million. Storage of the complex data alone requires 16 MB. Use of the minstorage algorithm requires virtually no additional data be allocated (the largest prime factor is 5), while in this case use of the (default) mintime algorithm requires allocation of an additional 16 MB.
Note: Use ArrayTools and evalhf to more rapidly construct the input dataset (which is for ).
>
|
|
>
|
|
>
|
fill := proc(N,Za) local i;
for i to N do
Za[2*i-1] := sqrt(i/N);
Za[2*i] := sin(10*i/N);
end do:
end proc:
|
>
|
|
And at this point, Maple's memory usage is at ~ 17MB - the size of the data Array.
The transform with 'minstorage':
>
|
|
and Maple's memory usage has stayed roughly constant.
The default 'mintime' transform (after resetting Z),
>
|
|
>
|
|
which for this problem takes noticeably less time, but increases Maple's memory usage to ~ 32 MB (double).