FLIPS (Fortran Linear Inverse Problem Solver)

Orispää, M.

Sodankylä Geophysical Observatory, Sodankylä, Finland

We introduce FLIPS, the Fortran Linear Inverse Problem Solver. FLIPS is a Fortran 95 module for solving large scale statistical linear inverse problems. It is meant to be open source and free alternative to (and successor of) GULIPS, the Grand Unified Linear Inverse Problem Solver.

In statistical linear inverse problem the theory (or model) matrix and the measurement data are given. The measurement error is assumed to be Gaussian. Also some statistical properties like variances (or standard deviations) of the errors or the whole error covariance matrix may be known. The unknowns are assumed to be random variables. The inverse problem is then to find the posteriori density of the unknowns. In many cases, however, it is enough to find the MAP (maximum a posteriori) estimate and the posteriori covariance matrix of the unknowns. This is what FLIPS is able to calculate.

FLIPS uses elementary plane rotations (so called Givens rotations) to transform the original linear system into a upper triangular one, which is then easy and fast to solve. Similarly as in GULIPS, it is possible to feed the data into FLIPS in small fragments, even one data row at the time, thus considerably decreasing the computer memory consumption. This makes FLIPS especially suitable for solving large overdetermined linear systems. Another quite unique feature of FLIPS (and GULIPS) is the possibility to marginalize away unknowns or add new unknowns to the problem at any time.

Currently FLIPS has practically the same functionality than GULIPS. FLIPS is however actively developed further and we will also discuss the planned new features of FLIPS that will extend its capabilities beyond GULIPS.