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,
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
log()
Paranoia does not necessarily ask the right questions for this specialized realm, and it may require significant change to run in such an environment.