La trasformata di Walsh-Hadamard (WHT) è una generalizzazione della trasformata di Fourier ed è una trasformazione ortogonale su un vettore di numeri reali o complessi di dimensione . La trasformazione è popolare nel calcolo quantistico, ma è stata recentemente studiata come una sorta di precondizionatore per le proiezioni casuali di vettori ad alta dimensione da utilizzare nella dimostrazione del Lemma di Johnson-Lindenstrauss. La sua caratteristica principale è che sebbene sia una matrice quadrata d × d , può essere applicata a un vettore nel tempo O ( d log d ) (piuttosto che d 2 ) con un metodo simile a FFT.
Supponiamo che il vettore di input sia scarso : ha solo poche voci diverse da zero (diciamo ). Esiste un modo per calcolare il WHT nel tempo f ( r , d ) in modo tale che f ( d , d ) = O ( d log d ) e f ( r , d ) = o ( d log d ) per r = o ( d ) ?
Nota: questi requisiti sono semplicemente un modo per formalizzare l'idea che mi piacerebbe qualcosa che corre più veloce di per la piccola r .