# Simple Iterative Solver Library

This is a simple (simplistic?) set of iterative solvers for real and complex problems, which is mainly based on the BLAS, but with an interface convenient for setting up problems. It also has provision for matrix free calculations, so that it can be used to solve problems implemented using fast multipole formulations.

The library contains a set of basic types which implement real and complex matrix and vectors, with support for a simple sparse matrix type. The basic matrix and vector arithmetic operations are implemented for the different matrix types, where appropriate, without requiring that the user code be changed for different matrix types.

The solvers are a selection of the iterative solvers given in Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods and each solver has a uniform interface so that they can be selected at run time. They can also function on parallel systems which use the Message Passing Interface.

The main application of SISL is to provide some basic solvers for BEM3D but it is designed to be flexible enough for other applications.