define sparse matrix data structure