I'm a researcher at INRIA Bordeaux and Institut de Mathématiques de Bordeaux, working in the LFANT team headed by Andreas Enge. My research is centered on computer algebra and rigorous numerical computing. I'm especially interested in fast and reliable algorithms for arbitrary-precision arithmetic, complex analysis, and numerical evaluation of special functions (including hypergeometric functions, L-functions, and modular forms).
A big part of my work is to develop free scientific software.
- Arb is a C library for arbitrary-precision ball arithmetic. It is also my main research project since 2012. Ball arithmetic is an efficient technique for performing numerical computations with automatic and rigorous tracking of error bounds. Arb is designed with computer algebra and computational number theory in mind, extending the principles behind FLINT to the domain of real and complex numbers. It is being used in a growing number of projects and has been cited in about 50 papers. My record computation of the partition function with Arb (requiring 10-billion-digit arithmetic!) is a fun demonstration.
- mpmath is a Python library for arbitrary-precision floating-point arithmetic. It is easy to install and use, and provides a range of advanced numerical functionality. I started mpmath in 2007 and remain the main author and maintainer. A small but useful part of the scientific Python stack, mpmath is a dependency of several other packages (including SymPy and Sage) and has been mentioned in over 300 papers (on everything from stellar astrophysics and quantum field theory to antenna design, image processing and computational biology). See 100 one-liners for pi for a showcase of what mpmath can do.
- FLINT is a C library for number theory, specialized in fast polynomial arithmetic. FLINT was started by Bill Hart and David Harvey in 2006, and is currently maintained by Bill Hart. I'm a coauthor (since 2010), having written much of the code for matrices and power series, number-theoretic special functions, and assorted polynomial operations.
- Nemo is a computer algebra package for the Julia language, wrapping libraries such as FLINT and Arb for optimized basic arithmetic and on top of this providing high-level functionality written in Julia. Nemo was started in 2015 under the lead of Bill Hart with colleagues at TU Kaiserslautern. I'm one of the coauthors, having been involved in the basic design and parts of the general implementation effort.
- Python-FLINT is a Python interface to FLINT and Arb.
- Sage is an open source computer algebra system. My main contribution to Sage consists of external library development (FLINT, mpmath and Arb are standard packages included in Sage). I have also made miscellaneous minor contributions to Sage itself since 2009.
- SymPy is a computer algebra package in pure Python. I worked on various parts of SymPy in 2007 and 2008, and I also designed the SymPy logo.
- ore_algebra is a Sage package for symbolic computation with holonomic (D-finite) functions. I'm listed as a coauthor since I was involved in the initial development in 2013, although my role was minor.
Numerical evaluation of elliptic functions, elliptic integrals and modular forms.
Preprint, 2018, submitted. [arXiv] [HAL]
Computing Stieltjes constants using complex integration.
With Iaroslav V. Blagouchine.
Preprint, 2018, submitted. [arXiv] [HAL]
Numerical integration in arbitrary-precision ball arithmetic.
Mathematical Software - ICMS 2018, 255-263. Springer Lecture Notes in Computer Science, 2018. [arXiv] [HAL] [DOI]
Fast and rigorous arbitrary-precision computation of Gauss-Legendre quadrature nodes and weights.
With Marc Mezzarobba.
Preprint, 2018, submitted. [arXiv] [HAL]
Computing the Lambert W function in arbitrary-precision complex interval arithmetic.
Preprint, 2017, submitted. [arXiv] [HAL]
Nemo/Hecke: computer algebra and number theory packages for the Julia programming language.
With Claus Fieker, William Hart and Tommy Hofmann.
ISSAC 2017. [arXiv] [HAL]
Arb: efficient arbitrary-precision midpoint-radius interval arithmetic.
IEEE Transactions on Computers, vol 66, issue 8, 2017, 1281-1292. [DOI] [PDF] [arXiv] [HAL]
Highlighted paper, IEEE TC Special Section on Computer Arithmetic.
Short addition sequences for theta functions.
With Andreas Enge and William Hart.
Journal of Integer Sequences, vol 21, 2018, article 18.2.4. [arXiv] [HAL]
Computing hypergeometric functions rigorously.
Preprint, June 2016, submitted. [PDF] [arXiv] [HAL]
SymPy: Symbolic computing in Python.
With Aaron Meurer et al.
PeerJ Computer Science 3:e103, 2017. [DOI] [HAL]
Efficient implementation of elementary functions in the medium-precision range.
22nd IEEE Symposium on Computer Arithmetic (ARITH22), 2015, 83-89. [PDF] [arXiv] [DOI]
A bound for the error term in the Brent-McMillan algorithm.
With Richard P. Brent.
Mathematics of Computation, vol 84, 2015, 2351-2359. [PDF] [arXiv] [DOI]
- A fast algorithm for reversion of power series.
Mathematics of Computation, vol 84, 2015, 475-484. [PDF] [arXiv] [DOI] [info]
Fast and rigorous computation of special functions to high precision.
PhD thesis, RISC, Johannes Kepler University, Linz, 2014. [PDF] [info]
Evaluating parametric holonomic sequences using rectangular splitting.
ISSAC 2014, 256-263. [PDF] [slides] [arXiv] [DOI] [info]
Using functional equations to enumerate 1324-avoiding permutations.
With Brian Nakamura.
Advances in Applied Mathematics, vol 56, 2014, 20-34. [PDF] [arXiv] [DOI] [info]
Rigorous high-precision computation of the Hurwitz zeta function and its derivatives.
Numerical Algorithms, vol 69, issue 2, 2015, 253-270. [PDF] [arXiv] [DOI] [info]
Ore polynomials in Sage.
With Manuel Kauers and Maximilian Jaroschek.
Computer Algebra and Polynomials, 2015, 105-125, Springer Lecture Notes in Computer Science. [PDF] [arXiv] [DOI] [info]
Arb: a C library for ball arithmetic.
ACM Communications in Computer Algebra, vol 47, issue 4, December 2013, 166-169. [PDF] [slides] [DOI] [info]
Winner of the ISSAC 2013 Distinguished Software Presentation Award. Note: this extended abstract has largely been superseded by the 2017 IEEE TC paper.
Finding hyperexponential solutions of linear ODEs by numerical evaluation.
With Manuel Kauers and Marc Mezzarobba.
ISSAC 2013, 211-218. [PDF] [arXiv] [DOI] [info]
Efficient implementation of the Hardy-Ramanujan-Rademacher formula.
LMS Journal of Computation and Mathematics, vol 15, 2012, 341-359. [PDF] [arXiv] [DOI] [info]
Simulation of the Maxwell-Dirac and Schrödinger-Poisson systems.
Master's thesis, Chalmers University of Technology, Gothenburg, 2010.
- November 2018: Faster dot product and matrix multiplication in arbitrary-precision ball arithmetic, LRI, Gif-sur-Yvette, France
- September 2018: Complex integration in Arb, SCAN 2018, Waseda University, Tokyo, Japan
- July 2018: Numerical integration in arbitrary-precision ball arithmetic, ICMS 2018, University of Notre Dame, South Bend, IN, USA
- June 2018: Numerical integration in arbitrary-precision ball arithmetic, FastRelax meeting, Inria Sophia-Antipolis, France
- March 2018: Numerical integration in arbitrary-precision ball arithmetic, AriC seminar, LIP, ENS Lyon, France
- February 2018: Fast and rigorous numerical integration, Comite des projet, Inria Bordeaux Sud-Ouest, France
- January 2018: Fast and rigorous arbitrary-precision evaluation of Legendre polynomials and Gauss-Legendre quadrature nodes, JNCF 2018, CIRM, Luminy, France
- January 2018: Numerical integration in complex interval arithmetic, LFANT seminar, IMB, Bordeaux, France
- December 2017: Numerical integration in complex interval arithmetic, MAX seminar, LIX, Ecole Polytechnique, Paris, France
- October 2017: Numerics of classical elliptic functions, elliptic integrals and modular forms, Elliptic Integrals, Elliptic Functions and Modular Forms in Quantum Field Theory, DESY, Zeuthen, Germany
- October 2017: Numerics of classical elliptic functions, elliptic integrals and modular forms, LFANT seminar, IMB, Bordeaux, France
- August 2017: Fundamental algorithms in Arb, OSCAR : Antic workshop, TU Kaiserslautern, Germany
- July 2017: Arb: efficient arbitrary-precision midpoint-radius interval arithmetic, ARITH24, Imperial College London, UK
- June 2016: Fast reversion of formal power series, RAIM 2016, Banyuls-sur-mer, France
- May 2016: Hypergeometric functions in Arb, FastRelax meeting, LAAS-CNRS, Toulouse, France
- November 2015: Taking precision to the limit, Unithe ou cafe, INRIA, Bordeaux, France
- October 2015: Computing transcendental functions with error bounds, LFANT seminar, IMB, Bordeaux, France
- September 2015: Addition sequences and numerical evaluation of modular forms, DK Statusseminar, Strobl, Austria
- June 2015: Efficient implementation of elementary functions in the medium-precision range, ARITH22, ENS Lyon, France
- June 2015: Fast arbitrary-precision evaluation of special functions in the Arb library, OPSFA13, NIST, Gaithersburg, MD, USA
- May 2015: High-precision methods for zeta functions. Part 3: fast evaluation of sequences, UNCG Summer School in Computational Number Theory, Greensboro, NC, USA
- May 2015: High-precision methods for zeta functions. Part 2: derivatives, UNCG Summer School in Computational Number Theory, Greensboro, NC, USA
- May 2015: High-precision methods for zeta functions. Part 1: functions, formulas, UNCG Summer School in Computational Number Theory, Greensboro, NC, USA
- May 2015: Special functions in arbitrary-precision interval arithmetic, CAPA seminar, Uppsala University, Sweden
- March 2015: Special functions in the Arb library, AriC seminar, LIP, ENS Lyon, France
- March 2015: Special functions in the Arb library, Pequan seminar, LIP6, UPMC, Paris, France
- March 2015: Special functions in the Arb library, SpecFun seminar, INRIA Saclay Ile-de-France, Palaiseau, France
- September 2014: Reliable multiprecision arithmetic for number theory, LFANT seminar, IMB, Bordeaux, France
- July 2014: Evaluating parametric holonomic sequences using rectangular splitting, ISSAC 2014, Kobe University, Japan
- May 2014: Making change for 1020, computer algebra seminar, TU Kaiserslautern, Germany
- March 2014: Making change for 1020, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
- October 2013: Progress on algorithms for high-precision evaluation of special functions, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
- July 2013: Efficient implementation of the Hardy-Ramanujan-Rademacher formula, 2013 SIAM Annual Meeting, San Diego, CA, USA
- June 2013: Arb: a C library for ball arithmetic, ISSAC 2013, Boston, MA, USA
- June 2013: Finding Hyperexponential Solutions of Linear ODEs by Numerical Evaluation, ISSAC 2013, Boston, MA, USA
- March 2013: Fast, rigorous, arbitrary precision numerics with ball arithmetic, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
- November 2012: Algorithms for hyperexponential solutions of differential equations, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
- May 2012: Fast special function computations with FLINT, RISC-DESY Workshop, RISC, Hagenberg, Austria
- December 2011: Fast combinatorial special functions, Sage Days 35: Algorithms in Number Theory and FLINT, University of Warwick, UK
- November 2011: Partitions in the quintillions or Billions of congruences, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
- November 2011: Fast reversion of power series, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
- July 2010: Computation of special functions in mpmath, Sage Days 24: Symbolic Computation in Differential Algebra and Special Functions, RISC, Hagenberg, Austria
- July 2010: Computation of special functions in mpmath, Sage Days 23: Number Theory and Algebra, Lorentz Center, Leiden, Netherlands
- May 2009: mpmath: arbitrary-precision floating-point arithmetic and special functions, Sage Days 15, University of Washington, Seattle, WA, USA
- Research scientist (chargé de recherche) at INRIA Bordeaux since October 2015.
- Postdoc at RISC (April 2014 - July 2014) and INRIA Bordeaux (September 2014 - September 2015).
- PhD in symbolic computation, RISC, Johannes Kepler University, Linz, Austria (October 2010 - March 2014, advisor: Manuel Kauers).
- MSc in engineering physics (2010), Chalmers University of Technology, Gothenburg, Sweden.
Other professional and academic activity
I've helped organize some conferences and workshops:
- ISSAC 2018 - The 43rd International Symposium on Symbolic and Algebraic Computation, New York, USA. Program committee.
- ICMS 2016 - The 5th International Congress on Mathematical Software, Berlin, Germany. Program committee (session organizer: High-precision arithmetic, effective analysis and special functions).
- LHCPHENOnet School: Integration, Summation and Special Functions in Quantum Field Theory, RISC, Hagenberg, Austria, July 2012. Local co-organizer.
- Sage Days 35: Algorithms in Number Theory and FLINT, University of Warwick, UK, December 2011. Co-organizer.
I've reviewed papers for a number of journals, including Mathematics of Computation, Journal of Symbolic Computation, Numerical Algorithms, BIT Numerical Mathematics, Advances in Applied Mathematics, Mathematics, ACM Transactions on Mathematical Software, IEEE Transactions on Circuits and Systems, IEEE Transactions on Computers.
I've taken part in Google Summer of Code once as a student and three times as a mentor:
- 2015: mentored Anubhav Srivastava who implemented BLAS wrappers for linear algebra in FLINT
- 2014: mentored Alex Best who implemented Hermite and Smith normal form computation in FLINT
- 2012: mentored Lina Kulakova who implemented algorithms for polynomial factorization in FLINT
- 2008: implemented numerical evaluation in SymPy, mentored by Ondrej Certik
My Doom maps and related information.