Source (git repository)
You can get a clone of the git development repo with:
git clone git://github.com/wbhart/flint2.git flint2
If you want to browse the repository online, or fork it on GitHub, it can be accessed here:https://github.com/wbhart/flint2
The current development branch within the repository is "trunk".
...and come and join the growing community of volunteers at our Google development group:flint-devel Google Group
Our GitHub issue tracker: https://github.com/wbhart/flint2/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).
- Improve factorisation in Z[x]. Code is available in FLINT 1.x, but needs porting (along with some cleanup) to FLINT 2.x.
- Factorisation of large integers using the quadratic sieve. Code is available in FLINT 1.x, but needs porting to FLINT 2.x.
- Implement the ECM algorithm to factor large integers.
- Implement APR-CL primality proving.
- Improve FLINT's linear algebra performance by wrapping BLAS for matrix multiplication.
- Implement (and carefully profile) multithreaded versions of some core algorithms such as matrix multiplication and FFT polynomial multiplication.
- Implement a small primes FFT that takes advantage of vectorisation, to speed up integer and polynomial arithmetic.
- Implement subquadratic algorithms for rational number reconstruction, rational function reconstruction, and continued fraction expansion.
- Develop the linear algebra over Z, Q and Z[x] and implement linear algebra over Z/nZ for multiprecision n.
- Write a tuning framework to automatically select algorithm thresholds on different architectures.
- Work on assembly optimisations for specific architectures.
- Multivariate polynomials
- Sparse linear algebra
- Generics in C using function pointers
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 FLINT in any way, or even just want to request a feature, don't hesitate to leave a message on the mailing list!