Improved matrix inversion; still needs re-swapping if forward elminination used swapping