Routines (alphabetical) > Routines: M > MACHAR

# MACHAR

The MACHAR function determines and returns machine-specific parameters affecting floating-point arithmetic. Information is returned in the form of a structure with the fields listed in the “Return Value” section.

MACHAR is based on the routine `machar` described in section 20.1 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission. See that section for more details on and sample values of the various parameters returned.

## Syntax

Result = MACHAR( [, /DOUBLE] )

## Return Value

The following table lists the fields in the structure returned from the MACHAR function:

Field Name | Description
IBETA | The radix in which numbers are represented. A longword integer.
IT | The number of base-IBETA digits in the floating-point mantissa M. A longword integer.
IRND | A code in the range 0 – 5 giving information on what type of rounding is done and how underflow is handled. A longword integer.
NGRD | The number of “guard digits” used when truncating the product of two mantissas. A longword integer.
MACHEP | The exponent of the smallest power of IBETA that, added to 1.0, gives something different from 1.0. A longword integer.
NEGEP | The exponent of the smallest power of IBETA that, subtracted from 1.0, gives something different from 1.0. A longword integer.
IEXP | The number of bits in the exponent. A longword integer.
MINEXP | The smallest value of IBETA consistent with there being no leading zeros in the mantissa. A longword integer.
MAXEXP | The smallest positive value of IBETA that causes overflow. A longword integer.
EPS | The floating-point number IBETAMACHEP, loosely referred to as the “floating-point precision.”
EPSNEG | The floating-point number IBETANEGEP, which is another way of determining floating-point precision.
XMIN | The floating-point number IBETAMINEXP, generally the magnitude of the smallest usable floating-point value.
XMAX | The largest usable floating-point value, defined as the number (1-EPSNEG)xIBETAMAXEXP.

## Arguments

None

## Keywords

### DOUBLE

The information returned is normally for single-precision floating-point arithmetic. Specify DOUBLE to see double-precision information.

## Version History

4.0 | Introduced

## See Also

CHECK_MATH, !VALUES