Fredrik Johansson
Don't like the portrait? Refresh for another one.
Contact: fredrik.johansson@gmail.com
My blog  Twitter  GitHub  Office @ IMB
I'm a researcher in the LFANT team at INRIA Bordeaux and Institut de Mathématiques de Bordeaux (IMB). My research spans computer algebra, symbolic computation, numerical analysis, computational number theory, and mathematical software. I'm especially interested in arbitraryprecision arithmetic, rigorous numerical computing, effective complex analysis, and computation of special functions (including hypergeometric functions, Lfunctions and modular forms).
Feel free to contact me if you are interested in doing a master's thesis or PhD in this area.
Mathematical software
A big part of my work is to develop free scientific software.
 Calcium is a C library for exact computation with real and complex numbers.
 The Mathematical Functions Grimoire (Fungrim) is a website and software library of symbolic formulas and tables for mathematical functions.
 Arb is a C library for arbitraryprecision ball arithmetic, supporting a wide range of numerical operations with automatic, rigorous error bounds. It is also my main research project since 2012. 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 used in a growing number of projects and has been cited in about 100 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 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 ecosystem, mpmath is a dependency of several other packages (including SymPy and Sage) and has been mentioned in over 300 papers. See 100 oneliners for pi for a demo.
 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. Nemo was started in 2015 by 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.
 SageMath is an open source computer algebra system. My main contribution consists of external library development (FLINT, mpmath and Arb are standard packages included with SageMath). I have also contributed small bits of code to the SageMath library 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, developed by Manuel Kauers and others. I helped out with the initial development in 2013.
Publications
This list is available in BibTeX format (txt file). I also have a Google Scholar profile.

Computing isolated coefficients of the jfunction
Preprint, 2020. [arXiv] [HAL] 
On a fast and nearly divisionfree algorithm for the characteristic polynomial
Technical report, 2020. [arXiv] [HAL] 
Calcium: computing in exact real and complex fields
Preprint, 2020. [arXiv] [HAL] 
The minimal Fried average entropy for higherrank Cartan actions
With Eduardo Friedman and Gabriel RamirezRaposo. To appear in Mathematics of Computation, 2020. [HAL] 
Calculer avec les nombres réels (published French translation by Xavier Caruso) /
Computing with real numbers (original English manuscript)
Informatique Mathématique  Une photographie en 2020 edited by Sébastien Labbé, Vincent Penelle. CNRS Éditions, 2020, pp. 115147. 
FunGrim: a symbolic library for special functions
To appear in Mathematical Software  ICMS 2020, Springer LNCS, 2020. [arXiv] [HAL] 
Faster arbitraryprecision dot product and matrix multiplication
26th IEEE Symposium on Computer Arithmetic (ARITH26), 2019. [arXiv] [HAL] [DOI] 
Numerical evaluation of elliptic functions, elliptic integrals and modular forms
Elliptic Integrals, Elliptic Functions and Modular Forms in Quantum Field Theory, Springer, 2019, pp. 269293. [arXiv] [HAL] [DOI] 
Computing Stieltjes constants using complex integration
With Iaroslav V. Blagouchine. Mathematics of Computation, vol 88, 2019, pp. 18291850. [arXiv] [HAL] [DOI] 
Numerical integration in arbitraryprecision ball arithmetic
Mathematical Software  ICMS 2018, Springer LNCS, 2018, pp. 255263. [arXiv] [HAL] [DOI] 
Fast and rigorous arbitraryprecision computation of GaussLegendre quadrature nodes and weights
With Marc Mezzarobba. SIAM Journal on Scientific Computing 40(6), 2018, pp. C726C747. [arXiv] [HAL] [DOI]

