⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modf.c

📁 MIPS处理器的bootloader,龙芯就是用的修改过的PMON2
💻 C
字号:
/* * ./modf.c : stdlib function * Copyright (c) 1992 Algorithmics Ltd. */#include <math.h>#define BITSPERBYTE 8#define BITS(type)  (BITSPERBYTE * (int)sizeof(type))#define LONGBITS    BITS(long)#define DOUBLEBITS  BITS(double)#define _IEEE       1#define _DEXPLEN    11#define _FEXPLEN    8#define _HIDDENBIT  1#define DSIGNIF     (DOUBLEBITS - _DEXPLEN + _HIDDENBIT - 1)#define DMAXPOWTWO  ((double)(1L << (LONGBITS -2))*(1L << (DSIGNIF - LONGBITS +1)))#if _IEEE == 1#if defined (__NO_FLOAT)doublemodf (double d, double *ipart){    abort ();}#elif defined (__SOFT_FLOAT) || defined(__SINGLE_FLOAT)#include <ieee754.h>doublemodf (double d, double *ipart){    ieee754dp sd, sipart, srv;    sd.d = d;    srv = ieee754dp_modf(sd, &sipart);    *ipart = sipart.d;    return srv.d;}#else#include <math.h>double modf(double d, double *ipart){    double absval;        absval = fabs(d);    if( absval >= DMAXPOWTWO) {	*ipart = d;	return 0.0;    } else {	double ival = absval;		ival += DMAXPOWTWO;	ival -= DMAXPOWTWO;		while(ival > absval)	  ival -= 1.0;	if(d < 0)	  ival = -ival;	*ipart = ival;	return d - ival;    }}#endif /* __SOFT_FLOAT */#endif /* _IEEE == 1 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -