@@ -10,7 +10,7 @@ use nalgebra_sparse::{pattern::SparsityPattern, CscMatrix, CsrMatrix};
1010use ndarray:: Slice ;
1111use 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 } ;
1414use crate :: { LoadingConfig , LoadingStrategy } ;
1515
1616mod 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
144133fn subset_csc_matrix < T > (
0 commit comments