Lines Matching defs:std

52 inline std::pair<DigitsT, int16_t> getRounded(DigitsT Digits, int16_t Scale,
54 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
59 return std::make_pair(DigitsT(1) << (getWidth<DigitsT>() - 1), Scale + 1);
60 return std::make_pair(Digits, Scale);
64 inline std::pair<uint32_t, int16_t> getRounded32(uint32_t Digits, int16_t Scale,
70 inline std::pair<uint64_t, int16_t> getRounded64(uint64_t Digits, int16_t Scale,
79 inline std::pair<DigitsT, int16_t> getAdjusted(uint64_t Digits,
81 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
84 if (Width == 64 || Digits <= std::numeric_limits<DigitsT>::max())
85 return std::make_pair(Digits, Scale);
94 inline std::pair<uint32_t, int16_t> getAdjusted32(uint64_t Digits,
100 inline std::pair<uint64_t, int16_t> getAdjusted64(uint64_t Digits,
108 std::pair<uint64_t, int16_t> multiply64(uint64_t LHS, uint64_t RHS);
114 inline std::pair<DigitsT, int16_t> getProduct(DigitsT LHS, DigitsT RHS) {
115 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
124 inline std::pair<uint32_t, int16_t> getProduct32(uint32_t LHS, uint32_t RHS) {
129 inline std::pair<uint64_t, int16_t> getProduct64(uint64_t LHS, uint64_t RHS) {
138 std::pair<uint64_t, int16_t> divide64(uint64_t Dividend, uint64_t Divisor);
145 std::pair<uint32_t, int16_t> divide32(uint32_t Dividend, uint32_t Divisor);
153 std::pair<DigitsT, int16_t> getQuotient(DigitsT Dividend, DigitsT Divisor) {
154 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
160 return std::make_pair(0, 0);
162 return std::make_pair(std::numeric_limits<DigitsT>::max(), MaxScale);
170 inline std::pair<uint32_t, int16_t> getQuotient32(uint32_t Dividend,
176 inline std::pair<uint64_t, int16_t> getQuotient64(uint64_t Dividend,
188 inline std::pair<int32_t, int> getLgImpl(DigitsT Digits, int16_t Scale) {
189 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
192 return std::make_pair(INT32_MIN, 0);
200 return std::make_pair(Floor, 0);
205 return std::make_pair(Floor + Round, Round ? 1 : -1);
252 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
288 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
307 int32_t ShiftL = std::min<int32_t>(countLeadingZeros(LDigits), ScaleDiff);
332 std::pair<DigitsT, int16_t> getSum(DigitsT LDigits, int16_t LScale,
334 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
347 return std::make_pair(Sum, Scale);
351 return std::make_pair(HighBit | Sum >> 1, Scale + 1);
355 inline std::pair<uint32_t, int16_t> getSum32(uint32_t LDigits, int16_t LScale,
361 inline std::pair<uint64_t, int16_t> getSum64(uint64_t LDigits, int16_t LScale,
372 std::pair<DigitsT, int16_t> getDifference(DigitsT LDigits, int16_t LScale,
374 static_assert(!std::numeric_limits<DigitsT>::is_signed, "expected unsigned");
383 return std::make_pair(0, 0);
385 return std::make_pair(LDigits - RDigits, LScale);
392 return std::make_pair(std::numeric_limits<DigitsT>::max(), RLgFloor);
394 return std::make_pair(LDigits, LScale);
398 inline std::pair<uint32_t, int16_t> getDifference32(uint32_t LDigits,
406 inline std::pair<uint64_t, int16_t> getDifference64(uint64_t LDigits,
426 static std::string toString(uint64_t D, int16_t E, int Width,
432 static std::pair<uint64_t, bool> splitSigned(int64_t N) {
434 return std::make_pair(N, false);
436 return std::make_pair(Unsigned, true);
494 static_assert(!std::numeric_limits<DigitsT>::is_signed,
500 typedef std::numeric_limits<DigitsType> DigitsLimits;
516 ScaledNumber(const std::pair<DigitsT, int16_t> &X)
595 std::string toString(unsigned Precision = DefaultPrecision) {
609 std::tie(Digits, Scale) =
617 std::tie(Digits, Scale) =
660 std::pair<uint64_t, bool> Unsigned = splitSigned(N);
664 std::pair<uint64_t, bool> Unsigned = splitSigned(N);
781 typedef std::numeric_limits<IntT> Limits;
843 int32_t ScaleShift = std::min(Shift, ScaledNumbers::MaxScale - Scale);
873 int32_t ScaleShift = std::min(Shift, Scale - ScaledNumbers::MinScale);