Early in Ogata, I found examples of partial fraction decomposition and couldn't find a good Julia project that has this implemented. As a short description of what partial fraction decomposition is, if you have a fraction of two functions, like f(x)/g(x), you can decompose this into a series of smaller, easier to manage functions. For example, from the Wikipedia entry on partial fraction decomposition, we can take:
And convert it to:
The final equation is easier to work with because, even though it's now in more pieces, each piece is way more manageable.
The problem arose when I wanted to find a way to do this in Julia. There seemed to be a way to do this using symbolic variables in the SymPy package, but I wanted something more natively Julia in case this did become a useful tool in the ControlSystems package. That led me, eventually to the RationalFunctions package, which is an extension of the Polynomials package that ControlSystems uses. After some coding, debugging, and back and forth with the package owners, I had my first pull request accepted into an open source project! For those of you wondering, you can find it here.
Overall, I'm satisfied with the work for now. It's not perfect; there's still some issues around numerical stability that already existed in the Polynomials package that I'd like to address in the future, and I'm not convinced that my approach for solving the problem is the most robust either. Still, it's functionality where it didn't really exist before, so I'll still call it movement in the right direction.