def sample_f(self, f, *args, **kwargs):
        r"""Evaluated method f for all samples

        Calls f(\*args, \*\*kwargs) on all samples.

        Parameters
        ----------
        f : method reference or name (str)
            Model method to be evaluated for each model sample

        args : arguments
            Non-keyword arguments to be passed to the method in each call

        kwargs : keyword-argments
            Keyword arguments to be passed to the method in each call

        Returns
        -------
        vals : list
            list of results of the method calls

        """
        self._check_samples_available()
        # TODO: can we use np.fromiter here? We would ne the same shape of every member for this!
        return [call_member(M, f, *args, **kwargs) for M in self.samples]
r"""Evaluated method f for all samples

        Calls f(\*args, \*\*kwargs) on all samples.

        Parameters
        ----------
        f : method reference or name (str)
            Model method to be evaluated for each model sample

        args : arguments
            Non-keyword arguments to be passed to the method in each call

        kwargs : keyword-argments
            Keyword arguments to be passed to the method in each call

        Returns
        -------
        vals : list
            list of results of the method calls