Я посмотрел под отладчиком. Выходной массив создаётся перед вычислением функции, поэтому, если функция по какой-то причине его не заполнила и завершила работу, то все значения остаются нулевыми. В нашем случае функция не доходит даже до второй итерации и почему-то завершает работу. С чем это связано пока не могу сказать. Более простые примеры работают.