Если ваш numCoefs
где-то ближе или больше, чем log (длина), то IFFT, который по сложности вычислений равен O (n * log (n)), скорее всего будет быстрее, а также предварительно оптимизирован для тебя. Просто обнулите все ячейки, кроме тех коэффициентов, которые вы хотите сохранить, и убедитесь, что также сохраните их комплексные сопряженные с отрицательной частотой, если вы хотите получить реальный результат.
Если ваша numCoefs
мала по сравнению с log (length), тогда вы можете попробовать другие оптимизации, используя sinf()
и cosf()
, если вам не нужно больше 6 цифр точности, и предварительный расчет omega * i вне внутреннего цикла (хотя ваш компилятор должен делать это за вас, если у вас не задан низкий или низкий уровень оптимизации).