xref: /plan9/sys/src/cmd/unix/drawterm/libmp/mpveccmp.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1 #include "os.h"
2 #include <mp.h>
3 #include "dat.h"
4 
5 // prereq: alen >= blen
6 int
mpveccmp(mpdigit * a,int alen,mpdigit * b,int blen)7 mpveccmp(mpdigit *a, int alen, mpdigit *b, int blen)
8 {
9 	mpdigit x;
10 
11 	while(alen > blen)
12 		if(a[--alen] != 0)
13 			return 1;
14 	while(blen > alen)
15 		if(b[--blen] != 0)
16 			return -1;
17 	while(alen > 0){
18 		--alen;
19 		x = a[alen] - b[alen];
20 		if(x == 0)
21 			continue;
22 		if(x > a[alen])
23 			return -1;
24 		else
25 			return 1;
26 	}
27 	return 0;
28 }
29