Re-implemented the custom SpMV, Added in support for updating the preconditioner