37namespace nfx::datatypes::constants
94 inline constexpr std::uint64_t
BIT_MASK_MSB{ 0x8000000000000000ULL };
312 10000000000000000ULL,
313 100000000000000000ULL,
314 1000000000000000000ULL,
315 10000000000000000000ULL,
324 { 0x6BC75E2D63100000ULL, 0x0000000000000005ULL },
325 { 0x35C9ADC5DEA00000ULL, 0x0000000000000036ULL },
326 { 0x19E0C9BAB2400000ULL, 0x000000000000021EULL },
327 { 0x02C7E14AF6800000ULL, 0x000000000000152DULL },
328 { 0x1BCECCEDA1000000ULL, 0x000000000000D3C2ULL },
329 { 0x161401484A000000ULL, 0x0000000000084595ULL },
330 { 0xDCC80CD2E4000000ULL, 0x000000000052B7D2ULL },
331 { 0x9FD0803CE8000000ULL, 0x00000000033B2E3CULL },
332 { 0x3E25026110000000ULL, 0x00000000204FCE5EULL }
constexpr int DECIMAL_RADIX
Numeric base for Decimal (base-10 decimal system).
constexpr std::array< std::pair< std::uint64_t, std::uint64_t >, 9 > DECIMAL_EXTENDED_POWERS_OF_10
Power-of-10 calculation constants for 128-bit arithmetic.
constexpr std::uint32_t DECIMAL_MAX_MANTISSA_0
Lower 32 bits of maximum Decimal mantissa (2^96 - 1).
constexpr int DECIMAL_MANTISSA_BITS
Number of bits in Decimal mantissa (96-bit mantissa).
constexpr int BITS_PER_UINT8
Bit shift amount for 8-bit operations.
constexpr std::uint64_t INT128_MIN_NEGATIVE_HIGH
High 64 bits of minimum negative 128-bit signed integer (-2^127).
constexpr int INT128_DIGITS
Number of value bits in Int128 (excluding sign bit).
constexpr std::uint64_t DECIMAL_96BIT_MAX_LOW
Maximum 96-bit mantissa value (2^96 - 1) as low 64 bits.
constexpr std::array< std::uint64_t, DECIMAL_POWER_TABLE_SIZE > DECIMAL_POWERS_OF_10
Powers of 10 lookup table for efficient scaling operations (64-bit range: 10^0 to 10^19).
constexpr std::uint64_t BIT_MASK_UPPER_2
Mask for testing upper 2 bits of upper 4 bits.
constexpr std::uint8_t DECIMAL_DIVISION_EXTRA_PRECISION
Extra precision digits added during division to maintain accuracy.
constexpr int DECIMAL_MANTISSA_ARRAY_SIZE
Size of mantissa array in Decimal (3 x 32-bit words = 96 bits).
constexpr int INT128_DIGITS10
Number of decimal digits representable in Int128 (floor(127 * log10(2))).
constexpr std::uint64_t UINT32_MAX_VALUE
Maximum value for 32-bit unsigned integer (2^32 - 1).
constexpr int INT128_RADIX
Numeric base for Int128 (binary base-2 system).
constexpr double DECIMAL_FRACTIONAL_EPSILON
Negligibility threshold for fractional parts in double conversion (10^-15).
constexpr std::uint64_t BIT_MASK_UPPER_32
Mask for testing upper 32 bits of 64-bit value.
constexpr std::uint8_t DECIMAL_EXTENDED_POWER_MAX
Maximum power for extended 128-bit power-of-10 table (10^28).
constexpr std::uint32_t DECIMAL_MAX_MANTISSA_1
Middle 32 bits of maximum Decimal mantissa (2^96 - 1).
constexpr std::uint8_t DECIMAL_EXTENDED_POWER_MIN
Minimum power for extended 128-bit power-of-10 table (10^20 and above).
constexpr int BITS_PER_UINT32
Bit shift amount for 32-bit operations (used for extracting/combining uint32_t from uint64_t).
constexpr std::uint8_t DECIMAL_ROUNDING_THRESHOLD
Rounding threshold value (round up if digit >= this value).
constexpr double INT128_MAX_AS_DOUBLE
Double approximation of maximum positive Int128 value (2^127 - 1) for overflow checks.
constexpr std::uint64_t INT128_MIN_NEGATIVE_LOW
Low 64 bits of minimum negative 128-bit signed integer (-2^127).
constexpr std::uint64_t BIT_MASK_UPPER_8
Mask for testing upper 8 bits of upper 16 bits.
constexpr std::uint8_t DECIMAL_SCALE_SHIFT
Bit position for scale field in flags.
constexpr std::uint8_t DECIMAL_MAXIMUM_PLACES
Maximum number of decimal places supported.
constexpr std::uint64_t DECIMAL_BASE
Base for decimal digit conversion.
constexpr std::uint64_t BIT_MASK_ONE
Bit mask value 1 as unsigned 64-bit (used for bit operations).
constexpr std::string_view INT128_MAX_POSITIVE_STRING
Maximum positive value as decimal string (2^127 - 1).
constexpr std::uint64_t DECIMAL_96BIT_MAX_HIGH
Maximum 96-bit mantissa value (2^96 - 1) as high 32 bits.
constexpr size_t INT128_MAX_STRING_LENGTH
Maximum expected length for Int128 string representation.
constexpr double INT128_MIN_AS_DOUBLE
Double approximation of minimum negative Int128 value (-2^127) for overflow checks.
constexpr int INT128_MAX_DIGITS10
Maximum decimal digits for Int128 (not applicable for integers).
constexpr std::string_view INT128_MAX_NEGATIVE_STRING
Maximum negative value as decimal string (absolute value of -2^127).
constexpr int BITS_PER_UINT64
Bit shift amount for 64-bit operations (used for extracting/combining uint64_t from uint128_t).
constexpr std::uint64_t INT128_MAX_POSITIVE_LOW
Low 64 bits of maximum positive 128-bit signed integer (2^127 - 1).
constexpr std::uint32_t DECIMAL_SCALE_MASK
Bit mask for extracting scale from flags field (bits 16-23).
constexpr size_t DECIMAL_STRING_BUFFER_SIZE
Reserved buffer size for string conversion to avoid reallocation.
constexpr std::uint64_t BIT_MASK_MSB
Mask for testing most significant bit.
constexpr int INT128_BASE
Base for decimal digit conversion.
constexpr std::uint64_t BIT_MASK_ZERO
Bit mask value 0 as unsigned 64-bit (used for bit operations).
constexpr int INT128_MAX_BIT_INDEX
Maximum bit index for 128-bit integers (0-127).
constexpr std::uint64_t INT128_MUL10_OVERFLOW_THRESHOLD
Maximum high 64-bit value before multiplying by 10 causes overflow (0xFFFFFFFFFFFFFFFF / 10).
constexpr std::uint64_t BIT_MASK_UPPER_4
Mask for testing upper 4 bits of upper 8 bits.
constexpr std::uint32_t DECIMAL_MAX_MANTISSA_2
Upper 32 bits of maximum Decimal mantissa (2^96 - 1).
constexpr int DECIMAL_DIGITS10
Number of decimal digits representable in Decimal (28 digits).
constexpr int DECIMAL_SQRT_MAX_ITERATIONS
Maximum iterations for Decimal::sqrt() Newton-Raphson refinement.
constexpr std::string_view DECIMAL_SQRT_EPSILON
Convergence epsilon for Newton-Raphson sqrt algorithm (10^-6 for reliable convergence).
constexpr std::uint32_t DECIMAL_SIGN_MASK
Bit mask for sign detection (bit 31).
constexpr int BITS_PER_NIBBLE
Bit shift amount for 4-bit operations.
constexpr size_t INT128_MAX_DIGIT_COUNT
Maximum number of decimal digits in a 128-bit signed integer (2^127 - 1 has 39 digits).
constexpr int INT128_ISQRT_MAX_ITERATIONS
Maximum iterations for Int128::isqrt() Heron's method.
constexpr std::uint32_t DECIMAL_MIN_MANTISSA_2
Upper 32 bits of minimum positive Decimal mantissa (1 × 10^-28).
constexpr std::uint64_t INT128_MAX_POSITIVE_HIGH
High 64 bits of maximum positive 128-bit signed integer (2^127 - 1).
constexpr std::uint8_t DECIMAL_POWER_TABLE_SIZE
Power of 10 lookup table size for fast scaling operations (64-bit range).
constexpr std::uint64_t BIT_MASK_UPPER_16
Mask for testing upper 16 bits of upper 32 bits.
constexpr int BITS_PER_UINT16
Bit shift amount for 16-bit operations.
constexpr size_t DECIMAL_MAX_STRING_LENGTH
Maximum expected length for decimal string representation.
constexpr int BITS_PER_PAIR
Bit shift amount for 2-bit operations.
constexpr std::uint32_t DECIMAL_MIN_MANTISSA_0
Lower 32 bits of minimum positive Decimal mantissa (1 × 10^-28).
constexpr std::uint8_t DOUBLE_DECIMAL_PRECISION
Maximum decimal precision that IEEE 754 double can accurately represent.
constexpr std::uint32_t DECIMAL_MIN_MANTISSA_1
Middle 32 bits of minimum positive Decimal mantissa (1 × 10^-28).