  Stochastic simulations are one of the cornerstones of the analysis of
dynamical processes on complex networks, and are often the only accessible way
to explore their behavior. The development of fast algorithms is paramount to
allow large-scale simulations. The Gillespie algorithm can be used for fast
simulation of stochastic processes, and variants of it have been applied to
simulate dynamical processes on static networks. However, its adaptation to
temporal networks remains non-trivial. We here present a temporal Gillespie
algorithm that solves this problem. Our method is applicable to general Poisson
(constant-rate) processes on temporal networks, stochastically exact, and up to
multiple orders of magnitude faster than traditional simulation schemes based
on rejection sampling. We also show how it can be extended to simulate
non-Markovian processes. The algorithm is easily applicable in practice, and as
an illustration we detail how to simulate both Poissonian and non-Markovian
models of epidemic spreading. Namely, we provide pseudocode and its
implementation in C++ for simulating the paradigmatic
Susceptible-Infected-Susceptible and Susceptible-Infected-Recovered models and
a Susceptible-Infected-Recovered model with non-constant recovery rates. For
empirical networks, the temporal Gillespie algorithm is here typically from 10
to 100 times faster than rejection sampling.
