Linear algebra algorithms for divisors on an algebraic curve
Abstract
We use an embedding of the symmetric dth power of any algebraic curve C of genus g into a Grassmannian space to give algorithms for working with divisors on C, using only linear algebra in vector spaces of dimension O(g), and matrices of size O(g^2)\times O(g). When the base field k is finite, or if C has a rational point over k, these give algorithms for working on the Jacobian of C that require O(g^4) field operations, arising from the Gaussian elimination. Our point of view is strongly geometric, and our representation of points on the Jacobian is fairly simple to work with; in particular, none of our algorithms involves arithmetic with polynomials. We note that our algorithms have the same asymptotic complexity for general curves as the more algebraic algorithms in Hess' 1999 Ph.D. thesis, which works with function fields as extensions of k[x]. However, for special classes of curves, Hess' algorithms are asymptotically more efficient than ours, generalizing other known efficient algorithms for special classes of curves, such as hyperelliptic curves (Cantor), superelliptic curves (Galbraith, Paulus, and Smart), and C_{ab} curves (Harasawa and Suzuki); in all those cases, one can attain a complexity of O(g^2).