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

📄 flrtstl.c

📁 128位长双精度型数字运算包
💻 C
字号:
long double floorl(), ldexpl(), frexpl();main(){long double x, f, y, last, z, z0;int i, k, e, e0, errs;errs = 0;f = 0.1L;x = f;last = x;z0 = frexpl( x, &e0 );printf( "frexpl(%.2e) = %.5e, %d\n", (double)x, (double)z0, e0 );k = 0;for( i=0; i<1029; i++ )	{	y = ldexpl( f, k );	if( y != x )		{		printf( "ldexpl(%.1e, %d) = %.5e, s.b. %.5e\n",			(double)f, k, (double)y, (double)x );		++errs;		}	z = frexpl( y, &e );	if( (e != k+e0) || (z != z0)  )		{		printf( "frexpl(%.1e) = %.5e, %d; s.b. %.5e, %d\n",			(double)y, (double)z, e, (double)z0, k+e0 );		++errs;		}	x += x;	if( x == last )		break;	last = x;	k += 1;	}printf( "i = %d\n", k );prnum( "last y =", &y );f = 0.1L;x = f;last = x;k = 0;for( i=0; i<1074; i++ )	{	y = ldexpl( f, k );	if( y != x )		{		printf( "ldexpl(%.1e, %d) = %.5e, s.b. %.5e\n",			(double)f, k, (double)y, (double)x );		++errs;		}	z = frexpl( y, &e );	if( (e > -1023)	 && ((e != k+e0) || (z != z0))  )		{		printf( "frexpl(%.1e) = %.5e, %d; s.b. %.5e, %d\n",			(double)y, (double)z, e, (double)z0, k+e0 );		++errs;		}	x *= 0.5L;	if( x == last )		break;	last = x;	k -= 1;	}printf( "i = %d\n", k );prnum( "last y =", &y );printf( "%d errors\n", errs );}prnum(str, x)char *str;unsigned short *x;{int i;printf( "%s ", str );printf( "%.5e\n", (double)(*(long double *)x) );for( i=0; i<4; i++ )	printf( "%04x ", *x++ );}

⌨️ 快捷键说明

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