template HALF_CONSTEXPR_NOERR unsigned int rounded()

in include/half.hpp [820:839]


		template<std::float_round_style R,bool I> HALF_CONSTEXPR_NOERR unsigned int rounded(unsigned int value, int g, int s)
		{
		#if HALF_ERRHANDLING
			value +=	(R==std::round_to_nearest) ? (g&(s|value)) :
						(R==std::round_toward_infinity) ? (~(value>>15)&(g|s)) :
						(R==std::round_toward_neg_infinity) ? ((value>>15)&(g|s)) : 0;
			if((value&0x7C00) == 0x7C00)
				raise(FE_OVERFLOW);
			else if(value & 0x7C00)
				raise(FE_INEXACT, I || (g|s)!=0);
			else
				raise(FE_UNDERFLOW, !(HALF_ERRHANDLING_UNDERFLOW_TO_INEXACT) || I || (g|s)!=0);
			return value;
		#else
			return	(R==std::round_to_nearest) ? (value+(g&(s|value))) :
					(R==std::round_toward_infinity) ? (value+(~(value>>15)&(g|s))) :
					(R==std::round_toward_neg_infinity) ? (value+((value>>15)&(g|s))) :
					value;
		#endif
		}