コード例 #1
0
ファイル: qdim.c プロジェクト: xyuan/Path64
long double
__qdim( double uhi, double ulo, double vhi, double vlo )
{
ldquad	result;

#include "msg.h"


	if ( uhi != uhi )
	{
		result.q.hi = uhi;
		result.q.lo = ulo;

		return ( result.ld );
	}

	if ( vhi != vhi )
	{
		result.q.hi = vhi;
		result.q.lo = vlo;

		return ( result.ld );
	}

	if ( uhi > vhi )
		result.ld = __q_sub(uhi, ulo, vhi, vlo);
	else if ( (uhi == vhi) && (ulo > vlo) )
		result.ld = ulo - vlo;
	else
		result.ld = 0.0L;

	return ( result.ld );

}
コード例 #2
0
ファイル: qnint.c プロジェクト: manojxantony/compiler
long double
__qnint(double  uhi,double  ulo )
{
ldquad	result, y;


	if ( uhi != uhi )
	{
		result.q.hi = uhi;
		result.q.lo = ulo;

		return ( result.ld );
	}

	if ( uhi >= 0.0 )
	{
		y.ld = __q_add(uhi, ulo, 0.5, 0.0);	/* y = arg + 0.5 */
	}
	else
	{
		y.ld = __q_sub(uhi, ulo, 0.5, 0.0); /* y = arg - 0.5 */
	}

	result.ld = __qint(y.q.hi, y.q.lo);

	return (result.ld);
}