Hypercalc is a Perl program written by Robert Munafo[1][2] that is designed to manipulate very large numbers by storing them in a notation called "PT vectors", in which \(m \text{PT} n = 10^{10^{10^{.^{.^{.^{n}}}}}}\) with m 10's. It is licensed under the GNU General Public License, and operates through a terminal interface. The calculator can handle values up to (10^10) PT 1.0e300, or about \(10\uparrow\uparrow10^{10}\), much higher than most scientific calculators. For dealing with such large numbers, the power-tower paradox is observed.
The calculator was first programmed on a Palm Pilot, before it was ported to Perl. The upper limit on that platform was smaller, at 32,768 PT 300.
PT operator[]
"PT" stands for "Powers of Ten".[3] All expressions that can be expressed within limits in Hypercalc use only one PT sign. Despite this, it is useful to make the PT operator left-associative as it leads to higher growth rates.
a PT b is equal to Eb#a in Hyper-E notation by identical definition.
One useful property of the PT operator is that a PT (b PT c) = (a+b) PT c.
Hypercalc BASIC[]
Hypercalc implements a simplified version of the BASIC programming language. It supports variable assignment, printing, for-next loops, and rem statements. However, it does not include conditional statements (if/then/else), subroutines, or user-defined functions. To display the help message, type 'help basic'. Here is an example code to calculate mega which is provided in the help documentation.
5 ' Calculate Hugo Steinhaus' number "Mega" 10 let mega=256; 20 for n=1 to 256; 40 let mega = mega ^ mega; 80 next n 160 print "Mega = "; mega 320 end
JavaScript version[]
Kenny Chan created an online version[4] by porting the program to JavaScript. The limit of the online program is higher than the Perl version, and it's \(10\uparrow\uparrow(2^{1024})\) or approximately \(10^{308} PT 10^{34}\).