def METHOD_NAME(self, idx):
    """ compute distances of a specific data point to all other samples"""
    if scipy.sparse.issparse(self.data):
        step = self.data.shape[1]
    else:
        step = 50000
    d = np.zeros((self.data.shape[1]))
    if idx == -1:
        # set vec to origin if idx=-1
        vec = np.zeros((self.data.shape[0], 1))
        if scipy.sparse.issparse(self.data):
            vec = scipy.sparse.csc_matrix(vec)
    else:
        vec = self.data[:, idx:idx+1]
    self._logger.info('compute distance to node ' + str(idx))
    # slice data into smaller chunks
    for idx_start in range(0, self.data.shape[1], step):
        if idx_start + step > self.data.shape[1]:
            idx_end = self.data.shape[1]
        else:
            idx_end = idx_start + step
        d[idx_start:idx_end] = self._distfunc(
            self.data[:,idx_start:idx_end], vec)
        self._logger.info('completed:' +
            str(idx_end/(self.data.shape[1]/100.0)) + "%")
    return d