def idzr_aid(A, k): """ Compute ID of a complex matrix to a specified rank using random sampling. :param A: Matrix. :type A: :class:`numpy.ndarray` :param k: Rank of ID. :type k: int :return: Column index array. :rtype: :class:`numpy.ndarray` :return: Interpolation coefficients. :rtype: :class:`numpy.ndarray` """ A = np.asfortranarray(A) m, n = A.shape w = idzr_aidi(m, n, k) idx, proj = _id.idzr_aid(A, k, w) if k == n: proj = np.array([], dtype='complex128', order='F') else: proj = proj.reshape((k, n-k), order='F') return idx, proj
def idzr_aid(A, k): """ Compute ID of a complex matrix to a specified rank using random sampling. :param A: Matrix. :type A: :class:`numpy.ndarray` :param k: Rank of ID. :type k: int :return: Column index array. :rtype: :class:`numpy.ndarray` :return: Interpolation coefficients. :rtype: :class:`numpy.ndarray` """ A = np.asfortranarray(A) m, n = A.shape w = idzr_aidi(m, n, k) idx, proj = _id.idzr_aid(A, k, w) if k == n: proj = np.empty((k, n-k), dtype='complex128', order='F') else: proj = proj.reshape((k, n-k), order='F') return idx, proj