# Looking for assistance with maintaining NormalForms.jl

**URL:** <https://discourse.julialang.org/t/looking-for-assistance-with-maintaining-normalforms-jl/105963>\
**Category:** Package Announcements\
**Tags:** linearalgebra, factorization, maintenance-request, matrix\
**Created:** [November 8, 2023, 5:17pm UTC](https://discourse.julialang.org/t/looking-for-assistance-with-maintaining-normalforms-jl/105963 "2023-11-08T17:17:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![brainandforce](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brainandforce/32/211054_2.png) [@brainandforce](https://discourse.julialang.org/u/brainandforce)\
**Post date:** [November 8, 2023, 5:17pm UTC](https://discourse.julialang.org/t/looking-for-assistance-with-maintaining-normalforms-jl/105963/1 "2023-11-08T17:17:59Z")

</div>

[NormalForms.jl](https://github.com/brainandforce/NormalForms.jl) is a package which provides the [Smith](https://en.wikipedia.org/wiki/Smith_normal_form) and [Hermite normal forms](https://en.wikipedia.org/wiki/Hermite_normal_form), integer matrix decompositions that are useful in my domain (chemistry - I developed it as a dependency of [Electrum.jl](https://github.com/brainandforce/Electrum.jl) because the Smith normal form is required for building a crystal supercells). This package combines the functionality of [HermiteNormalForm.jl](https://github.com/YingboMa/HermiteNormalForm.jl) (which much of the code was based on) and [SmithNormalForm.jl](https://github.com/wildart/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.

---

<div class="post-metadata">

**Author:** ![Devetak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/devetak/32/50611_2.png) [@Devetak](https://discourse.julialang.org/u/Devetak)\
**Post date:** [November 22, 2023, 6:42pm UTC](https://discourse.julialang.org/t/looking-for-assistance-with-maintaining-normalforms-jl/105963/2 "2023-11-22T18:42:03Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![brainandforce](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brainandforce/32/211054_2.png) [@brainandforce](https://discourse.julialang.org/u/brainandforce)\
**Post date:** [November 27, 2023, 1:17am UTC](https://discourse.julialang.org/t/looking-for-assistance-with-maintaining-normalforms-jl/105963/3 "2023-11-27T01:17:13Z")

</div>

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.
