code: def _build_index_param(self, n_l, n_V, n_smooth):
          
          idx_param_sing = {'Cholesky': np.arange(n_l), 'a1': n_l}
          # for simplified fitting
          idx_param_fitU = {'Cholesky': np.arange(n_l),
                            'a1': np.arange(n_l, n_l + n_V)}
          # for the likelihood function when we fit U (the shared covariance).
          idx_param_fitV = {'log_SNR2': np.arange(n_V - 1),
                            'c_space': n_V - 1, 'c_inten': n_V,
                            'c_both': np.arange(n_V - 1, n_V - 1 + n_smooth)}
          # for the likelihood function when we fit V (reflected by SNR of
          # each voxel)
          return idx_param_sing, idx_param_fitU, idx_param_fitV
docs: Build dictionaries to retrieve each parameter
              from the combined parameters.