Software development

I am aiming to upload various bits of code to this section:

flint2

A large part of my earlier independent coding projects including the module fmpq_poly and fmpz_poly_q have been integrated into the C library FLINT for computational number theory.

fmpz_poly_q

A FLINT-based implementation of the rational function field over the rational numbers.

This module provides a fast implementation of the rational function field, taking the speed largely from the underlying library for integer polynomials FLINT and trying to add as little overhead to maintaining quotients of two integer polynomials as possible.

This code is based on FLINT 1.y.z. However, it will not require much effort to port it to FLINT 2.

Links:

fmpq_poly

A FLINT-based implementation of the rational polynomial ring.

This module provides a fast implementation of the rational polynomial ring, taking the speed largely from the underlying library for integer polynomials FLINT and trying to add as little overhead to maintaining quotients of integer polynomials and integer denominators as possible.

This code has been integrated into the computer algebra system SAGE. Full details of this are available on the trac system here.

This code is based on FLINT 1.y.z. A module very similar to this one will be part of FLINT 2.

Links:

MONF, MONV

Slim implementation of monomials as a 64-bit primitive type.

Remarks:

There are two possible design choices. One is to assume the number of variables is fixed at compile-time. This allows for the largest number of bits per exponents and is implemented in the MONF part. The other one is to simply fix a number of bits per exponent, say eight, and then allow a variable number of variables. This is implemented in the MONV part.

These implementations aren't complete yet. I have mostly only used the latter as part of another project and thus haven't spent much time testing the former. At this moment, these should merely be considered as starting points for further development rather than fully useable components.

Links (MONF):

Links (MONV):


10 October 2011