Module googology::knuth_yllion[][src]

Methods for the Knuth -yllion large number naming system. This is a myriad number system based on Donald Knuth’s essay, “Supernatural Numbers”, which was published in the 1981 book, “The Mathematical Gardner”. The basic concept behind this system is that each new “yllion” is the square of the last (i.e. where one myllion is equal to 10^8, one byllion is 10^16 instead of 10^12 if we were multipling by constant factors like in an -illion system).

Knuth’s essay only provides names for yllion numbers up to one vigintyllion, which is 10^4194304 (or 10^(2^22)). Due to this crate exporting a function called power_of_ten, which should provide a proper name for any power of ten whose exponent can be expressed as a string, we attempt to extend this system. Using the same latin naming scheme in Conway-Weschler without adding extra -ylli components, we can reach up to 10^(2^1001) with the number “one novenonagintanongentyllion”.

Beyond this number, we will use Knuth’s system which prefixes the word “latin” upon some yllion, in the following fashion:

For 10^(2^(n+2)), call this: “latin{word for n with spaces removed}yllion”

Thus, 10^(2^1002) will be “latintenhundredyllion” and 10^(2^10002) will be called “latinmyriadyllion”, and so on.

Using the full_name function, however, will not require any significant level of creativity, as a 64-bit system cannot store a string larger than 2^64 bytes long, and in practice, this is much smaller. Accordingly, the largest named number such a system could theoretically output would be on the scale of “one duosexagintyllion” (10^(2^64)). If we were on a RISC-V 128-bit system with a maximum amount of RAM, the largest named number would be “one sesviginticentyllion” (10^(2^128)).

Functions

full_name

Gives a full length name for a number represented by an arbitrary sequence of digits.

power_of_ten

Gives a name for a number representing a power of ten. This function is equivalent to using full_name with a one followed by as many zeroes as would be indicated the number described by digits. Due to the exponential nature of Knuth’s Yllion system, however, this function may output yllion names that could not by outputted by any input to the full_name function. Unfortunately, there are still some inputs too large for this function to handle at the current time, so an Err may still be returned