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 
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 the Fast-growing hierarchy, they have a growth rate of \(f_{\omega^{\omega2}}(n)\).
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 the Fast-growing hierarchy, they have a growth rate of \(f_{\omega^{\omega^2}}(n)\).
Multidimensional
These arrays can have multiple dimensions. In the Fast-growing hierarchy, they have a growth rate of \(f_{\omega^{\omega^\omega}}(n)\).
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 \(f_{\varepsilon_0}(n)\) in the Fast-growing hierarchy. 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/Extended Array Notation/BEAF
*Bird's array notation
*Hyperfactorial array notation
*Many others, most which only appear in GWiki blog posts/user subpages or external sites
Category:Concepts