I need to compile a function to render it as fast as possible because it is used recurrently. Inside this function I use IntegerPartitions. However, it seems impossible to correctly compile code using IntegerPartitions. For instance, for the following test code
F = Compile[{{k, _Integer}, {d, _Integer}, {s, _Integer}}, Block[{ls},
ls = IntegerPartitions[s, {k}, Range[d]];
Return[ls]],
CompilationTarget -> "C"]
the answer is "Compiled expression {{3,1,1},{2,2,1}} should be a rank 1 tensor of machine-size integers" when F[3,7,5] is executed, whether the CompilationTarget is C or WVM. However, with ls={{3,1,1},{2,2,1}} it is executed flawlessly. Has anyone an idea what is the reason for this oddity?