[ANN] MultiPrecisionArrays.jl: Algorithms and data structures for iterative refinement

I just tagged v0.1.0 of MultiPrecisionArrays.jl.

This package provides data structures and solvers for several variants of iterative refinement (IR) for solving linear systems A x= b.
IR reduces matrix factorization costs by factoring a copy of A in a low precision and then using that copy in a residual correction iteration.

Hence, IR is time-for-storage tradeoff. The factorization cost is reduced but you must store a low precision copy of A. MultiPrecisionArrays.jl manages that for you. To solve the system you do

AF = mplu(A)
x = AF\b

The multiprecision factorization mplu makes the low precision copy,
factors it, and preallocates the data the residual correction iteration needs. The solver performs the iteration and I’ve overloaded \ to do that.

The package supports Krylov-IR methods as well as the classic IR iteration.

The README file and the docs on the repo explain how it all works.

16 Likes