manpagez: man pages & more
info gawk
Home | html | info | man

File: gawk.info,  Node: Checking for MPFR,  Next: POSIX Floating Point Problems,  Prev: Arbitrary Precision Integers,  Up: Arbitrary Precision Arithmetic

16.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
(*note Exit Statement::).

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.