code: def sparse_mul(ind1, data1, ind2, data2):
      result_ind = numba.typed.List.empty_list(numba.types.int32)
      result_data = numba.typed.List.empty_list(numba.types.float32)
  
      i1 = 0
      i2 = 0
  
      # pass through both index lists
      while i1 < ind1.shape[0] and i2 < ind2.shape[0]:
          j1 = ind1[i1]
          j2 = ind2[i2]
  
          if j1 == j2:
              val = data1[i1] * data2[i2]
              if val != 0:
                  result_ind.append(j1)
                  result_data.append(val)
              i1 += 1
              i2 += 1
          elif j1 < j2:
              i1 += 1
          else:
              i2 += 1
  
      return result_ind, result_data
  
imports: from __future__ import print_function
  import locale
  import numpy
  import numba
  from pynndescent.utils import norm, tau_rand
  from pynndescent.distances import kantorovich, jensen_shannon_divergence, symmetric_kl_divergence
label_desc: Use image node_id 8 for calling a global function with example usage: sparse_mul(ind1, data1, ind2, data2) and returns: result_ind,  result_data