Welcome!

I am an instructor of applied and computational mathematics at Dartmouth College. My research focuses on applying symbolic and numeric computation to problems in combinatorics, number theory, and elsewhere. I’m always interested in finding new mathematical applications of computers.

My expository work has appeared in the American Mathematical Monthly (here and here), an article of mine on primality testing was written about in Pour la Science, and two of my articles were cited in Nature and the Proceedings of the National Academy of Sciences.

The rest of this site contains some information about me, my work, and a blog where I post ideas. Some of the ideas are even good!

My CV is here.

I was born in the year $\lfloor \pi^6 / \log \varphi \rfloor$, which makes me perfectly 1 + 2 + 4 + 7 + 14 years old.

Upcoming events

Update: MathFest was a lot of fun! Hopefully we’ll run similar sessions next year.

There are four combinatorics-adjacent sessions at the MAA’s 2026 MathFest in Boston:

Recent / current projects

Speeding up CRT

Most of the time you analyze an algorithm, you assume that arithmetic operations happen in constant time. This is true if the numbers you work with are bounded, but this is not true in many mathematical problems. You can avoid this by doing the computations modulo relatively prime numbers and reconstructing the result with the Chinese remainder theorem.

In some problems, the reduction / reconstruction steps of Chinese remaindering make up a significant part of the computational cost. You can reduce this cost by choosing “custom” moduli. I recently studied moduli of the form $2^n - 2^k + 1$.

For Chinese remaindering, the point is to get a set of pairwise relatively prime numbers. In other words, we want a clique in the coprimality graph on the numbers $2^n - 2^k + 1$, which has an edge between two numbers if they are coprime.

coprimality graphs

For technical reasons related to modular inverses, it turns out to be more interesting to replace $2$ with $x$ and study the trinomials $x^n - x^k + 1$. The relevant condition to ensure coprimality is that the resultant of two polynomials $x^n - x^k + 1$ is a power of 2. That leads to a “dyadically resolving” graph.

n = 100 trinomial graph

I’m interested in determining the clique numbers of these graphs and the graphs generated by other families. There are a lot of other open questions here! (paper) (conference talk) (extended abstract)

Balanced Matrices

How many 0-1 matrices are there of size $2n \times 2k$ with as many 0’s as 1’s in each row and column? This turns out to be hard to answer for anything other than $k = 1$, but for fixed $k$ the number always satisfies a “nice” recurrence. I showed that $a(n) = B(n, 3)$, the number of $2n \times 6$ such matrices, satisfies a very complicated recurrence:

balanced matrices recurrence

It seems very difficult to compute the recurrence for $B(n, 4)$ and higher, but I would like to try. (paper)

Comma sequences

The comma sequence is a funny integer sequence where the difference of consecutive terms equals the concatenation of the digits on either side of the comma separating them. This sequence has 2,137,453 terms, then terminates at 99999946. I proved that all comma sequences (with any initial conditions) terminate in bases 3 through 633. The big conjecture is that all comma sequences terminate. (paper)