Authors: J. Bobin
Language: Matlab and Python
Download: Matlab | Python
Description: A toolbox for solving Blind Source Separation problems.


GMCALab is a set of Matlab toolboxes that focus on solving Blind Source Separation problems from multichannel/multispectral/hyperspectral data. In essence, multichannel data provide different observations of the same physical phenomena (e.g. multiple wavelengths, ), which are modeled as a linear combination of unknown elementary components or sources:

\mathbf{Y} = \mathbf{A}\mathbf{S},

where \mathbf{Y} is the data matrix, \mathbf{S} is the source matrix, and \mathbf{A} is the mixing matrix. The goal of blind source separation is to retrieve \mathbf{A} and \mathbf{S} from the knwoledge of the data only.

Generalized Morphological Component Analysis, a.k.a. GMCA, is a BSS method that enforces the sparsity of the sought-after sources:


A lightweight Matlab/Octave version of the GMCALab toolbox is available at this location. Illustrations are provide here.

It is worth noting that GMCA provides a very generic framework that has been extended to tackle different matrix factorization problems:

  • Non-negative matrix factorization with nGMCA
  • Separation of partially correlated sources with AMCA
  • The decomposition of hyperspectral data with HypGMCA (available soon)
  • The analysis of multichannel data in the presence of outliers with rAMCA at this location (updated the 14/06/16).

 We are now developping a python-based toolbox coined pyGMCALab, which is available at this location.




Authors: A. Woiselle, J.L. Starck and M.J. Fadili
Language: Matlab
Download: Mac OSX | Windows
Description: A code for fast 3D curvelet transform and reconstruction.
Notes: Documentation: jmiv2010.pdf

Fast Curvelet Transform Version 1.0

Description F-CUR3D is a software, based on the MATLAB package, which contains routines for the Fast 3D Curvelet transform and reconstruction. The F-CUR3D documentation is available in PDF format.

See also the "3D curvelet algorithm description", and examples .

F-CUR3D is available for Windows and MAC.   Publications Papers related to the software:




Authors: F. Lanusse, A. Rassat,and J.-L. Starck
Language: C++ (with IDL wrapper)
Download: MRS3D_v1.0b.tar.gz
Description: A code for performing 3D spherical wavelet transforms on the sphere.
Notes: Requires Healpix installation.

Description MRS3D is based on two packages, IDL and Healpix. MRS3D can be used only if these two packages have been installed. MRS3D contains IDL and C++ routines for 3D spherical wavelet transform on the sphere .

