Ryan Yates

Graduate Student
Computer Science Department, University of Rochester
United States

There is much to discover in the elegance of well known work. By rephrasing great works in new domains, I hope to reveal the beauty of the original anew. As a functional programmer I'm drawn to a mathematical understanding of computation. Instead of being bound by imperative steps and procedures, creation and destruction, we are freed by abstraction and reasoning, values and types. With visual art I seek a similar liberation, dancing on the edge of a dictatorial diagram, but abstracting to allow space to reason.

Ink on paper

This work exhibits the essence of an elegant algorithm, the Burrows–Wheeler transform (BWT). Used as a step in compression of redundant data, the transform takes an input (middle row) and chooses a permutation that often groups like symbols together. The output is seen at the end of the first row. Fully sorting the input (seen as the first column of the second block) reveals more redundancy, but loses information. The magic of BWT is that the chosen permutation can be reversed by sorting the output, remembering the old positions, then recursively indexing into this table. This is seen from right to left on the second row. The image was created with the Diagrams embedded domain specific language in Haskell (many thanks, Brent Yorgey!).