Ответ: (+)
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 14 апреля 2003 г. 14:19
В ответ на: Хотя чего-то я сегодня торможу :) Тем не менее, от столбика это ничем не отличается. отправлено Oldring 14 апреля 2003 г. 13:03

Перемножение полиномов - это вот что - в одном из частных случаев - в нашем: (K-разряднось умножителя), M-разрядность числа на входе.
N - Ближайшее целое, большее или равное M/K - это количество разбиений входных чисел на битовые поля.


a(n)=b(n)=[2^0,2^K,2^(2*K),..., 2*((N-1)*K)]
x(n) и y(n) - это разбитые по битовым полям x и y

для 8-ми разрядного умножителя например

a(n)=b(n)=[1,256,65536,...]
а x(n) и y(n) n-1-ые байты входных чисел.

Вот так выглядит произведение:

X*Y=(a1*x1+a2*x2+...aN*xN)*(b1*y1+b2*y2+...b3*y3)

Если раскрыть скобки - то имеем

+- -+
N | N |
x*y = sum | ai*xi* sum bj*yj |
i=1 | j=1 |
+- -+

Это самая что ни на есть свертка. Если ее преобразовать дальше:

N N
x*y = sum sum (ai*bj)* (xi*yj)
i=1 j=1

То получается как раз быстрая методика умножения M-разрядных чисел при помощи K-разрядного умножителя. Коэффициенты (ai*bj) будут всегда попадать на границу байтов (при 8-ми разрядном умножителе).
Может быть, это можно и как-то столбиком представить... Но я не пытался. Мне так проще и понятнее.

Составить ответ ||| Конференция ||| Архив

Ответы



Перейти к списку ответов ||| Конференция ||| Архив ||| Главная страница ||| Содержание

E-mail: info@telesys.ru