Source code and more information are available here. For more information, please contact Francois Lanusse (

Publications Paper related to the software:




Authors: M. Kilbinger
Language: C
Download: nicaea_2.7.tgz
Description: Numerical routines to calculate cosmology and weak-lensing quantities.

nicaea [ni'kaia]: NumerIcal Cosmology And lEnsing cAlculationsNice coat of arms

Martin Kilbinger, CEA Saclay, Service d'Astrophysique (SAp), France


nicaea is a C-code providing numerical routines to calculate cosmology and weak-lensing quantities and functions from theoretical models of the large-scale structure. nicaea is the base of the cosmology module of the CosmoPMC package.


Get the latest version nicaea_2.7.tgz. A readme file (types .rst, .html, .pdf and other) is included in the package. New features in version 2.7 (Feb 2017):

  • New lensing projection types: extended Limber, spherical-sky prefactor, second-order Limber, full projection (Kilbinger et al. 2017, arXiv:1702.05301)
  • Photometric redshift errors (so far supported Gaussian with second Gaussian for outliers)
  • Modification of halomodel: mass function now normalized to physical volume (new division by a^3)
  • Added CMB normalization A_s
  • Added options to lensingdemo

For older versions of nicaea please contact me (martin.kilbinger at Note that v2.6 was skipped, the previous released version is 2.5


There is no dedicated paper that describes nicaea. To reference nicaea, please use the following publication: arXiv:0810.5129, in which a something that resembles the current version of nicaea has been used.


Martin Kilbinger
Karim Benabed (error propagation, code design)
Jean Coupon (HOD, halomodel)
Henry J. McCracken (HOD)
Liping Fu (decomp_eb)

Please feel free to send questions, feedback and bug reports to If you want to be added to the nicaea mailing list, to get updates about new versions and bug-fixes, send me a mail to

CosmoPMC (cosmology sampling with Population Monte Carlo [PMC])
camelus (Model for weak-lensing peak counts)
athena (tree code for second-order correlations)
reduced-shear corrections

Last updated February 2017.




Authors: M. Kilbinger
Language: C
Download: athena_1.7.tgz
Description: A tree code for calculating second-order correlation functions.

athena: Tree code for second-order correlation functions

athena olive tree Martin Kilbinger, CEA Saclay, Service d'Astrophysique (SAp), France

METHOD athena is a 2d-tree code written in C, which estimates second-order correlation functions from input galaxy catalogues. These include shear-shear correlations (cosmic shear), position-shear (galaxy-galaxy lensing) and position-position (spatial angular correlation).

  DOWNLOAD Get the latest version athena_1.7.tgz. A readme file is available. Run the code on the test data set. New features and bug fixes in version 1.7 (Mar 2014):

  • General
    • Added FITS file support. Input catalogues and output correlation function files can be both in ascii or fits format.
      (Note: If reading a FITS file causes a segmentation fault, remove the compiler option "-std=c99", either from CMakeLists.txt or src/Makefile.athena".)
    • Format of resample files changed, only relevant columns are output.
    • Compilation of code automated using cmake. Alternatively, the traditional Makefile is still usable.
    • Directory structure changed.

To compile and run the code, you need a C-compiler. To calculate the angular correlation function, including reading mask files and creating random catalogues, gsl and perl and required. The library cfitsio is optional (for FITS file support).

Further scripts are part of the athena package:

  • The python script calculates (band-)power spectrum by integrating over the correlation function using an estimator from this paper. Further, the aperture-mass dispersion is compuated, also via integrating the correlation function.
  • The perl script is the master script for angular correlation function calculations. It creates random catalogues and calls athena for all necessary combinations of data and random catalogues, including redshift bins, and outputs the Landy & Szalay (1993) and Hamilton (1993) estimators of the correlation function.
  • Two perl scripts ( and calculate projections of an input catalogue in spherical coordinates, and transform an arbitrary (ascii) input catalogue into an athena-readable format.
  • The python script runs a series of tests for easy comparison with expected results.
  • Various scripts to transform and plot resampled data (e.g. Jackknife)

  • For older versions of athena please contact me (martin.kilbinger at


Martin Kilbinger
Christopher Bonnett (gal-gal lensing)
Jean Coupon (venice)

With helpful suggestions from Henry McCracken, Lance Miller, and Barnaby Rowe. Ami Choi, Jonathan Benjamin, Matthieu Béthermin, and Shahab Joudaki are thanked for testing the code and bug-hunting.

Please feel free to send questions, feedback and bug reports to If you want to be added to the athena mailing list, to get updates about new versions and bug-fixes, send me a mail to

CosmoPMC (cosmology sampling with Population Monte Carlo [PMC])
nicaea (cosmology and lensing package)
reduced-shear corrections home

Last updated February 2017.




Authors: Chieh-An Lin
Language: C
Download: GitHub
Description: A code for fast weak lensing peak count modelling.

Counts of Amplified Mass Elevations from Lensing with Ultrafast Simulations
Chieh-An Lin (CEA Saclay)



Camelus is a fast weak lensing peak count modeling in C. It provides a prediction on peak counts from input cosmological parameters.

Here is the summary of the algorithm:

  • Sample halos from a mass function
  • Assign density profiles, randomize their positions
  • Compute the projected mass, add noise
  • Make maps and create peak catalogues

For a more detailed description, please take a look at Lin & Kilbinger (2015a).


Please check the GitHub page of Camelus.


The following softwares are required:


Current release: Camelus v1.31

New features in v1.31 - Mar 22, 2016:

  • Made installation more friendly by removing the dependency on cfitsio and mpi
  • Added the routine for computing 1-halo & 2-halo terms of the convergence profile
  • Flexible parameter space for PMC ABC
  • Remove files: FITSFunctions.c/.h

New features in v1.3 - Dec 09, 2015:

  • New files: constraint.c/.h
  • Allowed multiscale peaks in one data vector
  • Allowed a data matrix from several realizations
  • Used the local galaxy density as the noise level in the S/N
  • Increased the parameter dimension for PMC ABC
  • Changed the summary statistic options for PMC ABC

New features in v1.2 - Apr 06, 2015:

  • Improved the computation speed by a factor of 6~7
  • Converted the halo array structure into a binned structure, called "halo_map"
  • Converted the galaxy tree structure into a binned structure, called "gal_map"
  • Added the population Monte Carlo approximate Monte Carlo (PMC ABC) algorithm

New features in v1.1 - Jan 19, 2015:

  • Fixed the bug from calculating halo radii

New features in v1.0 - Oct 24, 2014:

  • Fast weak lensing peak count modeling


Contact information


Please feel free to send questions, feedback and bug reports to chieh-an.lin AT cea DOT fr.

Last updated Jun 26, 2015.