  We introduce a new algorithm for approximation by rational functions on a
real or complex set of points, implementable in 40 lines of Matlab and
requiring no user input parameters. Even on a disk or interval the algorithm
may outperform existing methods, and on more complicated domains it is
especially competitive. The core ideas are (1) representation of the rational
approximant in barycentric form with interpolation at certain support points
and (2) greedy selection of the support points to avoid exponential
instabilities. The name AAA stands for "adaptive Antoulas--Anderson" in honor
of the authors who introduced a scheme based on (1). We present the core
algorithm with a Matlab code and nine applications and describe variants
targeted at problems of different kinds. Comparisons are made with vector
fitting, RKFIT, and other existing methods for rational approximation.
