Lines Matching refs:result
59 ValueWithRealFlags<Real> result; in Add() local
61 result.value = NotANumber(); // NaN + x -> NaN in Add()
63 result.flags.set(RealFlag::InvalidArgument); in Add()
65 return result; in Add()
72 result.value = *this; // +/-Inf + +/-Inf -> +/-Inf in Add()
74 result.value = NotANumber(); // +/-Inf + -/+Inf -> NaN in Add()
75 result.flags.set(RealFlag::InvalidArgument); in Add()
78 result.value = *this; // +/-Inf + x -> +/-Inf in Add()
80 return result; in Add()
83 result.value = y; // x + +/-Inf -> +/-Inf in Add()
84 return result; in Add()
101 result.value = NegativeZero(); in Add()
103 return result; in Add()
132 result, isNegative, exponent, fraction, rounding, roundingBits); in Add()
133 return result; in Add()
139 ValueWithRealFlags<Real> result; in Multiply() local
141 result.value = NotANumber(); // NaN * x -> NaN in Multiply()
143 result.flags.set(RealFlag::InvalidArgument); in Multiply()
149 result.value = NotANumber(); // 0 * Inf -> NaN in Multiply()
150 result.flags.set(RealFlag::InvalidArgument); in Multiply()
152 result.value = Infinity(isNegative); in Multiply()
189 NormalizeAndRound(result, isNegative, exponent, product.upper, rounding, in Multiply()
193 return result; in Multiply()
199 ValueWithRealFlags<Real> result; in Divide() local
201 result.value = NotANumber(); // NaN / x -> NaN, x / NaN -> NaN in Divide()
203 result.flags.set(RealFlag::InvalidArgument); in Divide()
209 result.value = NotANumber(); // Inf/Inf -> NaN in Divide()
210 result.flags.set(RealFlag::InvalidArgument); in Divide()
212 result.value = Infinity(isNegative); in Divide()
216 result.value = NotANumber(); in Divide()
217 result.flags.set(RealFlag::InvalidArgument); in Divide()
219 result.value = Infinity(isNegative); in Divide()
220 result.flags.set(RealFlag::DivideByZero); in Divide()
224 result.value = NegativeZero(); in Divide()
258 result, isNegative, exponent, quotient, rounding, roundingBits); in Divide()
261 return result; in Divide()
266 ValueWithRealFlags<Real> result; in SQRT() local
268 result.value = NotANumber(); in SQRT()
270 result.flags.set(RealFlag::InvalidArgument); in SQRT()
275 result.value = NegativeZero(); in SQRT()
277 result.flags.set(RealFlag::InvalidArgument); in SQRT()
278 result.value = NotANumber(); in SQRT()
282 result.value = Infinity(false); in SQRT()
284 result.value = PositiveZero(); in SQRT()
295 result = scaled.SQRT(rounding); in SQRT()
296 result.value.Normalize(false, in SQRT()
297 result.value.UnbiasedExponent() + adjust + exponentBias, in SQRT()
298 result.value.GetFraction()); in SQRT()
299 return result; in SQRT()
323 NormalizeAndRound(result, false, exponentBias, in SQRT()
327 return result; in SQRT()
332 ValueWithRealFlags<Real> result; in NEAREST() local
361 result.flags = result.value.Normalize(isNegative, expo, nearest); in NEAREST()
363 result.flags.set(RealFlag::InvalidArgument); in NEAREST()
364 result.value = *this; in NEAREST()
366 return result; in NEAREST()
377 ValueWithRealFlags<Real> result; in HYPOT() local
379 result.flags.set(RealFlag::InvalidArgument); in HYPOT()
380 result.value = NotANumber(); in HYPOT()
384 return result; // x==y==0 in HYPOT()
396 result = sqrt.value.Multiply(ABS(), rounding); in HYPOT()
398 result.flags.set(RealFlag::Inexact); in HYPOT()
401 return result; in HYPOT()
408 ValueWithRealFlags<Real> result; in MOD() local
415 result.value = Real{}.Negate(); // -0. in MOD()
418 Real toInt{quotient.AccumulateFlags(result.flags) in MOD()
420 .AccumulateFlags(result.flags)}; in MOD()
421 Real product{toInt.Multiply(y, rounding).AccumulateFlags(result.flags)}; in MOD()
422 result.value = Subtract(product, rounding).AccumulateFlags(result.flags); in MOD()
424 return result; in MOD()
431 ValueWithRealFlags<Real> result; in MODULO() local
438 result.value = Real{}.Negate(); // -0. in MODULO()
441 Real toInt{quotient.AccumulateFlags(result.flags) in MODULO()
443 .AccumulateFlags(result.flags)}; in MODULO()
444 Real product{toInt.Multiply(y, rounding).AccumulateFlags(result.flags)}; in MODULO()
445 result.value = Subtract(product, rounding).AccumulateFlags(result.flags); in MODULO()
447 return result; in MODULO()
453 ValueWithRealFlags<Real> result; in DIM() local
455 result.flags.set(RealFlag::InvalidArgument); in DIM()
456 result.value = NotANumber(); in DIM()
458 result = Subtract(y, rounding); in DIM()
462 return result; in DIM()
468 ValueWithRealFlags<Real> result{*this}; in ToWholeNumber() local
470 result.flags.set(RealFlag::InvalidArgument); in ToWholeNumber()
471 result.value = NotANumber(); in ToWholeNumber()
473 result.flags.set(RealFlag::Overflow); in ToWholeNumber()
480 result = Add(adjust, Rounding{mode}); in ToWholeNumber()
481 result.flags.reset(RealFlag::Inexact); // result *is* exact in ToWholeNumber()
483 result.value = in ToWholeNumber()
484 result.value.Subtract(adjust, Rounding{common::RoundingMode::ToZero}) in ToWholeNumber()
488 return result; in ToWholeNumber()
593 void Real<W, P>::NormalizeAndRound(ValueWithRealFlags<Real> &result, in NormalizeAndRound() argument
596 result.flags |= result.value.Normalize( in NormalizeAndRound()
598 result.flags |= result.value.Round(rounding, roundingBits, multiply); in NormalizeAndRound()
619 RealFlags result; in MapFlags() local
621 result.set(RealFlag::Overflow); in MapFlags()
624 result.set(RealFlag::Inexact); in MapFlags()
627 result.set(RealFlag::InvalidArgument); in MapFlags()
629 return result; in MapFlags()
652 std::string result{"0x"}; in DumpHexadecimal() local
654 result += intPart; in DumpHexadecimal()
655 result += '.'; in DumpHexadecimal()
658 result += '0'; in DumpHexadecimal()
669 result += std::string(field - fracHex.size(), '0'); in DumpHexadecimal()
671 result += fracHex; in DumpHexadecimal()
674 result += frac.SHIFTR(trailz) in DumpHexadecimal()
680 result += 'p'; in DumpHexadecimal()
685 result += Integer<32>{exponent}.SignedDecimal(); in DumpHexadecimal()
686 return result; in DumpHexadecimal()
710 auto result{decimal::ConvertToDecimal<P>(buffer, sizeof buffer, flags, in AsFortran() local
712 const char *p{result.str}; in AsFortran()
716 int expo{result.decimalExponent}; in AsFortran()
736 Real result; in RRSPACING() local
737 result.Normalize(false, binaryPrecision + exponentBias - 1, GetFraction()); in RRSPACING()
738 return result; in RRSPACING()
751 Real result; in SPACING() local
752 result.Normalize( in SPACING()
754 return result; in SPACING()
768 Real result; in SET_EXPONENT() local
769 result.Normalize(IsNegative(), expo + exponentBias - 1, GetFraction()); in SET_EXPONENT()
770 return result; in SET_EXPONENT()