skip to main content
10.1145/3087604.3087611acmotherconferencesArticle/Chapter ViewAbstractPublication PagesissacConference Proceedingsconference-collections
research-article

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

Published:23 July 2017Publication History

ABSTRACT

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.

References

  1. E. Bach, Improved approximations for Euler products, Number theory (Halifax, NS, 1994), vol. 15, CMS Conference Proceedings, pages 13--28. Amer. Math. Soc., Providence, RI, 1995.Google ScholarGoogle Scholar
  2. K. Belabas, Topics in computational algebraic number theory, J. Théor. Nombres Bordeaux, 16(1):19--63, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  3. K. Belabas, E. Friedman. Computing the residue of the Dedekind zeta function, Math. Comp., 84(291):357--369, 2015.Google ScholarGoogle ScholarCross RefCross Ref
  4. J. Bezanson, A. Edelman, S. Karpinski, V. B. Shah, Julia: A fresh approach to numerical computing, https://arxiv.org/abs/1411.1607Google ScholarGoogle Scholar
  5. J.-F. Biasse, C. Fieker, Subexponential class group and unit group computation in large degree number fields, LMS J. Comput. Math., 17(suppl. A):385--403, 2014.Google ScholarGoogle Scholar
  6. W. Bosma, J. J. Cannon, C. Fieker, A. Steel (Eds.), Handbook of Magma Functions, Edition 2.22 (2016).Google ScholarGoogle Scholar
  7. W. Brown, Null ideals and spanning ranks of matrices, Comm. Algebra 26, (1998), pp. 2401--2417.Google ScholarGoogle ScholarCross RefCross Ref
  8. H. Cohen, A course in computational algebraic number theory, Graduate Texts in Mathematics, vol. 138, Springer-Verlag, Berlin, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Danilevsky, The numerical solution of the secular equation, (Russian),Matem. Sbornik, 44(2), 1937. pp. 169--171.Google ScholarGoogle Scholar
  10. W. Decker, G. M. Greuel, G. Pfister and H. Schönemann, Singular -- A computer algebra system for polynomial computations, http://www.singular.uni-kl.deGoogle ScholarGoogle Scholar
  11. E. Dobrowolski, On the maximal modulus of conjugates of an algebraic integer, Bull. Acad. Polon. Sci. Sér. Sci. Math. Astronom. Phys., 26(4):291--292, 1978.Google ScholarGoogle Scholar
  12. L. Fousse, G. Hanrot, V. Lefèvre, P. Pélissier, P. Zimmermann, MPFR: A multiple-precision binary floating-point library with correct rounding, ACM Trans. Math. Soft., vol. 33, (2), 13, (2007), pp. 1--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. von zur Gathen, J. Gerhard, Modern Computer Algebra, Cambridge University Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Giesbrecht, A. Storjohann, Computing rational forms of integer matrices. Journal of Symbolic Computation, 2002, v. 34(3), pp. 157--172. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Granlund and the GMP development team, The GNU Multi Precision Arithmetic Library, http://gmplib.org/ Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. W. Hart, ANTIC: Algebraic Number Theory in C, Computer algebra Rundbrief 56, Fachgruppe Computer algebra, 2015, http://www.fachgruppe-computeralgebra.de/data/CA-Rundbrief/car56.pdfGoogle ScholarGoogle Scholar
  17. W. Hart, F. Johansson, S. Pancratz, FLINT: Fast Library for Number Theory, http://www.flintlib.orgGoogle ScholarGoogle Scholar
  18. F. Johansson, Arb: A C library for ball arithmetic, http://arblib.orgGoogle ScholarGoogle Scholar
  19. M. Monagan, R. Pearce, Sparse polynomial division using a heap, Journal of Symbolic Computation, vol. 46, (7), July 2011, pp. 807--822. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Monagan, R. Pearce, Parallel sparse polynomial multiplication using heaps, ISSAC'09, ACM Press (2009), pp. 263--269. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Monagan, R. Pearce, Sparse polynomial powering using heaps, Gerdt V.P., Koepf W., Mayr E.W., Vorozhtsov E.V. (eds) Computer Algebra in Scientific Computing. CASC 2012. Lecture Notes in Computer Science, vol 7442. Springer, Berlin, Heidelberg (2012), pp. 236--247. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. PARI Group, PARI/GP version 2.9.0, Univ. Bordeaux, 2016, http://pari.math.u-bordeaux.fr/Google ScholarGoogle Scholar
  23. B. Parisse, R. De Graeve, Giac/Xcas version 1.2.2, 2016, http://www-fourier.ujf-grenoble.fr/ parisse/giac.htmlGoogle ScholarGoogle Scholar
  24. M. Pohst, H. Zassenhaus, Algorithmic algebraic number theory, Cambridge University Press, Cambridge, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Sage Developers, SageMath, the Sage Mathematics Software System (Version 7.4), 2016, http://www.sagemath.orgGoogle ScholarGoogle Scholar
  26. R. J. Schoof, Quadratic fields and factorization, In Computational methods in number theory, Part II, volume 155 of Math. Centre Tracts, pages 235--286. Math. Centrum, Amsterdam, 1982.Google ScholarGoogle Scholar
  27. M. Soltys, Berkowitz's algorithm and clow sequences, The Electronic Journal of Linear Algebra, Int. Linear Algebra Society, vol 9, Apr. 2002, pp. 42--54.Google ScholarGoogle ScholarCross RefCross Ref
  28. A. Steel, A new algorithm for the computation of canonical forms of matrices over fields, J. Symbolic Computation (1997) 24, pp. 409--432. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. E. Vinberg, A Course in Algebra, American Mathematical Society, 2003, pp. 229.Google ScholarGoogle Scholar

Index Terms

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

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        ISSAC '17: Proceedings of the 2017 ACM on International Symposium on Symbolic and Algebraic Computation
        July 2017
        466 pages
        ISBN:9781450350648
        DOI:10.1145/3087604

        Copyright © 2017 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 July 2017

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate395of838submissions,47%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader