As a function, it rounds its argument to the nearest number that can be written
as the sum of two double precision numbers.
The algorithm used to compute doubledouble(x) is the following: let xh = double(x)
and let xl = double(x - xh). Return the number xh + xl. Note that if the current
precision is not sufficient to exactly represent xh + xl, a rounding will occur
and the result of doubledouble(x) will be useless.
As a constant, it symbolizes the double-double precision format. It is used in
contexts when a precision format is necessary, e.g. in the commands
round, roundcoefficients and implementpoly.
See the corresponding help pages for examples.
Example 1:
> verbosity=1!;
> a = 1+ 2^(-100);
> DD(a);
1.0000000000000000000000000000007888609052210118054
> prec=50!;
> DD(a);
Warning: double rounding occurred on invoking the double-double rounding operator.
Try to increase the working precision.
1