Blit is a highly efficient linear solver library designed for solving large-scale systems that arise from many medical imaging applications. Compared with the traditional solvers which solve for only one solution at a time, blit solvers can produce multiple solutions in a single call, thus is significantly faster. Blit uses iterative algorithms that support multiple right-hand-sides, referred to as the ''block solvers''. A block solver handles the following equation:
A [x_1, x_2, x_3, ..., x_M]=[b_1, b_2, b_3, ..., b_M]
where A is an N-by-N sparse (or full) matrix with either real or complex values, b_i and x_i are the right-hand-side and solution vectors, respectively.
Blit is a work-in-progress. It currently supports BLQMR (block Quansi-Minimal-Residual algorithm) for symmetric ''A'' matrix (Boyse1996). We will add in the future other block algorithms such as BL-CG, BL-GMRES and BL-Arnoldi. Implementations in MATLAB/FORTRAN/C/CUDA/OpenCL languages will be made available. A survey of block algorithms can be found at this link by Prof. Martin Gutknecht.