forsyth20121205-174063a80cc13 years agoHistory
35 lines · 519 B · C
RawDownload
#include "os.h"#include <mp.h>#include "dat.h" // prereq: alen >= blen, sum has at least blen+1 digitsvoidmpvecadd(mpdigit *a, int alen, mpdigit *b, int blen, mpdigit *sum){	int i, carry;	mpdigit x, y; 	carry = 0;	for(i = 0; i < blen; i++){		x = *a++;		y = *b++;		x += carry;		if(x < carry)			carry = 1;		else			carry = 0;		x += y;		if(x < y)			carry++;		*sum++ = x;	}	for(; i < alen; i++){		x = *a++ + carry;		if(x < carry)			carry = 1;		else			carry = 0;		*sum++ = x;	}	*sum = carry;}