NumericHelper is a static class that holds helper functions for integers/doubles.
More...
NumericHelper is a static class that holds helper functions for integers/doubles.
◆ SignedLength()
19721 {
19722 int sign = -(value < 0);
19723 UNSIGNED unsigned_value = UnsafeNumericCast<UNSIGNED>((value ^ sign) - sign);
19724 return UnsignedLength(unsigned_value) - sign;
19725 }
◆ FormatUnsigned()
| static char * duckdb::NumericHelper::FormatUnsigned |
( |
T |
value, |
|
|
char * |
ptr |
|
) |
| |
|
inlinestatic |
19729 {
19730 while (value >= 100) {
19731
19732
19733
19734 auto index = NumericCast<unsigned>((value % 100) * 2);
19735 value /= 100;
19736 *--ptr = duckdb_fmt::internal::data::digits[
index + 1];
19737 *--ptr = duckdb_fmt::internal::data::digits[
index];
19738 }
19739 if (value < 10) {
19740 *--ptr = NumericCast<char>('0' + value);
19741 return ptr;
19742 }
19743 auto index = NumericCast<unsigned>(value * 2);
19744 *--ptr = duckdb_fmt::internal::data::digits[
index + 1];
19745 *--ptr = duckdb_fmt::internal::data::digits[
index];
19746 return ptr;
19747 }
◆ FormatSigned()
19750 {
19751 typedef typename MakeUnsigned<T>::type unsigned_t;
19752 int8_t sign = -(value < 0);
19753 unsigned_t unsigned_value = unsigned_t(value ^ T(sign)) + unsigned_t(AbsValue(sign));
19754 auto length = UnsafeNumericCast<idx_t>(UnsignedLength<unsigned_t>(unsigned_value) + AbsValue(sign));
19756 auto dataptr = result.GetDataWriteable();
19757 auto endptr = dataptr + length;
19758 endptr = FormatUnsigned(unsigned_value, endptr);
19759 if (sign) {
19760 *--endptr = '-';
19761 }
19762 result.Finalize();
19763 return result;
19764 }
static DUCKDB_API string_t EmptyString(Vector &vector, idx_t len)
◆ ToString()
| static std::string duckdb::NumericHelper::ToString |
( |
T |
value | ) |
|
|
inlinestatic |
19767 {
19768 return std::to_string(value);
19769 }
The documentation for this class was generated from the following file:
- external/duckdb/duckdb.cpp