# An algorithm for computing an integral basis in an algebraic function field

This paper contains a new method for computing an
integral basis for an algebraic function field using
Puiseux expansions. The algorithm is very efficient
because of the following two ingredients:
1) A good bound (in practice: sharp in most cases) for
the number of terms that one needs to compute for
the Puiseux expansions.
2) A precise bound for the denominators in the integral
basis. A consequence of this bound is that in the
intermediate computations the expressions can be
truncated at exactly the right spot, every term that
does not affect the final result can be skipped. This
way the expressions will be small during the computation
and hence the algorithm will be fast.
An integral basis is very useful for computations with
algebraic curves. It can be used for L(D) computations
(instead of using adjoint curves). It contains information
about the singularities in a form that is very suitable
for computer computations which leads to good
efficiency, for example, my parametrization algorithm in
Maple is often very efficient.
The algorithm is available in Maple V release 5. The
implementation contains some special purpose code for
the cases where the discriminant has a factor of multiplicity
2 or 3 (this is not explained in the paper). The Puiseux code,
on which the integral basis algorithm is based, also contains
improvements over the traditional method, such as a different
Newton polygon that can be computed more quickly, and
sharp bounds on which terms in the intermediate expressions
are necessary and which are not (and so avoiding computing
unnecessary terms, which greatly reduces expression swell).
These improvements can be found in my implementation
but they're not written down.
For the implementation see the files puiseux and
integral_basis in
the algcurves
package.
Download this paper postscript file
or pdf format.