NumCosmo is a numerical cosmology library. It contains a comprehensive set of tools for calculating cosmology observables and to analyze statistical models.
The library is written in C, but since it uses the GObject framework, it is developed in a object oriented fashion. Additionally, it has automatic bindings for every language which supports GObject introspection (Perl, Python, etc. For a complete list see https://wiki.gnome.org/Projects/GObjectIntrospection/Users ).
The available observables objects are:
- Type Ia Supernovae
- Baryon Acoustic Oscillations
- Cosmic Microwave Background
- Cluster number counts
- Cluster pseudo number counts
- Hubble data H(z)
Currently it has the following statistical tools:
- Monte Carlo (NcmFitMC) -- resampling and fitting.
- Monte Carlo Bootstrap (NcmFitMCBS) -- resampling/bootstraping and fitting.
- Markov Chain Monte Carlo -- MCMC with the Metropolis-Hastings sampler, it supports general samplers through transtion kernel object NcmMSetTransKern.
- Ensemble Sampler MCMC -- Ensemble Markov Chain Monte Carlo consists in every point of the MCMC chain being a emsemble of points in the parameter space. It implements an affine invariant move method (stretch move).
All methods above generate a catalog using the NcmMSetCatalog which provide a unified way to analyze the results. Besides, the use of a catalog provides the support for restarting the algorithms from a previous crash or to extend the precision.
The Savannah project page can be found here. The NumCosmo homepage is here, it contains the documentation and some examples.
To build from a release package, for which the configure script is ready, run:
- ./configure (--help to see options)
- make
- make install (optional step)
To build from the git repository, run:
- ./autogen.sh
- The configure script is built at this point.
Note that this requires the autotools developer enviroment (latest version):
- autoconf
- automake
- libtool
- http://ftp.gnu.org/gnu/libtool/ And also:
- gtk-doc
- gobject-introspection
- The configure script is built at this point.
Note that this requires the autotools developer enviroment (latest version):
- ./cofigure (--help to see options)
- make
- make install (optional step)
For a generic installation instructions, see INSTALL.
The requirements below can be found on most Linux distribution, see here for a list of packages names for some distributions.
A pre-compiled version of NumCosmo can be found here
- Glib >= 2.28.0 Data structures, threads, portability, memory allocation, etc.
- GSL >= 1.15 Several computational tools.
- GMP >= 4.3.2 Big integers library.
- MPFR >= 2.4.2 Multiple precision float library.
- Sundials >= 2.4.0 ODE solver library.
- GObject-introspection Middleware layer between C libraries (using GObject) and language bindings. *https://wiki.gnome.org/action/show/Projects/GObjectIntrospection?action=show&redirect=GObjectIntrospection This package is optional but highly recommended. To use NumCosmo from Python, for example, you also need PyGObject. *https://wiki.gnome.org/action/show/Projects/PyGObject?action=show&redirect=PyGObject Note that pygobject3 refers to the PyGObject version (not Python's version).
- FFTW3 >= 3.1.2 Needed to build the spherical harmonic decomposition of CMB data.
- Any optimized BLAS library (ATLAS, OpenBLAS, MKL, etc) Improve speed in linear algebra calculations.
- Lapack Linear Algebra PACKage
- Extra (besides gsl's) minimization packages
- NLOpt Several general purpose minimization algorithms.
- CFITSIO C library used to manipulate fits files. It will build the support to read CMB maps and astronomical data in general in fits format.
- gtk-doc GTK-Doc is used to generate API documentation from comments added to C code, needed only to generate new releases.
- ARB C library for arbitrary-precision interval arithmetic.