# The Graph Signal Processing Toolbox

You thought signal processing on graphs was hard?

You can have a look at the GitHub repository page to see all available versions, or just download the latest one by clicking on the button.

## Installation

To install, simply unpack the package. The toolbox is contained in the 'gsp' directory and in all the subdirectories. To use the toolbox, start Matlab, change to the 'gsp' directory and run the

gsp_start
command. This will set up the necessary paths and perform the necessary initializations.

To compile the mex interfaces for faster execution of the toolbox and install third party software type the command:

gsp_install
Further installation instructions can be found here.

## FLANN library

The GSPBox uses FLANN (Fast Library for Approximate Nearest Neighbors) to efficiently construct large nearest neighbors graphs. You should ideally compile FLANN on your computer. Before you start, be sure that all MATLAB executables are in your path. The FLANN sources are included. You can simply open a terminal, navigate to the GSPBox folder and type the following commands to configure and build the library:

cd 3rdparty/sources/flann-1.8.4-src/cmake/
cmake ..
make
Please verify that the compilation worked by checking the existence of the compiled library:
ls src/matlab/nearest_neighbors.*
If there is no file, but the compilation seemed to have run without errors, be sure that the bin folder of MATLAB is in your path. If the compilation worked, please move the built library:
mv src/matlab/nearest_neighbors.* ../../../flann/

## FLANN pre-compiled library

As the compilation of FLANN can be slightly tricky, we provide binaries for some architectures.

The downloaded file should be placed in the "3rdparty/flann/" folder (from the root of the toolbox). If it does not work, you may try to install the library with the PCL installer.