What's the connection between the two "Fast Walsh Transform"?
Suppose that $A$ and $B$ are vectors of length $n$, where $n$ is a power of 2. We index $A$ and $B$ using binary vectors of length $\log_2 n$, and define their convolution $C$ as
$$
C_i = \sum_{j \oplus k = i} A_j B_k.
$$

You can calculate the convolution of $A$ and $B$ using the following algorithm:


Compute the Walsh transform of $A$: $\alpha = H_n A$.
Compute the Walsh transform of $B$: $\beta = H_n B$.
Multiply $\alpha$ and $\beta$ pointwise: $\gamma(S) = \alpha(S)\beta(S)$ for all $S$.
Compute the inverse Walsh transform of $\gamma$: $C = H_n^{-1} \gamma$.


(Note that up to normalization, $H_n^{-1}$ and $H_n$ are the same matrix.)

The way we compute the convolution of $A$ and $B$ is using the Walsh transform and its inverse. The Walsh transform itself simply consists of multiplying a vector by the Walsh matrix, which can be done in $O(n\log n)$ time. Since the third step takes only $O(n)$ time, the entire algorithm runs in $O(n\log n)$.