Interests


  • Mathematics

    Topology, Geometry, Homological algebra

  • Applied Mathematics

    Numerical analysis, Applied algebra, Computational geometry

  • Algorithms & Data Science

    Topological data analysis, Machine learning, Complexity Theory

  • Current Projects


    Exact and Stable Computation of Persistent Relative Homology

    Working under Drs. Lori Ziegelmeier and Gregory Henselman-Petrusek (PNNL), we have developed a novel algorithm for the direct computation of persistent relative homology. Utilizing a recently presented matrix factorization scheme, our method can compute the barcode decomposition and persistence module of a pair of topological spaces equipped with arbitrary filtrations. The only restriction on these filtrations is that the inclusion of spaces is preserved at each level. To our knowledge, there are no existing algorithms to perform this calculation. Further, existing methods for computing persistent relative homology place heavy restrictions on the filtrations, and are indirect in that they only provide a persistence diagram summary. I am presently the lead author on a manuscript in preparation which proves the correctness and stability of our method. As an undergradute, I completed an honors thesis related to this work, which can be viewed at the links below.

    Persistent Relative Homology for Data Science

    Related to the project above, I am currently working as the sole author of an open-source software module to implement a flexible method for persistent relative homology with an emphasis on applications in TDA and data science. The implementation is written in low-level Rust for performance purposes, and is complete with Python bindings in the Open Applied Topology (OAT) project. The code utilizes modern data structures for matrix algebra which not only compress sparse matrices, but lazily generate their rows and columns on an as-needed basis, allowing this algorithm to circumvent major memory use choke-points that have previously plagued algorithms in applied topology. The images below give a few examples of our algorithm in action!

    A simplicical complex with disjoint subcomplexes (red, green, blue) and a relative cycle representative (orange). Its persistent homology barcode ...  ... and its persistent relative homology barcode.
    phantom

    phantom text here

    Undergraduate Capstones


    --

    Evolving Mobile Agents in Conway’s Game of Life

    This project was completed as my computer science capstone during the Fall of 2023, when I took an introductory course in Artificial Intelligence with my academic advisor Susan Fox. Using the popular cellular automaton Conway's Game of Life, we investigated to capacity for agents (or cell tilings) within the game to exhibit emergent or intelligent behavior. The explicit goal was to write a genetic algorithm which, given a randomly generated popualtion of cell tilings, could be used to evolve subsequent generations of cell tilings which are capable of directed growth and movement. Our genetic algorithm is implemented in Python and required the NumPy library and elementary linear algebra in order to assess the behavior and fitness of the population. The project also includes a front-end animation built with Matplotlib. Check out the links below to see the project in more detail.

    Numerical Techniques for the Wave Equation

    This project was completed as my mathematics capstone during the Fall of 2023, when I took a math modeling course with Will Mitchell. This was primarily an investigation of numerical techniques for approximating solutions to partial differential equations, and in particular finite differences and the Fourier spectral method. I studied each of these techniques using the wave equation, and implemented both. Check out the links below to see my work in more detail.