Array

Many notations, such as BEAF, Bird's array notation, and Hyperfactorial array notation use structures called **arrays**. They are helpful for generating fast-growing functions. Usually, they are delimited by curly brackets (i.e. { }) and contain different elements separated by delimiters, most often commas ",". Note that it is also possible to use other kinds of brackets (for example hyperfactorial array notation uses "[" and "]" brackets).

## Array types

### Bowers' arrays

**Linear**

Main article: Array notation

These arrays are linear, arranged {a1,a2,...,an-1,an}. They are the simplest kind of array.

These are usually defined using the following rules:

* {a} = usually a
* {a,b} = some base case
* {a,b,...,y,z,1} = {a,b,...,y,z} - almost all array-based notations have this rule
* {a,b,c,...} = {a,{a,b-1,c,...},c-1,...}
* {a,b,1,1,...,1,1,c,...} = {a,a,a,a,...,a,{a,b-1,1,1,...,1,1,c,...},c-1,...}

The function f(n) = {n,n,1,1,1,...,1,1,2} with n entries is comparable to fωω(n) in the fast-growing hierarchy.

**Two-row**

These arrays have two rows. In BEAF, they have a growth rate of ωω\*2.

Inline, the array

/a1,a2,...,an-1,an\

\b1,b2,...,bm-1,bm/

is written {a1,a2,...,an-1,an(1)b1,b2,...,bm-1,bm}

**Planar / 2-Dimensional**

These arrays can have any number of rows. In BEAF, they have a growth rate of ωω2.

**Multidimensional**

These arrays can have multiple dimensions. In BEAF, they have a growth rate of ωωω

**Tetrational / Nested**

These arrays' sizes are determined by tetrational expressions, like XX2X+1. They are the largest arrays in BEAF that are fully known how they work, and they have a growth rate of ε0 in BEAF. In Bird's array notation, they are called nested arrays.

**Pentational**

These arrays use pentational expressions, starting from X↑↑X. Bowers provides no notation for these arrays except the array of operator. Since he didn't properly define pentational arrays, his notation at this point and higher isn't well-defined.

**Higher operation**

These arrays use higher operations, like hexation, heptation, and so on. They end at {X,X,X} structures. (Keep in mind that none of these arrays are properly defined in BEAF)

**Expandal**

These arrays nest the operator to get things like {X,X,{X,X,{X,X,X}\*2}+1}, or anything between {X,X,X} and {X,X,1,2}.

**Higher sublegion**

Multiexpandal, powerexpandal, explosal, etc. arrays. Eventually we get to arrays that need arrays to describe their sizes (linear, multidimensional, tetrational, expandal, and those who need arrays to describe them).

**Simple legion arrays**

These arrays have a new and even bigger kind of structure: a legion. Denoted by the separator "/", a legion array at its simplest form is {a,b / 2}, which evaluates to a&a&a&...&a&a with b a's. Then there can be multidimensional, tetrational, etc. arrays before the legion mark, and then the part after the legion mark can be affected. {a,b / 3} = {a&a&...&a&a / 2} with b a's. We don't just have to have two legions we can have multiple legions: {A1 / A2 / ... / An-1 / An} where each array is an array that can be anything up to but not including a legion array.

**Arrays of legions**

Now legions can form array structures higher than linear. The first separator after / is (/1), which separates a row of legions. We can even have a legion of legions, denoted by //, and an arbitrary number of /'s.

**Arrays of legion marks**

Then legion marks themselves can form structured arrays.

**Array notation on legions**

Then we can have {L,n}a,b = {a,b //...// 2} with n /'s. L represents the legion structure. Array notation can then be applied on legions.

**Lugions, ligions, lagions, and beyond**

Then {L,L / 2} is now a new type of structure, a lugion. Lugions are represented with \ or L2. Then a ligion (| or L3) is {L2,L2 | 2}, and a lagion (- or L4) is {L3,L3 | 2}. Then there's L5, L6, ..., L100, ..., L(gongulus).

**LX, LL, LLL, and beyond**

Then there's LX, L(X+1), L(X↑↑X), LL, LLL, LLLL, and so on.

**Arrays of L's**

Then the L's themselves can form arrays like LL(1)LL(2)LL(1)LL. These arrays can be dimensional, tetrational, legiattic, lugiattic, ..., L100-attic (as in the meameamealokkapoowa oompa), ..., L(gongulus)-attic, ..., LL(1)LL(2)LL(1)LL-attic, ....

### Chris Bird's arrays

Chris Bird, on the other hand, creates a more abstract idea of the workings of these arrays. Bird chooses to denote separators [...] and use 1 as the default value of separators instead of 0.

**Beyond nested arrays I**

Instead of creating names that describe the workings of the arrays, everything beyond nested (Bowers calls them tetrational) arrays "Beyond nested arrays X". In this part of Bird's array notation, a few things happen:

* First, a second layer of separators [[...]] are introduced, then a third ([[[...]]]), and a fourth (you can guess), and so on.
* Next, [[...[[#]]...]] with n pairs of brackets is turned into [# \ n]. Then n is turned into an array. \ is a hyperseparator, a separator that has to be in another separator (i.e. {a,b\2} is invalid but {a,b[1\2]2} is valid).
* After that, separators can have multiple \'s in them.
* Multiple \'s like \\ and \\\...
* Finally \\...n...\\ is turned into [n]\, allowing turning n into an array.

**Beyond nested arrays II**

* Now [#]\ is turned into [#¬2]. ¬ is a 2-hyperseparator, meaning it has to go in a hyperseparator.
* You guessed it, multiple ¬'s in an array

**Beyond nested arrays III**

* 3-hyperseparators (♦ is the first) (you can probably guess what they are) are introduced so that [#♦2] is the so-called [#]¬, following the same rules as \ and ¬.
* Then the 4-hyperseparator ☼ (the sun) is introduced.
* Then ¬ becomes \2, ♦ becomes \3, and ☼ \4. This is generalized to \n.

**Beyond nested arrays IV**

Oddly, BNAIV is not an extension of BNAIII. Instead, it is an alternate extension of BNAII. \ becomes /, \n becomes /n, and ¬ becomes ~. It combines different hyperseparator levels.

**Beyond nested arrays V**

The all new circle hyperseparator (●) is in the beginning. Then multiple levels of ● are introduced. Finally there are arrays in the subscript of /. Finally the S function is introduced, marking the limit of BAN as a whole.

## See also

* Array notation/BEAF
* Bird's array notation
* Many others, most which only appear in GWiki blog posts/user subpages or external sites