# Function composition notation

I've looked around on the internet a bunch, for a standard way to write an arbitrary number of nested functions (eg. ##{f_1}\circ{f_2}\circ\cdots\circ{f_n}##) without ellipses and with a second input variable (eg. the i in ##f_i##), but never found anything. If anyone does this, what is the standard way to write that kind of thing? To use messy ellipses?

I more or less want to be able to generalize things like arbitrary sums, products and continued fractions (as well as arbitrary functions).

Last edited:

jedishrfu
Mentor
Nearest thing I could find is:

http://homepages.inf.ed.ac.uk/stg/NOTES/node34.html

Where they use exponential notation on the function name.

For something more complex you might have to invent your notation like the summation or product functional operators,

...

I see. I have to say the main reason was because I went to the effort to invent something that I didn't think anyone had bothered doing in the past so that I could experiment with it, and I didn't want to be unoriginal. I posted about it here about 3 years ago, but I was bad at organization and posting back then, so let's just ignore that, heh heh. I guess the main thing was that I didn't put all this effort into something that was already done before (as far as I know).

Below is the current definition of my notation (though it might be necessary for me to add limits in there for infinites, if it isn't implied by the structure). ##a## is the lower limit and ##b## is the upper limit, where ##i## is the alternative input variable (in most "large" operators, you would see ##i=a## at the bottom, but that implies a starting point, and this notation needs to be able to go infinitely high (##\cdots\circ{f_1}\circ{f_0}##) and infinitely deep (##{f_{-1}}\circ{f_{-2}}\circ\cdots##)). The higher the value of ##i##, the more functions are nested within it, and the lower the value, the more functions it is nested in. The square brackets are where you place the function you're quasi-iterating, and the round brackets are where you put your independent variable (which always goes on the deepest-nested function, as we all know). ##z## is the important bit. ##z## is the symbol that represents what part of the function in the square brackets is replaced by the deeper nested function (##f_{i-1}##).

$$\Omega_{a}^{b}[f_{i}(z)]_{z}^{i}(x)= \begin{cases} {\Omega_{0}^{\infty}[f_{i}(z)]_{z}^{i}}\circ{\Omega_{-\infty}^{-1}[f_{i}(z)]_{z}^{i}} & {-\infty}={a},{b}=\infty \\ {f_{b}}\circ{\Omega_{a}^{b-1}[f_{i}(z)]_{z}^{i}} & {-\infty}\neq{a}<{b}\neq{\infty} \\ {\Omega_{a+1}^{b}[f_{i}(z)]_{z}^{i}}\circ{f_{a}}(x) & {\infty}\neq{a}<{b} \\ {f_{a}(x)} & {a}={b} \\ {x} & {a}>{b} \end{cases}$$

Note: I didn't put ##(x)## after the two operators that go infinitely deep (##\Omega_{-\infty}^{b}##), because, well... it goes infinitely deep, so you would never get to the value and you'd calculate the result via a limit, as a direct composition of an infinite number of functions. However, I'm now questioning whether I should put it there, since if you did set a value to the independent variable and calculated the limit with that in each step, you might get a totally different result depending on the type of function you're quasi-iterating.
Example #1: ##\Omega_{1}^{\infty}[z+\frac{1}{2^i}]_{z}^{i}(-1)=1##
Example #2: ##\lim_{b\rightarrow\infty}\Omega_{1}^{b}[z+\frac{1}{2^i}]_{z}^{i}(-1)=0##
The limit goes straight to 1 in the first example, but if you took into account the very final step (which is infinitely embedded in the functions), you would get 0. I don't think there's any mathematical "rule" that says what to do when you "reach" the final function if it's infinitely deep. If I make it a part of the definition, then it would look more like this:

$$\Omega_{a}^{b}[f_{i}(z)]_{z}^{i}(x)= \begin{cases} {x} & {a}>{b} \\ {f_{a}(x)} & {a}={b} \\ {f_{b}}\circ{\Omega_{a}^{b-1}[f_{i}(z)]_{z}^{i}}(x) & {-\infty}\neq{a}<{b}\neq{\infty} \\ \lim_{b\rightarrow{\infty}}[{\Omega_{a}^{b}[f_{i}(z)]_{z}^{i}}(x)] & {-\infty}\neq{a}<{b}={\infty} \\ \lim_{a\rightarrow-\infty}[{\Omega_{a}^{b}[f_{i}(z)]_{z}^{i}}(x)] & {-\infty}={a}<{b}\neq{\infty} \\ \lim_{b\rightarrow{\infty}}[\lim_{a\rightarrow{-\infty}}[{\Omega_{a}^{b}[f_{i}(z)]_{z}^{i}}(x)]] & {-\infty}={a},{b}=\infty \end{cases}$$

Can I have input, if anyone's interested?

By the way, here are some common expressions generalized by this notation:
##e## expressed as a continued fraction: ##e=2+\Omega_{-\infty}^{0}\left[\frac{1}{1+(1-2i/3)\cdot[i\in\mathbb{Z}_3]+z}\right]_{z}^{i}(0)##
Capital sigma notation: ##\Sigma_{i=a}^{b}{x_i}=\Omega_{a}^{b}[z+{x_i}]_{z}^{i}(0)##
Capital pi notation: ##\Pi_{i=a}^{b}{x_i}=\Omega_{a}^{b}[z\cdot{x_i}]_{z}^{i}(1)##

Last edited:
I thought about it a bit and it would be impossible to write an endless string of functions and not have a ##z## sitting around in the result. It must use a limit, as in the second definition.

Here's Graham's number. ##G=\Omega_{1}^{64}[{3}\uparrow^{z}{3}]_{z}^{i}(4)##