Fix a hang in write_matrix_market_csc #76
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Calling
write_matrix_market_csc
on a sparse array with no explicit values hangs indefinitely. This is caused by the fact that insidecsc_formatter::chunk::next_chunk
, there is a division bynnz_per_column
, which happens to be0.
for such arrays.The fix I propose here is to set
ptr_chunk_end
to the end of range in the problematic case, avoiding division by zero.An alternative fix could be to call
write_body
insidewrite_matrix_market_csc
only ifnnz > 0
, but it doesn't really solve the problem within thecsc_formatter
.I also updated unit tests to cover the case of a csc matrix with no explicit values and non-zero dimensions.