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

📄 noncephes.c

📁 linux下用PCMCIA无线网卡虚拟无线AP的程序源码
💻 C
字号:
/* * This file contains math functions missing from the Cephes library. * * May 22, 2001         Manuel Novoa III * *    Added modf and fmod. * * TODO: *    Break out functions into seperate object files as is done *       by (for example) stdio.  Also do this with cephes files. */#include <math.h>#include <errno.h>#undef UNK/* Set this to nonzero to enable a couple of shortcut tests in fmod. */#define SPEED_OVER_SIZE 0/**********************************************************************/double modf(double x, double *iptr){	double y;#ifdef UNK	mtherr( "modf", DOMAIN );	*iptr = NAN;	return NAN;#endif#ifdef NANS	if( isnan(x) ) {		*iptr = x;		return x;	}#endif#ifdef INFINITIES	if(!isfinite(x)) {		*iptr = x;				/* Matches glibc, but returning NAN */		return 0;				/* makes more sense to me... */	}#endif	if (x < 0) {				/* Round towards 0. */		y = ceil(x);	} else {		y = floor(x);	}	*iptr = y;	return x - y;}/**********************************************************************/extern double NAN;double fmod(double x, double y){	double z;	int negative, ex, ey;#ifdef UNK	mtherr( "fmod", DOMAIN );	return NAN;#endif#ifdef NANS	if( isnan(x) || isnan(y) ) {		errno = EDOM;		return NAN; 	}#endif	if (y == 0) {		errno = EDOM;		return NAN; 	}#ifdef INFINITIES	if(!isfinite(x)) {		errno = EDOM;		return NAN;	}#if SPEED_OVER_SIZE	if(!isfinite(y)) {		return x;	}#endif#endif#if SPEED_OVER_SIZE	if (x == 0) {		return 0;	}#endif	negative = 0;	if (x < 0) {		negative = 1;		x = -x;	}	if (y < 0) {		y = -y;	}	frexp(y,&ey);	while (x >= y) {		frexp(x,&ex);		z = ldexp(y,ex-ey);		if (z > x) {			z /= 2;		}		x -= z;	}	if (negative) {		return -x;	} else {		return x;	}}

⌨️ 快捷键说明

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