gawk: Checking for MPFR
15.6 How To Check If MPFR Is Available
======================================
Occasionally, you might like to be able to check if 'gawk' was invoked
with the '-M' option, enabling arbitrary-precision arithmetic. You can
do so with the following function, contributed by Andrew Schorr:
# adequate_math_precision --- return true if we have enough bits
function adequate_math_precision(n)
{
return (1 != (1+(1/(2^(n-1)))))
}
Here is code that invokes the function in order to check if
arbitrary-precision arithmetic is available:
BEGIN {
# How many bits of mantissa precision are required
# for this program to function properly?
fpbits = 123
# We hope that we were invoked with MPFR enabled. If so, the
# following statement should configure calculations to our desired
# precision.
PREC = fpbits
if (! adequate_math_precision(fpbits)) {
print("Error: insufficient computation precision available.\n" \
"Try again with the -M argument?") > "/dev/stderr"
# Note: you may need to set a flag here to bail out of END rules
exit 1
}
}
Please be aware that 'exit' will jump to the 'END' rules, if present
(Exit Statement).