In computational mathematics, the Hadamard ordered fast Walsh–Hadamard transform (FWHTh) is an efficient algorithm to compute the Walsh–Hadamard transform (WHT). A naive implementation of the WHT of order n = 2 m {\displaystyle n=2^{m}} would have a computational complexity of O( n 2 {\displaystyle n^{2}} ). The FWHTh requires only n log n {\displaystyle n\log n} additions or subtractions.
The FWHTh is a divide-and-conquer algorithm that recursively breaks down a WHT of size n {\displaystyle n} into two smaller WHTs of size n / 2 {\displaystyle n/2} . This implementation follows the recursive definition of the 2 m × 2 m {\displaystyle 2^{m}\times 2^{m}} Hadamard matrix H m {\displaystyle H_{m}} :
The 1 / 2 {\displaystyle 1/{\sqrt {2}}} normalization factors for each stage may be grouped together or even omitted.
The sequency-ordered, also known as Walsh-ordered, fast Walsh–Hadamard transform, FWHTw, is obtained by computing the FWHTh as above, and then rearranging the outputs.
A simple fast nonrecursive implementation of the Walsh–Hadamard transform follows from decomposition of the Hadamard transform matrix as H m = A m {\displaystyle H_{m}=A^{m}} , where A is m-th root of H m {\displaystyle H_{m}} .