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