Nemo/Hecke: Computer Algebra and Number Theory Packages for the Julia Programming Language

We introduce two new packages, Nemo and Hecke, written in the Julia programming language for computer algebra and number theory. We demonstrate that high performance generic algorithms can be implemented in Julia, without the need to resort to a low-level C implementation. For specialised algorithms, we use Julia's efficient native C interface to wrap existing C/C++ libraries such as Flint, Arb, Antic and Singular. We give examples of how to use Hecke and Nemo and discuss some algorithms that we have implemented to provide high performance basic arithmetic.

[1]  Michael Pohst,et al.  Algorithmic algebraic number theory , 1989, Encyclopedia of mathematics and its applications.

[2]  Alan Edelman,et al.  Julia: A Fresh Approach to Numerical Computing , 2014, SIAM Rev..

[3]  Claus Fieker,et al.  Subexponential class group and unit group computation in large degree number fields , 2014, LMS J. Comput. Math..

[4]  Mark Giesbrecht,et al.  Computing Rational Forms of Integer Matrices , 2002, J. Symb. Comput..

[5]  Ė. B. Vinberg,et al.  A course in algebra , 2003 .

[6]  Michael B. Monagan,et al.  Parallel sparse polynomial multiplication using heaps , 2009, ISSAC '09.

[7]  Hans Schönemann,et al.  SINGULAR: a computer algebra system for polynomial computations , 2001, ACCA.

[8]  Michael Soltys BERKOWITZ'S ALGORITHM AND CLOW SEQUENCES ∗ , 2002 .

[9]  Karim Belabas,et al.  Topics in computational algebraic number theory , 2004 .

[10]  A. Melman Numerical solution of a secular equation , 1995 .

[11]  Michael B. Monagan,et al.  Sparse Polynomial Powering Using Heaps , 2012, CASC.

[12]  Michael B. Monagan,et al.  Sparse polynomial division using a heap , 2011, J. Symb. Comput..

[13]  Karim Belabas,et al.  Computing the residue of the Dedekind zeta function , 2013, Math. Comput..

[14]  Henri Cohen,et al.  A course in computational algebraic number theory , 1993, Graduate texts in mathematics.

[15]  Fredrik Johansson,et al.  Arb: a C library for ball arithmetic , 2014, ACCA.

[16]  William C. Brown Null ideals and spanning ranks of matrices , 1998 .

[17]  Torbjrn Granlund,et al.  GNU MP 6.0 Multiple Precision Arithmetic Library , 2015 .

[18]  A. Danilevskiy ON THE NUMERICAL SOLUTION OF THE SECULAR EQUATION , 1961 .

[19]  Joachim von zur Gathen,et al.  Modern Computer Algebra , 1998 .

[20]  Allan K. Steel,et al.  Algorithm for the Computation of Canonical Forms of Matrices over Fields , 1997, J. Symb. Comput..

[21]  W. Bosma,et al.  HANDBOOK OF MAGMA FUNCTIONS , 2011 .

[22]  Vincent Lefèvre,et al.  MPFR: A multiple-precision binary floating-point library with correct rounding , 2007, TOMS.