In addition to the main set of classes for solving inverse problems, SPORCO provides a number of supporting functions and classes, within the following modules:
Various utility functions and classes, including a parallel-processing grid search for parameter optimisation, access to a set of pre-learned convolutional dictionaries, and access to a set of example images.
A parallel-processing grid search for parameter optimisation that distributes processes via MPI.
Various functions operating on NumPy arrays.
Various linear algebra and related functions, including solvers for specific forms of linear system and filters for computing image gradients.
Variants of the Fast Fourier Transform and associated functions.
Interpolation and regression functions.
Evaluation of various norms and their proximal operators and projection operators.
Various image quality metrics including standard metrics such as MSE, SNR, and PSNR.
Signal and image processing and associated functions.
Functions for plotting graphs or 3D surfaces and visualising images.
Support classes and functions for working with convolutional representations.
A constrained dictionary class that constrains the allowed dict keys, and also initialises the dict with default content on instantiation. All of the inverse problem algorithm options classes are derived from this class.
The usage of many of these utility and support functions/classes is demonstrated in the usage examples.