Skip to content

Source Code

elinoreroebber edited this page Feb 12, 2024 · 3 revisions

An overview of the repository.

de.f90

The main module; contains the function diver() which is invoked to run Diver.

init.f90

Contains routines to set all parameters for the run and to initialise the population every generation.

mutation.f90

Contains routines to allow standard differential evolution mutation and self-adaptive mutation using jDE or λjDE.

crossover.f90

Contains routines to allow binomial or exponential crossover, or self-adaptive crossover using jDE or λjDE.

selection.f90

Performs selection of the next generation of vectors, applies boundary conditions, and removes duplicate vectors to ensure population diversity. If MPI is used, this is where most MPI routines are called.

converge.f90

Checks whether the population has converged sufficiently to end the current differential evolution run.

io.f90

Saves the parameters of the run as well as the population at regular intervals. Contains routines to continue a run that was stopped partway through.

evidence.f90

Contains routines used for calculating approximate Bayesian evidence values.

posterior.f90

Contains routines used for calculating approximate Bayesian posterior probability density functions.

detypes.f90

Contains interfaces to the likelihood function and prior, as well as the definitions of the internal data types used by Diver.

deutils.f90

Contains utility routines.

cwrapper.f90

Acts as an interface between C/C++ drivers and de.f90.