let hadamard f=
let g=copy_vect f in
let rec hadam j n=
for k=0 to n-1 do
let aux=g.(j+k) in
g.(j+ k )<-aux + g.(j+k+n);
g.(j+k+n)<-aux - g.(j+k+n)
done;
if n>=2 then (
hadam j (n/2);
hadam (j+n) (n/2)
) in
hadam 0 (vect_length f / 2);
g;;
En notant
le nombre d'additions et de soustractions de
complexes effectuées lors de l'appel à hadam avec
, on a
, et
si
,
![]() |
|
, aussi vrai pour |