Another week of Coding Period has concluded.

Starting this week, I worked on PR #14765 for implementing Fast Walsh Hadamard Transform (fwht).

As pointed out by Kalevi, symbolic coefficients could be supported by this transform as the general Kronecker matrix only contains +/-1, which means it essentialy requires only addition or subtraction to perform the transformation. Also, the PR review helped fix a minor issue related to string concatenation.

Usage for fwht looks like:

>>> from sympy import fwht, ifwht, symbols
>>> fwht([4, 2, 2, 0, 0, 2, -2, 0])
[8, 0, 8, 0, 8, 8, 0, 0]
>>> ifwht(_)
[4, 2, 2, 0, 0, 2, -2, 0]

>>> a, b, c, d = symbols('a b c d')
>>> fwht([a, b, c, d])
[a + b + c + d, a - b + c - d, a + b - c - d, a - b - c + d]
>>> ifwht(_)
[a, b, c, d]

Documentation, doctests, and unit tests are also added for this transform.

Looking forward to next week, where I will be implementing XOR convolution using fwht.

Published: 09 June 2018