ioannis.c is an entry "Ioannis" submitted to Bignum Bakeoff.[1] The code defines a function similar to the Ackermann function, defines a single-argument function using it, and iterates that function.
The output is exactly booga- prefix applied 116 times to 9 and can be calculated as s(116) using s(k+1) = s(k){s(k)-2}s(k) (where arrow notation is used) and starting with s(0) = 9.
The output is then approximately equal to \(f_{\omega+1}(115)\), which is larger than Graham's number. In fact it is larger than \(G_{115}\), while Graham's number is only \(G_{64}\). It is also slightly larger than corporal and graatagold.
Code[]
int a(int k,int m,int n)
{if (k==1) return(m+n);
else {if (n==1) return m;
else return a(k-1,m,a(k,m,n-1));}}
#define d(n) a(n,n,n)
int main(void)
{return d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(
d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(
d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(
d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(d(
d(d(d(d(d(d(d(d(9)))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))));}
Approximations[]
| Notation | Approximation |
|---|---|
| Bowers' Exploding Array Function | {9,116,1,2} |
| Chained arrow notation | 9→9→116→2 |
| Hyper-E notation | E115##115#115 |
| Strong array notation | s(9,116,2,2) |
| Fast-growing hierarchy | \(f_{\omega+1}(115)\) |
| Hardy hierarchy | \(H_{\omega^{\omega+1}}(115)\) |
| Slow-growing hierarchy | \(g_{\Gamma_0}(115)\) |
Sources[]
See also[]
Large numbers in computers
Main article: Numbers in computer arithmetic
127 · 128 · 256 · 32767 · 32768 · 65536 · 2147483647 · 4294967296 · 9007199254740991 · 9223372036854775807 · FRACTRAN catalogue numbersBignum Bakeoff contestants: pete-3.c · pete-9.c · pete-8.c · harper.c · ioannis.c · chan-2.c · chan-3.c · pete-4.c · chan.c · pete-5.c · pete-6.c · pete-7.c · marxen.c · loader.c
Channel systems: lossy channel system · priority channel system
Concepts: Recursion