1: \begin{abstract}
2: Many problems in science and engineering require uncertainty quantification that accounts for observed data.
3: For example, in computational neuroscience, Neural Population Models (NPMs) are mechanistic models that
4: describe brain physiology in a range of different states. Within computational neuroscience there is growing
5: interest in the inverse problem of inferring NPM parameters from recordings such as the EEG
6: (Electroencephalogram). Uncertainty quantification is essential in this application area in order to infer
7: the mechanistic effect of interventions such as anaesthesia.
8:
9: This paper presents \cpp{} software for Bayesian uncertainty quantification in the parameters of NPMs from
10: approximately stationary data using Markov Chain Monte Carlo (MCMC). Modern MCMC methods require first order
11: (and in some cases higher order) derivatives of the posterior density. The software presented offers two
12: distinct methods of evaluating derivatives: finite differences and exact derivatives obtained through
13: Algorithmic Differentiation (AD). For AD, two different implementations are used: the open source Stan Math
14: Library and the commercially licenced \dcocpp{} tool distributed by NAG (Numerical Algorithms Group).
15:
16: The use of derivative information in MCMC sampling is demonstrated through a simple example, the
17: noise-driven harmonic oscillator. And different methods for computing derivatives are compared. The software
18: is written in a modular object-oriented way such that it can be extended to derivative based MCMC for other
19: scientific domains.
20: % \keywords{Uncertainty Quantification \and Algorithmic Differentiation \and Computational Neuroscience}
21: \end{abstract}