code: def select_next_sparse(
      X_data,
      X_indices,
      X_indptr,
      gains,
      current_values,
      max_values,
      idxs,
  ):
      for i in prange(idxs.shape[0]):
          idx = idxs[i]
  
          start = X_indptr[idx]
          end = X_indptr[idx + 1]
  
          for j in range(start, end):
              k = X_indices[j]
              gains[i] += (
                  min(X_data[j] + current_values[k], max_values[k])
                  - current_values[k]
              )
  
file_path: apricot/apricot/functions/saturatedCoverage.py
imports: import numpy
  from .base import BaseGraphSelection
  from tqdm import tqdm
  from numba import njit
  from numba import prange
  from scipy.sparse import csr_matrix
label_desc: Use image node_id 2 for calling a global function with example usage: select_next_sparse(X_data, X_indices, X_indptr, gains, current_values, max_values, idxs) without return types