code: def reconstruct_interp_matrix(idx, proj):
      """
      Reconstruct interpolation matrix from ID.
  
      The interpolation matrix can be reconstructed from the ID indices and
      coefficients `idx` and `proj`, respectively, as::
  
          P = numpy.hstack([numpy.eye(proj.shape[0]), proj])[:,numpy.argsort(idx)]
  
      The original matrix can then be reconstructed from its skeleton matrix `B`
      via::
  
          numpy.dot(B, P)
  
      See also :func:`reconstruct_matrix_from_id` and
      :func:`reconstruct_skel_matrix`.
  
      ..  This function automatically detects the matrix data type and calls the
          appropriate backend. For details, see :func:`backend.idd_reconint` and
          :func:`backend.idz_reconint`.
  
      Parameters
      ----------
      idx : :class:`numpy.ndarray`
          Column index array.
      proj : :class:`numpy.ndarray`
          Interpolation coefficients.
  
      Returns
      -------
      :class:`numpy.ndarray`
          Interpolation matrix.
      """
      if _is_real(proj):
          return backend.idd_reconint(idx + 1, proj)
      else:
          return backend.idz_reconint(idx + 1, proj)
  
file_path: catboost/contrib/python/scipy/py2/scipy/linalg/interpolative.py
imports: import scipy.linalg._interpolative_backend
  import numpy
label_desc: Use image node_id 6 for calling a global function with example usage: reconstruct_interp_matrix(idx, proj) and returns: backend, backend