utros
21.12.2011 18:09 pedobook
Сейчас поленился вспоминать БПФ и изобрёл его с нуля. С этим пришло понимание двух вещей:
1. Как и почему работает БПФ
2. Я пиздец велосипедист
БПФ для лохов, посоны считают FFT.
считают FFT в ipp.
FFT для трусов. Только ручная оптимизация, только хардкор!
Не смеши мои подковы. Ты не соптимизируешь быстрее интеловской сишной IPPшечки, или поCUDAхтай на чем-нить, там вроде тоже ок считается.
У меня неебическое выражение, которое я соптимизировал на листочке, сэкономив больше 10 умножений.
А кудахтать не выйдет: это будет работать на неопределённом железе.
Прекрасно. Из 49 умножений и 6 сложений вышло 21 умножение и 6 сложений.
Тесты погоняй, кхм.
Чего с чем?
своей реализации с IPP :)
Да, еще есть fftw с оптимизатором на кэмле. Работает еще быстрее, но долгая предварительная подготовка. Олсо, я собаку на DSP съел, профиль работы.
Насколько ты хорошо знаком с ИПП? Оно соптимизирует что-нибудь типа
p x1 x3 x4 x5 x6 x7
+ p x2 x3 x4 x5 x6 x7
+ p x1 x2 x4 x5 x6 x7
+ p x1 x2 x3 x5 x6 x7
+ p x1 x2 x3 x4 x6 x7
+ p x1 x2 x3 x4 x5 x7
+ p x1 x2 x3 x4 x5 x6
— q x1 x2 x3 x4 x5 x6 x7
= 0
(из этого выражается x7, мне влом переписывать).
Нет, оно берет сугубо массив дискретных отсчетов и выдает массив значений для каждого ЭЧК. Оптимизация Ad-Hoc уравнений — это просто узкий случай, хм.
Вот я и думаю, что ручная оптимизация тут больше подойдёт.
Я уже не очень помню быстрые алгоритмы и преобразования, а на практике так вообще не реализовывал, так что любые советы с указанием на всякие ништяки (либы и мануалы), которые мне в этом помогут, приветствуются.
И да, речь о числах порядка 2^60 — 2^100.