Hyper operator

Hyper operators are extensions to the standard binary operators addition, multiplication, and exponentiation. Multiplication is repeated addition, and exponentiation is repeated multiplication, so it is natural to extend them further &mdash; repeated exponentiation is called "tetration," for instance. When used on the positive integers, each hyper operator grows much faster than the previous one; since the numbers generated become very large, hyper operators are considered to be googological.

Basics
When we say "$$a \times b$$," we mean "a added to itself b times:"

$$a \times b = \underbrace{a + a + \cdots + a + a}_b$$

For example, \(4 &times; 3 = 4 + 4 + 4\).

When we say "$$a^b$$," we mean "a multiplied by itself b times:"

$$a^b = \underbrace{a \times a \times \cdots \times a \times a}_b$$

For example,  = 4 &times; 4 &times; 4. This is the limit of standard mathematical notation.

We can takes this a step further, however. We can define a new function, "$$^ab$$" (pronounced "to-the-a b") which means "a to the power of itself b times:"

$$^ba = \underbrace{a^{a^{a^{.^{.^.}}}}}_b$$

where there are b a s, solved from the top down (which creates bigger numbers). This is called tetration. Since the function does not have much use in most areas in mathematics, there is no standard way of notating this. Rudy Rucker popularized the notation $$^ab$$, but other notations include x④y and $$x \uparrow\uparrow y$$.

The next natural step is pentation, which is repeated tetration; hexation, which is repeated pentation; heptation, which is repeated hexation; and so forth. The terms sexation, septation, etc. are also used, but they are considered nonstandard, being Latin prefixes and not Greek.

Pseudocode
// Upper hyper operators function hyper(a, b, n): if n = 0: return a + b result := a repeat b - 1 times: result := hyper(a, result, n - 1) return result // Lower hyper operators function hyper_lower(a, b, n): if n = 0: return a + b result := a repeat b - 1 times: result := hyper_lower(result, a, n - 1) return result