FLAG is a fast implementation of the Fourier-Laguerre Transform (ArXiv | DOI), a novel 3D transform exploiting an exact quadrature rule of the ball to construct an exact harmonic transform in 3D spherical coordinates. The angular part of the Fourier-Laguerre transform uses the MW sampling theorem (ArXiv | DOI) and the exact spherical harmonic transform implemented in the SSHT code. The radial sampling scheme arises from an exact quadrature of the radial half-line using damped Laguerre polynomials. The radial transform can in fact be used to compute the spherical Bessel transform exactly, and the Fourier-Laguerre transform is thus closely related to the Fourier-Bessel transform.

This page outlines the main features of FLAG, installation details as well as the core functionalties and interfaces. References, version, and license information then follows. FLAG requires the SSHT and FFTW libraries. The optional spherical Bessel features require GSL.

Harmonic transform on the ball

The angular part of FLAG uses SSHT, a high-performance library for performing fast and exact spherical harmonic transforms on the MW equiangular sampling on the sphere. The radial part consists of the spherical Laguerre transform that takes advantage of the Gauss-Laguerre quadrature and the rescaled Laguerre polynomials to decompose and reconstruct any radial function exactly. The quadrature nodes and the basis functions on the radial half-line are shown below.


We also provide an implementation of the analytic formula connecting the spherical Laguerre and the spherical Bessel transform. If a function is band-limited in the former, the latter can be calculated exactly. Consequently the Fourier-Bessel decomposition of a function which is band-limited in the Fourier-Laguerre basis can also be calculated exactly, without the need for numerical integration routines.

Installation and documentation

The core functionalities of FLAG are written in C and self-documenting. The C library only requires SSHT and FFTW. The optional spherical Bessel and Fourier-Bessel routines require the GSL library. Interfaces are provided for all high-level routines in Matlab. Several examples, tests and demos are provided for the C library and the Matlab interfaces.


FLAG requires the SSHT and FFTW packages. C and Matlab mex compilers will be required to build the C library and Matlab interface. Linking with GSL adds the spherical Bessel and Fourier-Bessel features.


The instuctions and options to build the main C library are detailed here.
Note that we provided a makefile as well as a Cmake configuration file to facilitate cross-platform compilation.
Instuctions to build and use the Matlab interfaces are detailed here.

Source code documentation

FLAG ships with source and HTML documentation.
The C documentation is generated by doxygen. The Matlab routines that interface with the C implementation are self] documenting, and documentation can be access through the help command in Matlab). HTML documentation is available here and is built with m2html.


We make the source code of the FLAG package available under the license described below.

FLAG can be downloaded from the following site:


If you use FLAG for work that results in publication, please reference and our related academic paper:

B. Leistedt and J. D. McEwen, Exact wavelets on the ball, IEEE Trans. Sig. Proc., 60, 2012 (ArXiv | DOI).
J. D. McEwen and Y. Wiaux, A novel sampling theorem on the sphere, IEEE Trans. Sig. Proc., 59, 5876-5887, 2011 (ArXiv | DOI).


Current version: 1.0b1
Release date: November 2012


FLAG package to perform exact Fourier-Laguerre transform on the ball.
Copyright (C) 2012 Boris Leistedt & Jason McEwen

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details (LICENSE.txt).

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

About the authors

FLAG was developed by Boris Leistedt and Jason McEwen at University College London (UCL).

Example frontpage image Boris Leistedt
Academic web page »

Example frontpage image Dr Jason McEwen
Academic web page »