updated SFA CG with preconditioner