37 lines
		
	
	
	
		
			676 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			676 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$ */
 | |
| 
 | |
| /*
 | |
| 	SEPERATE INTO EXPONENT AND FRACTION (FEF 4)
 | |
| */
 | |
| 
 | |
| #include	"FP_types.h"
 | |
| 
 | |
| struct	fef4_returns {
 | |
| 	int	e;
 | |
| 	_float	f;
 | |
| };
 | |
| 
 | |
| fef4(r,s1)
 | |
| _float	s1;
 | |
| struct fef4_returns	*r;
 | |
| {
 | |
| 	EXTEND	buf;
 | |
| 	register struct fef4_returns	*p = r;	/* make copy; r might refer
 | |
| 						   to itself (see table)
 | |
| 						*/
 | |
| 
 | |
| 	extend((_double *) &s1,&buf,sizeof(_float));
 | |
| 	if (buf.exp == 0 && buf.m1 == 0 && buf.m2 == 0) {
 | |
| 		p->e = 0;
 | |
| 	}
 | |
| 	else {
 | |
| 		p->e = buf.exp+1;
 | |
| 		buf.exp = -1;
 | |
| 	}
 | |
| 	compact(&buf,(_double *) &p->f,sizeof(_float));
 | |
| }
 |