[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Ф-ии Уолша отличаются только перестановкой от ф-й Адамара. Ну а последний можно реализовать довольно быстро.
Пример макроса:
.macro H4 ; 18 cycles
mov tmpl,@0
sub tmpl,@1
asr tmpl
mov tmph,@2
add tmph,@3
asr tmph
sub tmpl,tmph ; m=([0]-[1]-[2]-[3])/2
;
sub @0,tmpl ; [0]-=m
asr @0
add @1,tmpl ; [1]+=m
asr @1
add @2,tmpl ; [2]+=m
asr @2
add @3,tmpl ; [3]+=m
asr @3
;
eor @1,@2 ; Swap [1] [2]
eor @2,@1
eor @1,@2
.endmacro
вычисляет четыре бабочки и нормировку.
E-mail: info@telesys.ru