# how to efficiently find level sets (using a modification of a root-finding algorithm)?

I'm trying to find a set of points $$\{ a_i | f(a_i) = c_i \}_{i=1}^k$$ where $$f$$ and $$\{ c_i \}_{i=1}^k$$ are given in sorted order. All $$c_i > 0$$, $$f$$ is continuous and monotonically increasing, $$f(0) < c_1$$, and $$f(1) > c_k$$. Example: $$k \approx 1000$$, $$c_i = 1 + \eta^i$$, and $$\eta \approx 1.02$$.

Currently I'm invoking Brent's method $$k$$ times, once for each $$c_i$$, adjusting the (left portion of) the bracket between each call. However it feels like this can be done much more efficiently via reusing the intermediate iterates from each invocation. It might be a problem that is already addressed, but I have failed to uncover anything using a search engine.