Skip to content

Commit b8c6d6c

Browse files
author
Ian
committed
small memory improvement
1 parent 0051ed2 commit b8c6d6c

File tree

2 files changed

+159
-173
lines changed

2 files changed

+159
-173
lines changed

src/utils/mod.rs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use nalgebra_sparse::{pattern::SparsityPattern, CscMatrix, CsrMatrix};
1010
use ndarray::Slice;
1111
use std::collections::HashMap;
1212

13-
use crate::utils::subset::{is_contiguous, subset_rows_only, subset_with_contiguous_columns, subset_with_sparse_columns};
13+
use crate::utils::subset::{subset_csr_internal};
1414
use crate::{LoadingConfig, LoadingStrategy};
1515

1616
mod subset;
@@ -123,22 +123,11 @@ fn subset_csr_matrix<T>(
123123
(0..ncols).collect()
124124
};
125125

126-
if row_indices.len() == nrows && col_indices.len() == ncols {
127-
return Ok(matrix);
128-
}
129-
130-
// Use the matrix disassembly to get ownership of the data
126+
// Use matrix disassembly to get ownership of the data
131127
let (row_offsets, col_indices_orig, values) = matrix.disassemble();
132-
133-
if col_indices.len() == ncols {
134-
return subset_rows_only(&row_offsets, &col_indices_orig, values, &row_indices, ncols);
135-
}
136-
137-
if is_contiguous(&col_indices) {
138-
subset_with_contiguous_columns(&row_offsets, &col_indices_orig, values, &row_indices, &col_indices)
139-
} else {
140-
subset_with_sparse_columns(&row_offsets, &col_indices_orig, values, &row_indices, &col_indices)
141-
}
128+
129+
// Call the internal optimized subset function
130+
subset_csr_internal(row_offsets, col_indices_orig, values, &row_indices, &col_indices)
142131
}
143132

144133
fn subset_csc_matrix<T>(

0 commit comments

Comments
 (0)