/****************************************************************************** * * * COMPUTE 64-BIT SUM * * 11/13/06 (dkc) * * * ******************************************************************************/ unsigned int carry(unsigned int a, unsigned int b, unsigned int sum); void sum(unsigned int *a, unsigned int *b) { unsigned int high0,high1,low0,low1,templo,temphi,c; high0=*a; low0=*(a+1); high1=*b; low1=*(b+1); templo=low0+low1; c=carry(low0,low1,templo); temphi=high0+high1+c; *b=temphi; *(b+1)=templo; return; }