I was wondering what are the current state-of-the-art methods (i.e., your favourite methods, if you are an expert) for Monte Carlo sampling from a target density function $f(x)$ with $x \in \mathbb{R}^d$, $d > 1$, given different amount of accessible knowledge about $f$.

If you already know a lot about $f$, or you spend a lot of time to get to know the details of $f$, you could do pretty clever stuff; but this is not often the case. I am curious to know what would be your general strategy and your first out-of-the-box method to attack the problem in the following cases.

Specifically, let us consider the following scenarios:

 1. When for $f(x)$ you only have an unnormalized _black-box_. That is, you can only evaluate $f$ exactly at a given point $x$, and up to a normalization constant. You may have some vague information about the meaning of $x$.
 2. As (1) but also with gradient information.
 3. As (1) but the normalization constant is known (does it allow to do better?).
 4. As (1) but we know that $f(x)$ has compact support within a known region $\mathcal{U} \subset \mathbb{R}^d$.
 5. As any above and we know that $\log f(x) = \sum_{i = 1}^n \log f_i(x)$, and we can evaluate the various $f_i$ separately.
 6. As (1) but we can only get a noisy (unbiased) estimate of $f(x)$ itself.
 7. As (6) but with an unbiased estimate of $\log f(x)$.

I think that gathering answers to these questions in a single thread might be very useful as a general guide for the community, for people who use sampling methods in their work (or might want to start to), and perhaps do not know the whole array of existing methods.

I'll post below what would be my answers, to give an idea. Also, please feel free to expand with other scenarios about possible kinds of prior knowledge on $f(x)$ that I did not explicitly consider but that you think are _particularly_ important.