Chris Langfield

Welcome to my github homepage! Some recent posts are below:

Graph Signal Processing and Lattice Fourier Transforms

In this post I compare the graph Fourier transform with the standard discrete Fourier transform in 1D and on square and hexagonal 2D grids. Primarily I wanted to explore some of the theoretical and computational building blocks for processing 2D images (square or hexagonal) using Graph Signal Processing, a relatively recent field in digital sign... Read more

Convolution with hexagonal kernels in `hexfft`

In the last post I mentioned the HexagDLy Python package, which implements convolution kernels in natively hexagonal coordinates for use in CNNs (based on PyTorch). The codebase comes with a nifty way of generating examples, with pre-set patterns such as “snowflake” and “double_hexagon”. I decided to test out frequency space convolutions in hex... Read more

Implementing hexagonal FFTs for fun and profit

*(profits as yet unrealized) This post will discuss the how and a little bit of the why for my latest project, a Python package called hexfft, which implements two types of FFT for data sampled on a hexagonal 2D grid. Geometry of regular hexagonal sampling There are several interesting advantages... Read more

A 'wedding cake' probability distribution -- Part 2

In part 1 we explored the discrete probability distribution generated by a process of “double selection” from a set of integers. First we pick \(X_0 \sim \text{unif}(1\dots k)\), and then we pick \(X_1 \sim \text{unif}(1\dots X_0)\). The probability distribution of \(X_1\) is \[Pr(X_1 = s) = \frac{1}{k} (H_k - H_{s-1})\] We proposed a sequence... Read more

A 'wedding cake' probability distribution -- Part 1

This is a writeup of some progress on a problem I first formulated a while back. The original inspiration for the problem was noise generation. Practitioners of procedural generation think a lot about noise, specifically sampling from stochastic processes to create realistic looking heightmaps, textures, and other content. (To skip to the mathe... Read more

This site was built using the wonderful Lagrange theme by Paul Le