Fredrik Johansson
Contact: fredrik.johansson@gmail.com
My blog  Twitter  Google+  GitHub  Strava
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 arbitraryprecision arithmetic, complex analysis, and numerical evaluation of special functions (including hypergeometric functions, Lfunctions, and modular forms).
Mathematical software
A big part of my work is to develop free scientific software.
 Arb is a C library for arbitraryprecision 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 10billiondigit arithmetic!) is a fun demonstration.
 mpmath is a Python library for arbitraryprecision floatingpoint 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 oneliners 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, numbertheoretic 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 highlevel 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.
 PythonFLINT 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 (Dfinite) functions. I'm listed as a coauthor since I was involved in the initial development in 2013, although my role was minor.
Publications
This list is available in BibTeX format (txt file). I also have a Google Scholar profile.
 Faster arbitraryprecision dot product and matrix multiplication. Preprint, 2019, submitted. [arXiv] [HAL]
 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 arbitraryprecision ball arithmetic. Mathematical Software  ICMS 2018, 255263. Springer Lecture Notes in Computer Science, 2018. [arXiv] [HAL] [DOI]

Fast and rigorous arbitraryprecision computation of GaussLegendre quadrature nodes and weights.
With Marc Mezzarobba.
SIAM Journal on Scientific Computing 40(6), C726C747, 2018.
[arXiv]
[HAL]
[DOI]
 Computing the Lambert W function in arbitraryprecision 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 arbitraryprecision midpointradius interval arithmetic. IEEE Transactions on Computers, vol 66, issue 8, 2017, 12811292. [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 mediumprecision range. 22nd IEEE Symposium on Computer Arithmetic (ARITH22), 2015, 8389. [PDF] [arXiv] [DOI]
 A bound for the error term in the BrentMcMillan algorithm. With Richard P. Brent. Mathematics of Computation, vol 84, 2015, 23512359. [PDF] [arXiv] [DOI]
 A fast algorithm for reversion of power series. Mathematics of Computation, vol 84, 2015, 475484. [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, 256263. [PDF] [slides] [arXiv] [DOI] [info]
 Using functional equations to enumerate 1324avoiding permutations. With Brian Nakamura. Advances in Applied Mathematics, vol 56, 2014, 2034. [PDF] [arXiv] [DOI] [info]
 Rigorous highprecision computation of the Hurwitz zeta function and its derivatives. Numerical Algorithms, vol 69, issue 2, 2015, 253270. [PDF] [arXiv] [DOI] [info]
 Ore polynomials in Sage. With Manuel Kauers and Maximilian Jaroschek. Computer Algebra and Polynomials, 2015, 105125, 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, 166169. [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, 211218. [PDF] [arXiv] [DOI] [info]  Efficient implementation of the HardyRamanujanRademacher formula. LMS Journal of Computation and Mathematics, vol 15, 2012, 341359. [PDF] [arXiv] [DOI] [info]
 Simulation of the MaxwellDirac and SchrödingerPoisson systems. Master's thesis, Chalmers University of Technology, Gothenburg, 2010.
Trivia: my Erdős number is 3 (01, 12, 23).
Talks
 January 2019: Computing with precision, Guilty Spark Tech Talk, X, Mountain View, CA, USA
 January 2019: Progress in arbitraryprecision ball arithmetic: numerical integration and faster arithmetic, Scientific Computing and Matrix Computations Seminar, UC Berkeley, CA, USA
 November 2018: Faster dot product and matrix multiplication in arbitraryprecision ball arithmetic, MPFR / MPC / iRRAM Workshop, University of Trier, Germany
 November 2018: Faster dot product and matrix multiplication in arbitraryprecision ball arithmetic, RAIM 2018, LRI, GifsurYvette, France
 September 2018: Complex integration in Arb, SCAN 2018, Waseda University, Tokyo, Japan
 July 2018: Numerical integration in arbitraryprecision ball arithmetic, ICMS 2018, University of Notre Dame, South Bend, IN, USA
 June 2018: Numerical integration in arbitraryprecision ball arithmetic, FastRelax meeting, Inria SophiaAntipolis, France
 March 2018: Numerical integration in arbitraryprecision ball arithmetic, AriC seminar, LIP, ENS Lyon, France
 February 2018: Fast and rigorous numerical integration, Comite des projet, Inria Bordeaux SudOuest, France
 January 2018: Fast and rigorous arbitraryprecision evaluation of Legendre polynomials and GaussLegendre 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 arbitraryprecision midpointradius interval arithmetic, ARITH24, Imperial College London, UK
 June 2016: Fast reversion of formal power series, RAIM 2016, Banyulssurmer, France
 May 2016: Hypergeometric functions in Arb, FastRelax meeting, LAASCNRS, 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 mediumprecision range, ARITH22, ENS Lyon, France
 June 2015: Fast arbitraryprecision evaluation of special functions in the Arb library, OPSFA13, NIST, Gaithersburg, MD, USA
 May 2015: Highprecision methods for zeta functions. Part 3: fast evaluation of sequences, UNCG Summer School in Computational Number Theory, Greensboro, NC, USA
 May 2015: Highprecision methods for zeta functions. Part 2: derivatives, UNCG Summer School in Computational Number Theory, Greensboro, NC, USA
 May 2015: Highprecision methods for zeta functions. Part 1: functions, formulas, UNCG Summer School in Computational Number Theory, Greensboro, NC, USA
 May 2015: Special functions in arbitraryprecision 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 IledeFrance, 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 10^{20}, computer algebra seminar, TU Kaiserslautern, Germany
 March 2014: Making change for 10^{20}, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
 October 2013: Progress on algorithms for highprecision evaluation of special functions, Algorithmic Combinatorics Seminar, RISC, Hagenberg, Austria
 July 2013: Efficient implementation of the HardyRamanujanRademacher 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, RISCDESY 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: arbitraryprecision floatingpoint arithmetic and special functions, Sage Days 15, University of Washington, Seattle, WA, USA
Academic history
 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: Highprecision arithmetic, effective analysis and special functions).
 LHCPHENOnet School: Integration, Summation and Special Functions in Quantum Field Theory, RISC, Hagenberg, Austria, July 2012. Local coorganizer.
 Sage Days 35: Algorithms in Number Theory and FLINT, University of Warwick, UK, December 2011. Coorganizer.
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
In summer 2009 and 2010, I worked on Sage and mpmath as a contractor for the American Institute of Mathematics, thanks to funding provided by William Stein.
Music
 My guitar music.
 I compose MIDI music.
 What I'm listening to: my last.fm account.
Doom
My Doom maps and related information.