This long page describes the Paranoia report. Specific numeric values are given with their variable names. The intent of Paranoia is that users will dive into the code when problems arise. Identifying the most interesting variables offers some encouragement.
def characteristics():
"""Explain whtat the program reveals"""
chars = [
"Running this program should reveal these characteristics:",
" Radix B = 1, 2, 4, 8, 10, 16, 100, 256 ...",
" PRECISION = number of significant digits carried.",
" ULP_OF_ONE_PLUS = B/B^PRECISION = One Ulp",
" (Unit in the Last Place) of 1.000xxx .",
" ULP_OF_ONE_MINUS = 1/B^PRECISION = One Ulp",
" of numbers a little less than 1.0 .",
" Presence of guard digits for Mult., Div. and Subt.",
" Whether arithmetic is chopped, correctly rounded, or",
" something else for Mult., Div., Add/Subt. and Sqrt.",
" Whether a sticky bit is used correctly in rounding.",
" underflow_threshold = an underflow threshold.",
" min_positive and too_tiny_x tell whether underflow is",
" abrupt, gradual, or fuzzy.",
" overflow_threshold = an overflow threshold, roughly.",
" pos_big_B tells, roughly, whether Infinity is represented.",
" Comparisons are checked for consistency with subtraction",
" and for contamination with pseudo-zeros.",
" Sqrt is tested. Y^X is tested for integer X.",
" Extra-precise subexpressions are revealed but NOT YET tested.",
" Decimal-Binary conversion is NOT YET tested for accuracy."
]
print_msgs(chars)
return