Looking for assistance with maintaining NormalForms.jl

NormalForms.jl is a package which provides the Smith and Hermite normal forms, integer matrix decompositions that are useful in my domain (chemistry - I developed it as a dependency of Electrum.jl because the Smith normal form is required for building a crystal supercells). This package combines the functionality of HermiteNormalForm.jl (which much of the code was based on) and SmithNormalForm.jl into a single package which integrates with the LinearAlgebra.Factorization type and supports types provided by StaticArrays. Internally, I’ve also organized a lot of the code for clarity, in the hopes that others who want to understand the algorithm can do so easily (and for simplifying debugging!).

I am a chemist, and I don’t have a strong background in linear algebra, so I’m probably not the best person to maintain the package. I’d love someone with a bit more knowledge on that front to join in and assist with maintenance. Building this package has been a fun journey, but since others are starting to depend on it, I’d like to ensure others don’t have to deal with too many outstanding issues.

7 Likes

hello. I have a masters in Applied Maths (going for a PhD in ML next year). I have some reasonable experience (some projects) in Julia, but not huge.

Would be happy to help you with NormalForms! Maybe I could take a look on #16? I am not sure what you wanted to do? Just output a warning or convert to a common denominator, take it out so the matrix is Int, and then do other operation.

Let me know if you are still looking for help.

I’m not necessarily looking for any intensive feature addition (though you are welcome to add new features). I’m primarily interested in having someone join in to assist in case there are issues that arise for other dependents that I can’t fix in a timely manner.