Greetings to all.
The multiplicative partition function is defined here at Wikipedia and was recently the subject of a discussion at Math Stackexchange.
I posted two solutions to the task of computing this function at the above page that use Maple code. One of them employs the Polya Enumeration Theorem and is of mostly theoretical interest as it cannot be used to effectively compute the function for n with many factors. I posted two additional implementations in order to remedy this defect, one of them in Maple and the other in Perl. I think the Maple implementation is easy enough to read not to require additional commentary. Note, however, that even though the Maple code and the Perl code implement the same algorithm (dynamic programming), the Maple version is dramatically slower than the Perl version and consumes a lot of memory. E.g. Maple takes 58 seconds for the value for 9! and Perl takes 1.5 seconds.
My question is, can someone explain this difference? Note that both are interpreted languages so there is no gain due to potential compilations.
Your commentary is appreciated.
This is with Maple 15 (X86 64 LINUX).