code: def relative_idx(colptr, rowidx, snptr, snpar):
      
      
      relptr = matrix(0, (len(snptr),1))
      relidx = matrix(-1, (colptr[-1],1))
  
      def lfind(a,b):
          i = 0
          ret = +a
          for k in range(len(a)):
              while a[k] != b[i]: i += 1
              ret[k] = i
              i += 1
          return ret
      
      for k in range(len(snpar)):
          p = snpar[k]
          relptr[k+1] = relptr[k]
          if p != -1:
              nk = snptr[k+1] - snptr[k]
              relptr[k+1] += colptr[k+1] - colptr[k] - nk
              relidx[relptr[k]:relptr[k+1]] = lfind(rowidx[colptr[k]+nk:colptr[k+1]], rowidx[colptr[p]:colptr[p+1]])
  
      return relptr, relidx[:relptr[k+1]]
docs: Compute relative indices of update matrices in frontal matrix of parent.