xref: /plan9/sys/src/cmd/unix/drawterm/libmp/mpcmp.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1*8ccd4a63SDavid du Colombier #include "os.h"
2*8ccd4a63SDavid du Colombier #include <mp.h>
3*8ccd4a63SDavid du Colombier #include "dat.h"
4*8ccd4a63SDavid du Colombier 
5*8ccd4a63SDavid du Colombier // return 1, 0, -1 as abs(b1)-abs(b2) is neg, 0, pos
6*8ccd4a63SDavid du Colombier int
mpmagcmp(mpint * b1,mpint * b2)7*8ccd4a63SDavid du Colombier mpmagcmp(mpint *b1, mpint *b2)
8*8ccd4a63SDavid du Colombier {
9*8ccd4a63SDavid du Colombier 	int i;
10*8ccd4a63SDavid du Colombier 
11*8ccd4a63SDavid du Colombier 	i = b1->top - b2->top;
12*8ccd4a63SDavid du Colombier 	if(i)
13*8ccd4a63SDavid du Colombier 		return i;
14*8ccd4a63SDavid du Colombier 
15*8ccd4a63SDavid du Colombier 	return mpveccmp(b1->p, b1->top, b2->p, b2->top);
16*8ccd4a63SDavid du Colombier }
17*8ccd4a63SDavid du Colombier 
18*8ccd4a63SDavid du Colombier // return neg, 0, pos as b1-b2 is neg, 0, pos
19*8ccd4a63SDavid du Colombier int
mpcmp(mpint * b1,mpint * b2)20*8ccd4a63SDavid du Colombier mpcmp(mpint *b1, mpint *b2)
21*8ccd4a63SDavid du Colombier {
22*8ccd4a63SDavid du Colombier 	if(b1->sign != b2->sign)
23*8ccd4a63SDavid du Colombier 		return b1->sign - b2->sign;
24*8ccd4a63SDavid du Colombier 	if(b1->sign < 0)
25*8ccd4a63SDavid du Colombier 		return mpmagcmp(b2, b1);
26*8ccd4a63SDavid du Colombier 	else
27*8ccd4a63SDavid du Colombier 		return mpmagcmp(b1, b2);
28*8ccd4a63SDavid du Colombier }
29