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

📄 ldexp.c

📁 基于4个mips核的noc设计
💻 C
字号:
/* * lib-src/ansi/math/ldexp.c * ANSI/ISO 9899-1990, Section 7.5.4.3. * * double ldexp (float x, int exp) * Return (x * 2 ^ exp). * * Exceptions: *	EDOM	NaN		x is NaN *	ERANGE	[+-]Infinity	overflow *	ERANGE	0.0		underflow *	none	[+-]Infinity	x is [+-]Infinity * * This source assumes IEEE-format doubles but does not deal with denormals. */#include "mathlib.h"#if	defined(__IEEE_FP__)doubleldexp(double x, int exp){	DOUBLE u;	int olde;		/* NaN, [+-]Infinity: domain error, return x. */	if (_isNaN(x)) {		errno = EDOM;		return x;		/* NaN: domain error, return NaN */	} else if (_isInfinity(x))		return x;		/* [+-]Infinity: no error, return [+-]Infinity */	/* Nothing to do if exp is zero or if x is zero. */	if (exp == 0 || x == 0.0)		return x;	/* Extract the current unbiased exponent. */	u.d = x;	olde = u.D.exponent - EXP_BIAS;	/* Watch out for exponent overflow or underflow. */	if (exp + olde > DBL_MAX_EXP - 1) {		/* overflow */		errno = ERANGE;		return (x < 0) ? _mInfinity : _pInfinity;	} else if (exp + olde < DBL_MIN_EXP - 1) {	/* underflow */		errno = ERANGE;		return 0.0;	}	u.D.exponent = olde + exp + EXP_BIAS;	return u.d;}#else#error	!defined(__IEEE_FP__)#endif	/* defined(__IEEE_FP__) */

⌨️ 快捷键说明

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