Updated sparse solver