XMULT(
matrix1, matrix2 )
;
The XMULT function computes the matrix product like the matrix multiplication operator (*) except XMULT uses extended precision to accumulate sums of products. You should use the XMULT function only when you need great accuracy.
The following program uses the XMULT function:
a=1e13;
b=1e13;
c=100*a;
a=a+1;
x=c || a || b || c;
y=c || a || (-b) || (-c);
z=xmult(x,y`); /* correct answer */
print z [format=16.0];
wrong = x * y`; /* loss of precision */
print wrong [format=16.0];
Z
20000000000001
WRONG
19997367730176
Copyright © SAS Institute, Inc. All Rights Reserved.