let the result is also a sparse matrix