HUTI: Framework for Iterative Solvers

HUTI is a framework for development of libraries of iterative methods, especially the Krylov methods. For every algorithm the same implementation is used for all memory models and architectures, including the parallel systems. This leads to significant benefits in maintenance and debugging. The callback function approach has been employed extensively. This makes it possible to parallelize HUTI-based algorithms simply by rewriting the necessary callbacks. This flexibility comes with a price, however, for the responsibility for selecting the appropriate matrix data structures has been delegated to the user. Thus, HUTI itself cannot be used to solve any systems directly but it can easily be embedded into domain-specific solvers.