The rname Algorithm

Introduction

rname is a system for constructing short names for numbers, with attention placed on highly composite numbers. An name in rname is composed of a sequence of roots. Each root has a numerical value, and the value of the name is formed by multiplying together the values of the roots. Affixes are placed around roots or groups of roots to modify them and give them larger values. rname is based on primorials, and more generally, primorial inflation. It is the successor to my earlier pname and qname, which were inspired by Michael Thomas de Vlieger's argam. The rname algorithm was designed to be easier to execute than that of qname, while retaining its property that highly composite numbers (A002182) have compact names. The algorithm also provides short names for some other types of numbers as well, like factorials.

Phonology

qname has 17 consonants and 6 vowels:

Labial Alveolar Post-alveolar Palatal Velar
Nasal m n
Stop Voiceless p t k
Voiced b d g
Fricative Voiceless f s x (/ʃ/)
Voiced v z
Approximant l r (/ɹ/) y (/j/) (/w/)
Front Central Back
Close i u
Mid e r (/ɚ/) o
Open a

Each letter is pronounced like its IPA value unless otherwise noted. The letter ‹r› is a consonant when following a vowel and a vowel when following a consonant.

The syllable structure of rname is (x)CV(G)(K). Here, C represents any consonant except /w/ and V represents any vowel. G can be /j/ or /w/, where they are written ‹i› and ‹u›, or the consonants /m/, /n/, or /l/, written normally. Finally, K represents the stops /p/, /t/, or /k/, written normally.

The Algorithm

Primorial inflation

The primorial of a prime p, p#, is defined to be the product of all primes less than or equal to p. The primorial inflation, here also denoted #, is defined to be a fully multiplicative function equal to the primorial on the primes. The range of primorial inflation is the set of Hardy-Ramanujan numbers (A025487, the numbers such that the exponents on successive primes in their prime factorization are decreasing. Primorial inflation is injective, so we can define an restricted inverse on Hardy-Ramanujan numbers, the primorial deflation.

Recursive base primorial

Recursive base primorial is a positional numeral system used to construct the names of exponents and large primes in rname. In recursive base primorial, the rightmost digit has a place value of 1 and takes values in the interval [0,2), the next digit has a place value of 2# and takes values in the interval [0,3), and so on, where the nth digit's positional value (starting from 0) is the product of the first n primes, and can take values up to but not including the (n+1)st prime (its ratio). Some of the least significant digits can be compressed into a single digit. If the ratio of a digit is greater than 30, the digit is replaced with a sequence of digits, again in recursive base primorial, whose length is sufficient to represent all possible values of that digit, where when used in rname have the 3 rightmost digits compressed into one. After all digits have been replaced with their recursive base primorial representations, leading zeros can be removed from the number.

The steps

The rname algorithm works via recursive decomposition of the number into its factors, followed by a series of modifications applied to the name. Given a number n, the steps to compute its rname are presented below.
  1. If n is 0, its rname is «mu». Do not apply any more steps.
  2. If n = 2e, take the current rname to be «2e» and proceed to step 4. Otherwise, if n is Hardy-Ramanujan, take the current rname to be «x m», where m is the primorial deflation of n (i.e. m# = n). The prefix x takes the primorial inflation of the part of the name to its right.
  3. Otherwise, n can be factored into two components: the primorial part and the non-primorial part, where the primorial part is the largest Hardy-Ramanujan divisor of n. The non-primorial part of n is factored as p1e1p2e2pkek, where the list of pi are distinct and decreasing. Then, apply steps 2-3 recursively to the primorial part. Then, the current rname of n is the factorization of the non-primorial part, «p1e1 p2e2pkek», followed by the current rname of the primorial part.
  4. Replace every string of e ≥ 1 consecutive «x» affixes with «xe».
  5. If any substring at the right end of the rname has a value equal to the eth power of any number k in the table of roots marked with an H for e ≥ 1, replace that segment of the name with «ke». You may not split any exponent expression into smaller expressions.
  6. If any substring anywhere in the rname has a value equal to the eth power of any number k in the table of roots marked with a C for e ≥ 1, replace that segment of the name with «ke». You may not split any exponent expression into smaller expressions.
  7. If any exponent expression in the rname has a value present in the table (those marked with E), replace the exponent expression with that single number.
  8. Each exponent equal to 1 should be removed. Each remaining exponent should be written as a prefix, consisting of the left bracket «sa» (if the exponent is greater than 30), followed by the exponent in recursive base primorial with the rightmost 3 digits compressed, followed by the exponent head «r». Each digit is written with the root from the table.
  9. Each numerical root less than 210 should be written using the corresponding root in the table.
  10. Each numerical root greater than 210 should be written as a compound root, consisting of the left bracket «sa» (if the prime is greater than 2310), followed by the exponent in recursive base primorial with the rightmost 4 digits compressed, where each digit is written with the root from the table. If the final digit's root ends in ‹m›, append the prime head «p». If the final digit's root ends in ‹n› or ‹l›, append the prime head «t». Otherwise, it ends in a vowel, so append the prime head «k».
  11. The tail bracket «sa» can be removed when at the beginning of a word or immediately following the exponent head «r» or the primorial prefix «x».
  12. If the primorial prefix «x» is immediately followed by the consonants ‹b›, ‹d›, ‹g›, ‹f›, ‹s›, ‹x›, ‹v›, ‹z›, or ‹y›, an, the primorial prefix should be written «xa». Optionally, if the primorial prefix precedes the root «ze» (value 11), they can contract to form «x'e».
  13. Every numerical root, except those that are the digits in a compound prime root or exponent, should be written with a hyphen following them, unless they are at the end of the rname.

The table

n Root n Root n Root n Root n Root n Root
0mu14Hdel28Hpau61dan109ken163sol
1Efi15Cfen29nen64Evu113zin167yem
2da16Ebo30Hfai67gai120Hgan169kin
3te17gau31soi71kau121zai173zil
4Eka18Hsai32Edo72Hmoi127gal179nim
5pe19xon36Esin73xai128Exi180Hxau
6Hse20Hven37mau79tai131yel181mom
7la21Cxel41yal83van137sen187toi
8Eyo22Hvam43sil89kom139sel191xum
9no23ful47foi96Hdau143yai192Hxol
10Hxu24Hga48Hboi97man144Evin193lun
11ze25Epin53sal101fel149bol197loi
12Hva26Hyau59kul103bim151kim199pai
13kal27Enai60Hbai107nel157lum209nun