I would like to compute the expected value of a function f(x1,x2): R^n x R^n -> R for a fixed x1. This will be done for thousands of different values of x1 in a context where speed is important. Three problems:

- f could be slow to compute
- n is relatively large (> 100)
- the input space is continuous

I can see a few approaches:

- Discretize the input space for x2 and exhaustively compute f (bad idea since f is slow and n is large)
- Perform dimensionality reduction and then compute the expected value on that (eh...)
- Learn the expected value through regression (this feels dirty)
- Use some form of sampling

Any other ideas? Could someone familiar with the sampling literature recommend papers that deal with this kind of problem?