  Agama (Action-based Galaxy Modelling Architecture) is a software library
intended for a broad range of tasks within the field of stellar dynamics. As
the name suggests, it is centered around the use of action/angle formalism to
describe the structure of stellar systems, but this is only one of its many
facets. The library contains a powerful framework for dealing with arbitrary
density/potential profiles and distribution functions (analytic, extracted from
N-body models, or fitted to the data), a vast collection of general-purpose
mathematical routines, and covers many aspects of galaxy dynamics up to the
very high-level interface for constructing self-consistent galaxy models.
  This document serves two purposes. First of all, this is a detailed reference
for the library itself. Second, it describes various mathematical and numerical
methods that could be applicable in a broader context. These include: (1) one-
and multidimensional interpolation using cubic and quintic splines; (2)
penalized spline fitting of noisy data and penalized spline density estimation;
(3) adaptive rejection sampling from multidimensional probability
distributions; (4) computation of gravitational potentials using spherical- and
azimuthal-harmonic expansions; (5) Staeckel fudge method for computing
action/angle variables; (6) a general discussion about good programming
practices.
