11.001001000011111101101010100010001000 Arithmazium
Home

What Paranoia isn't

Paranoia diagnoses computer arithmetic, but it does not reverse engineer the underlying architecture. Paranoia does not attempt to discover the word sizes of values. It does not distinguish ones'-complement, two's-complement, and sign-magnitude representation of algebraic sign. (Just the difference in the placement of the apostrophes above is enough to make you suspicious.)

Most importantly, Paranoia does not inquire about the encoding of values. Readers familiar with floating point arithmetic and the IEEE standards know this a topic all its own. It's covered in Arithmetic.

Paranoia concerns itself with commercially relevant computers, so it does not look at any radix other than 2, 8, 10, or 16. And by the year 2000, octal and hexadecimal systems were designs of the past. Paranoia discovers logarithmic arithmetic, but the reporting is keyed to floating point. Log arithmetic appeared on specialized machines years ago and has found some new enthusiasts in the machine learning era.

Paranoia does not concern itself with the bindings of arithmetic features to programming languages. To be cast in standard Basic, and then ported to multiple other languages, Paranoia necessarily uses few sophisticated features. Aside from the basic four operations and comparisons, Paranoia uses common functions like abs(), sqrt(), pow(), and log(), and it depends on printing values in decimal.

Paranoia tests that integer values behave reasonably in scientific calculations, but it does not test the limits of a system's integer arithmetic.

Paranoia provides a richer analysis than an earlier Fortran program, MACHAR by William J. Cody, which provided runtime parameters to some library programs. But Paranoia does not leap to the axiomatic approach, such as in W. Stan Brown's paper A Simple but Realistic Model of Floating-Point Computation. Instead, Paranoia provides a specific set of findings to inform a single software port from one computer to another. This is more tractable than a port to a hypothetical design suffering the sum of all numerical failings.

Finally, a word about architectures of the 2020s. Paranoia diagnoses a system's arithmetic for use across the panoply of scientific, engineering, financial, and student applications. In the brave new world of graphics accelerators and machine learning, highly parallelized custom processors support specialized applications characterized by features like

Paranoia does not necessarily ask the right questions for this specialized realm, and it may require significant change to run in such an environment.

Home