/* int _AddUnsArrToUnsArr(src1,src2,dst,n) * * ARGUMENT * unsigned *src1, *src2, *dst; * unsigned n; * * DESCRIPTION * Adds src1 to src2 giving dst. src1 and src2 are unchanged. * Src1, src2 and dst point to unsigned arrays. * * SIDE EFFECTS * * * RETURNS * GM_SUCCESS if no overflow, otherwise GM_FAILURE. * * AUTHOR * Brugnoli Giugno 1992 * * MODIFICATIONS * */ #include #include #include "gm.h" #include "gmsystem.h" int _AddUnsArrToUnsArr(src1, src2, dst, n) unsigned SHORT src1[], src2[], dst[]; int n; { int i; unsigned long pdst; unsigned carry = 0; if (n>0) { for (i=0;iMAXUNSINT) { carry=(unsigned)(pdst >> BITSPERUI ); dst[i]=(unsigned SHORT )(pdst & MAXUNSINT ); } else { carry=0; dst[i]=(unsigned SHORT)pdst; } } if (dst[n-1]>>(BITSPERUI-1)) return(GM_FAILURE); } return(GM_SUCCESS); }