Computing the Lambert W function in arbitraryprecision complex interval arithmetic
Numerical Algorithms, 2019 (to appear). [arXiv] [HAL] [DOI] 
Nemo/Hecke: computer algebra and number theory packages for the Julia programming language
With Claus Fieker, William Hart and Tommy Hofmann. 42nd International Symposium on Symbolic and Algebraic Computation (ISSAC'17), 2017, pp. 157164. [arXiv] [HAL]

Arb: efficient arbitraryprecision midpointradius interval arithmetic
IEEE Transactions on Computers, vol 66, issue 8, 2017, pp. 12811292. [DOI] [PDF] [arXiv] [HAL] 
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
ACM Transactions on Mathematical Software, 2019 (to appear). [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, pp. 8389. [PDF] [arXiv] [DOI] 
A bound for the error term in the BrentMcMillan algorithm
With Richard P. Brent. Mathematics of Computation, vol 84, 2015, pp. 23512359. [PDF] [arXiv] [DOI]  A fast algorithm for reversion of power series
Mathematics of Computation, vol 84, 2015, pp. 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
39th International Symposium on Symbolic and Algebraic Computation (ISSAC'14), 2014, pp. 256263. [PDF] [slides] [arXiv] [DOI] [info] 
Using functional equations to enumerate 1324avoiding permutations
With Brian Nakamura. Advances in Applied Mathematics, vol 56, 2014, pp. 2034. [PDF] [arXiv] [DOI] [info] 
Rigorous highprecision computation of the Hurwitz zeta function and its derivatives
Numerical Algorithms, vol 69, issue 2, 2015, pp. 253270. [PDF] [arXiv] [DOI] [info] 
Ore polynomials in Sage
With Manuel Kauers and Maximilian Jaroschek. Computer Algebra and Polynomials, Springer LNCS, 2015, pp. 105125. [PDF] [arXiv] [DOI] [info] 
Arb: a C library for ball arithmetic
ACM Communications in Computer Algebra, vol 47, issue 4, December 2013, pp. 166169. [PDF] [slides] [DOI] [info]
Note: the 2017 IEEE TC paper largely supersedes this extended abstract. 
Finding hyperexponential solutions of linear ODEs by numerical evaluation
With Manuel Kauers and Marc Mezzarobba. 38th International Symposium on Symbolic and Algebraic Computation (ISSAC'13), 2013, pp. 211218. [PDF] [arXiv] [DOI] [info] 
Efficient implementation of the HardyRamanujanRademacher formula
LMS Journal of Computation and Mathematics, vol 15, 2012, pp. 341359. [PDF] [arXiv] [DOI] [info] 
Simulation of the MaxwellDirac and SchrödingerPoisson systems
Master's thesis, Chalmers University of Technology, Gothenburg, 2010. [PDF] [slides] [info]
Erdős number
My Erdős number is 3 (01, 12, 23).
Awards
 Best Paper Award, 26th IEEE Symposium on Computer Arithmetic (ARITH26), June 2019, Kyoto, Japan. (For Faster arbitraryprecision dot product and matrix multiplication.) Photos from the event: 1, 2, 3, 4, 5, 6, 7, 8
 Highlighted Paper, IEEE Transactions on Computers Special Section on Computer Arithmetic, 2017. (For Arb: efficient arbitraryprecision midpointradius interval arithmetic.)
 Distinguished Software Presentation Award, 38th International Symposium on Symbolic and Algebraic Computation (ISSAC'13), Boston, USA, 2013. (For Arb: a C library for ball arithmetic.)
Talks
 November 2020: Calcium: computing in exact real and complex fields, LFANT seminar, Bordeaux, France, online
 July 2020: What's new in Flint (2.6), ICMS 2020, online
 July 2020: [Video] FunGrim: a symbolic library for special functions, ICMS 2020, online
 July 2020: [Video] Special functions in Fungrim, OPSFOTA virtual seminar series, online
 June 2020: Computing with real numbers / Calculer avec les nombres réels (Part 1 + 2), EJCIM 2020, online
 December 2019: Numerical and symbolic tools for reliable computing with real numbers, CAPA seminar, Uppsala University, Sweden
 October 2019: Reliable real computing, Computational Mathematics and Applications Seminar, University of Oxford, UK
 October 2019: Ball arithmetic as a tool in computer algebra, Maple Conference, Waterloo, ON, Canada
 September 2019: Fungrim: The Mathematical Functions Grimoire, LFANT seminar, IMB, Bordeaux, France
 July 2019: Fungrim: The Mathematical Functions Grimoire, OPSFA 2019, Hagenberg, Austria
 June 2019: Faster arbitraryprecision dot product and matrix multiplication, ARITH26, Kyoto Research Park, Kyoto, Japan
 May 2019: Fungrim: The Mathematical Functions Grimoire, FastRelax Workshop, ENS Lyon, France
 February 2019: Arb demonstration, Free Computational Mathematics, CIRM, Luminy, France
 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 activity
Conference organization
 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.
Reviewing
I've reviewed papers for a number of journals and conferences, 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.
Summers of code
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.
Unprofessional activity
Sports
I have an account on Strava for tracking running, cycling, hiking activities.
Music
 My guitar music.
 I compose MIDI music.
 What I'm listening to (old): my last.fm account.
Doom levels
My old Doom maps and related info.