LINUX.ORG.RU

Свёртка целочисленных массивов в С


0

0

Есть два массива одинаковых (16 бит знаковое) один с данными, второй с
некоторой функцией, равной нулю почти всюду, кроме небольшого кусочка.
Надо сделать их свёртку. Есть ли какие-то стандартные библиотеки,
чтоб быстро это делали? Как там с разного рода overflow/underflow?

ЗЫ Сейчас пока сделал через FFT с плавающей точеой, но скорость
оставляет желать....

Ростислав

anonymous

>> 16 бит знаковое

Это целое? Если да - свёртка в целых числах реализуется как два байта об асфальт, библиотека ни к чему. Underflow не грозит ни с какого боку, на overflow легко рассчитать промежуточные соответствующей разрядности.

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

Так и нужно FFT целочисленное сделать, взять например из

http://astronomy.swin.edu.au/~pbourke/analysis/dft/

и заменить все double на signed short int, только (!) нужно разобраться с нормировкой, т.е. например синус будет изменяться при такой нормировке не в пределах (-1..+1) а (-0x7FFF..+0x7FFF).

(вспомнил анекдот про вояк, в котором значение синуса в военное время может достигать четырёх... Это примерно тот случай :D)

bugmaker ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.