It seems necessary to make some arbitrary choices and pursue their consequences. We will first note that ex maps the real line onto the positive reals and that it is monotone increasing and continuous. Lets try to find an f that is monotone increasing.
f must increase faster than any polynomial for composed polynomials are polynomials and increase slower then ex. f must increase slower than any exponential, on the other hand, for any double exponential increases faster than ex. f’s domain must be the real line if the equation is to serve everywhere. If its range were merely the positive reals, and it was strictly monotone then f(f(x)) could not produce small positive numbers. If it is monotone increasing and its range includes all positive reals, then its domain must include some negative numbers. If it were monotone and its range included all negative numbers then f2’s range would include all reals, contrary to assumption. Consequently we assume that the domain of f is (b, infinity) for some negative real b. Continuity requires that f(-infinity) = b. Starting from there we can begin to build a value table for f:
We can now choose another value c between -infinity and b and choose a value for f(c) to satisfy f(-infinity) < f(c) < f(b). These two choices generate a new series of interposed values in our table. We can continue doing this until our choices generate a dense set of values after which continuity determines all values of f. (It is possible but unnecessary to choose so that f is discontinuous.) Indeed if we choose that f is linear in the interval (c, b) then f will be continuous everywhere.