Document the new DPF surfaces in one command set, and test the field, half-tree, and multipoint edges.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
0d8a5a8131
commit
0dff6df8ed
250 changed files with 12199 additions and 1981 deletions
|
|
@ -26,12 +26,12 @@
|
|||
namespace grotto
|
||||
{
|
||||
|
||||
/// Sentinel raw value for `ilogb(0)` and `ilog10(0)`.
|
||||
/// @brief Sentinel raw value for `ilogb(0)` and `ilog10(0)`.
|
||||
inline constexpr std::int64_t ilog_of_zero =
|
||||
std::numeric_limits<std::int64_t>::min();
|
||||
|
||||
/// `make_msb_lut(i)` allows `i` in `[0, msb_bit_limit)`.
|
||||
/// Bit 0 is two intervals; bit 7 is 256.
|
||||
/// @brief `make_msb_lut(i)` allows `i` in `[0, msb_bit_limit)`.
|
||||
/// @details Bit 0 is two intervals; bit 7 is 256.
|
||||
inline constexpr unsigned msb_bit_limit = 8;
|
||||
|
||||
namespace detail
|
||||
|
|
@ -162,7 +162,11 @@ inline u128 pow10_u128(int exponent)
|
|||
return p;
|
||||
}
|
||||
|
||||
/// `mag / 2^k >= 10^e`.
|
||||
/// @brief `mag / 2^k >= 10^e`.
|
||||
/// @param mag the magnitude
|
||||
/// @param fractional_bits the number of fractional bits
|
||||
/// @param exponent the exponent
|
||||
/// @return `mag / 2^k >= 10^e`
|
||||
inline bool magnitude_ge_pow10(u128 mag, unsigned fractional_bits, int exponent)
|
||||
{
|
||||
if (mag == 0)
|
||||
|
|
@ -393,9 +397,14 @@ easy_lut<Raw> make_ilog10_lut(unsigned fractional_bits = 0)
|
|||
});
|
||||
}
|
||||
|
||||
/// Bit `index` counting down from the most significant bit of `Raw`.
|
||||
/// Index 0 is the sign bit. Larger indexes are refused: the bit is constant
|
||||
/// @brief Bit `index` counting down from the most significant bit of `Raw`.
|
||||
/// @details Index 0 is the sign bit. Larger indexes are refused: the bit is constant
|
||||
/// on `2^{index+1}` intervals.
|
||||
/// @tparam Raw underlying representation
|
||||
/// @param index the index
|
||||
/// @param fractional_bits the number of fractional bits
|
||||
/// @return Bit `index` counting down from the most significant bit of `Raw`
|
||||
/// @throws std::invalid_argument if `only the most significant bits are piecewise-cheap`
|
||||
template <typename Raw>
|
||||
HEDLEY_WARN_UNUSED_RESULT
|
||||
easy_lut<Raw> make_msb_lut(unsigned index, unsigned fractional_bits = 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue