Menu Close

Development

Source (git repository)

You can get a clone of the git development repo with:

git clone https://github.com/Nemocas/Nemo.jl.git

If you want to browse the repository online, or fork it on GitHub, it can be accessed here:

https://github.com/Nemocas/Nemo.jl

The current development branch within the repository is “master”.

Work on generic algorithms and structures is done within the AbstractAlgebra.jl project, which Nemo uses for all its generic functionality.

git clone https://github.com/Nemocas/AbstractAlgebra.jl.git

If you want to browse the repository online, or fork it on GitHub, it can be accessed here:

https://github.com/Nemocas/AbstractAlgebra.jl

Nemocas is a community organization on GitHub managed by four individuals who can accept pull requests. To contribute to Nemo, simply issue a pull request against the GitHub repository above or open an issue on the GitHub issue tracker.

Mailing list

You are welcome to come and join the community of volunteers at our Google development group:

nemo-devel Google Group

Development ideas

Our GitHub issue tracker: https://github.com/wbhart/nemo.jl/issues

Here is a list of ideas for development projects that would be highly valuable to a large number of users. Some of these could make good student projects (or in some cases, research projects).

  • Implement multivariate rational functions
  • Implement generic Puiseux series with automatic inflation/deflation
  • Add the capped absolute model of power series for more modules
  • Implement versions of Laurent series that use Flint
  • Implement generic Hermite Normal Form and Popov form
  • Interface with Gap or wrap libgap
  • Implement symbolic expressions
  • Implement sparse matrix algorithms
  • Implement fast representation for small finite fields (possibly in Flint)
  • Wrap Singular for Groebner basis, ideal and integral kernel operations
  • Implement factoring of multivariate polynomials
  • Implement charpoly and minpoly for number fields (possibly in Antic)
  • Implement modular gcd algorithm for multivariate polynomials over the integers
  • Implement modular algorithms for number fields (possibly in Antic)
  • Implement generic Jordan canonical form and rational canonical form
  • Fast p-adic nullspace kernel vector lifting (possibly in Flint)
  • Implement generic Smith normal form over a PID
  • Implement generic QR factorisation
  • BKZ reduction (possibly in Flint)
  • Implement Howell normal form
  • Wrap Flint Zech logarithm modules
  • Wrap Flint modules for matrices over finite fields and QQ
  • Faster immutable type for Z/nZ for small n
  • Implement Frobenius normal form
  • Implement fallback generic Sylvester matrix resultant
  • Implement generic O(n^3) minpoly.

A longer list of (mostly minor) issues to work on can be found in the todo.txt file. If you are interested in contributing to Nemo in any way, or even just want to request a feature, don’t hesitate to leave a message on the mailing list!