27 lines
648 B
C
27 lines
648 B
C
|
/*
|
||
|
(c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||
|
See the copyright notice in the ACK home directory, in the file "Copyright".
|
||
|
*/
|
||
|
|
||
|
/* $Header$ */
|
||
|
|
||
|
#include "misc.h"
|
||
|
|
||
|
int
|
||
|
flt_cmp(e1, e2)
|
||
|
register flt_arith *e1, *e2;
|
||
|
{
|
||
|
int sign = e1->flt_sign ? -1 : 1;
|
||
|
int tmp;
|
||
|
|
||
|
if (e1->flt_sign > e2->flt_sign) return -1;
|
||
|
if (e1->flt_sign < e2->flt_sign) return 1;
|
||
|
if (e1->flt_exp < e2->flt_exp) return -sign;
|
||
|
if (e1->flt_exp > e2->flt_exp) return sign;
|
||
|
if ((tmp = ucmp(e1->m1, e2->m1)) < 0) return -sign;
|
||
|
if (tmp > 0) return sign;
|
||
|
if ((tmp = ucmp(e1->m2, e2->m2)) < 0) return -sign;
|
||
|
if (tmp > 0) return sign;
|
||
|
return 0;
|
||
|
}
|