.Machine
Machine Arithmetic Constants

Description

The object .Machine is a list with various named components defining particular parameters of machine arithmetic (described below). For example, double.digits is the number of base double.base digits in the floating point representation of a double-precision number. In addition, the component integer.max is the largest integer.

Arguments

double.eps The smallest positive floating-point number such that `1+eps != 1'. In particular, if either double.base == 2 or double.rounding == 0 , double.eps is double.base^double.ulp.digits . Otherwise, double.eps is (double.base^double.ulp.digits)/2 .
double.neg.eps A small positive floating-point number such that `1-double.neg.eps != 1'. In particular, if double.base == 2 or double.rounding == 0 , double.neg.eps is double.base^double.neg.ulp.digits . Otherwise, double.neg.eps is (double.base^double.neg.ulp.digits)/2 . Because double.neg.ulp/digits is bounded below by -(double.digits+3) , double.neg.eps may not be the smallest number that can alter 1 by subtraction.
double.xmin The smallest non-vanishing normalized floating-point power of the radix, i.e., double.xmin is double.base^double.min.exp .
double.xmax The largest finite floating-point number. In particular double.xmax is (1-double.neg.eps)*double.digits^double.max.exp . Note - on some machines double.xmax will be only the second, or perhaps third, largest number, being too small by 1 or 2 units in the last digit of the significand.
double.base the base for the floating-point representation.
double.digits The number of significant digits in the given base.
double.rounding The rounding action: 0 if floating-point addition chops; 1 if floating-point addition rounds, but not in the IEEE style; 2 if floating-point addition rounds in the IEEE style; 3 if floating-point addition chops, and there is partial underflow; 4 if floating-point addition rounds, but not in the IEEE style, and there is partial underflow; 5 if floating-point addition rounds in the IEEE style, and there is partial underflow.
double.guard The number of guard digits for multiplication with truncating arithmetic. It is 0 if floating-point arithmetic rounds, or if it truncates and only double.digits base double.base digits participate in the post-normalization shift of the floating-point significand in multiplication; 1 if floating-point arithmetic truncates and more than double.digits base double.base digits participate in the post-normalization shift of the floating-point significand in multiplication.
double.ulp.digits The largest negative integer such that `1+double.base^double.ulp.digits != 1', except that double.ulp.digits is bounded below by -(double.digits+3) .
double.neg.ulp.digits The largest negative integer such that `1-double.base^double.neg.ulp.digits != 1', except that double.neg.ulp.digits is bounded below by -(double.digits+3) .
double.exponent The number of bits (decimal places if double.base == 10) reserved for the representation of the exponent (including the bias or sign) of a floating-point number.
double.min.exp The largest in magnitude negative integer such that double.base^double.min.exp is positive and normalized.
double.max.exp The smallest positive power of double.base that overflows.
integer.max The largest integer that can be represented.
sizeof.long The size, in bytes, of the C long type.
sizeof.longlong The size, in bytes, of the C long long type.
sizeof.longdouble The size, in bytes, of the C long double type.
Source
Adapted from W. J. Cody, "MACHAR: A Subroutine to Dynamically Determine Machine Parameters," TOMS(14), 1988.
Examples
.Machine$integer.max  # largest integer 
Package base version 6.0.0-69
Package Index