def decode_path(self, ssp_path, N_ma=None, n_samples=10000):
    (sample_ssps, sample_points) = self.get_sample_ssps(n_samples)
    path = np.zeros((ssp_path.shape[0], self.domain_dim))
    max_sims = np.zeros(ssp_path.shape[0])
    for i in range(ssp_path.shape[0]):
        sims = (sample_ssps.T @ ssp_path[i, :])
        max_sims[i] = np.max(sims)
        path[i, :] = sample_points[:, np.argmax(sims)]
    return (path, max_sims)
def decode_path(self, ssp_path, N_ma=None, n_samples=10000):
    (sample_ssps, sample_points) = self.get_sample_ssps(n_samples)
    path = np.zeros((ssp_path.shape[0], self.domain_dim))
    max_sims = np.zeros(ssp_path.shape[0])
    for i in range(ssp_path.shape[0]):
        sims = (sample_ssps.T @ ssp_path[i, :])
        max_sims[i] = np.max(sims)
        path[i, :] = sample_points[:, np.argmax(sims)]
    return (path, max_sims)