FLIPS (Fortran Linear Inverse Problem Solver) is a Fortran95 module for solving large scale statistical linear inverse problems of form
m = Ax + e
where m is called the measurement, A is the theory matrix, x is the unknown and e is the measurement error. Usually, the measurement and the theory matrix are given and some statistical information about the error is known. The task is to extract as much information about the unknown as possible. FLIPS is able to calculate the maximum a posteriori estimate (MAP estimate) and the posteriori covariance matrix of the unknown. If the error and (possible) a priori information are assumed to be Gaussian, so is the posteriori distribution of the unknown, and the MAP estimate together with the posteriori covariance matrix are enough to determine it.
FLIPS solves the inverse problem by first transforming it into a equivalent (overdetermined) least squares problem. It is then further transformed into a simple upper triangular system using Givens rotations which is then easy to solve using back substitution. The Givens rotations are made row-by-row which makes it possible to feed the problem data (measurements, theory matrix rows & error variance/error covariance matrix) into FLIPS in small pieces, thus decreasing the memory footprint in the computer.
For more information
- FLIPS manual for version 2.0 (pdf, 170 kB)
- M. Orispää and M. Lehtinen: Fortran Linear Inverse Problem Solver, Inverse Problems and Imaging, 4 (3), 485-503, 2010.
FLIPS_2.0.9.tar.gz Source code of the latest stable version 2.0.9 (GZipped Tar archive, 403 kB).
Compiling requires Fortran95 compiler and M4 macro processor.
Copyright (c) University of Oulu, Finland
Licensed under FreeBSD license.
Commets, bug reports, etc
If there are any questions or comments, or you find bugs or errors, please do not hesitate to contact me.