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,7 +26,7 @@
|
|||
namespace dpf
|
||||
{
|
||||
|
||||
/// Steps, leaf count, and per-level endpoints for one sorted point list.
|
||||
/// @brief Steps, leaf count, and per-level endpoints for one sorted point list.
|
||||
struct sequence_recipe
|
||||
{
|
||||
public:
|
||||
|
|
@ -52,7 +52,8 @@ struct sequence_recipe
|
|||
HEDLEY_PURE
|
||||
HEDLEY_NO_THROW
|
||||
constexpr const std::vector<std::size_t> & level_endpoints() const noexcept { return level_endpoints_; }
|
||||
/// `level_endpoints().size() - 1`. Not `constexpr`: `std::vector::size` is not a constant expression in C++17.
|
||||
/// @brief `level_endpoints().size() - 1`. Not `constexpr`: `std::vector::size` is not a constant expression in C++17.
|
||||
/// @return `level_endpoints().size() - 1`
|
||||
HEDLEY_PURE
|
||||
HEDLEY_NO_THROW
|
||||
std::size_t depth() const noexcept { return level_endpoints_.size()-1; }
|
||||
|
|
@ -139,9 +140,13 @@ auto make_sequence_recipe(ForwardIterator begin, ForwardIterator end)
|
|||
|
||||
} // namespace detail
|
||||
|
||||
/// Compile `[begin, end)` into a recipe for `DpfKey`'s input type.
|
||||
/// @brief Compile `[begin, end)` into a recipe for `DpfKey`'s input type.
|
||||
/// @tparam DpfKey Key type, or a `party_key` of that key. Only the input
|
||||
/// type and depth are used.
|
||||
/// @tparam ForwardIterator forward iterator type
|
||||
/// @param begin the iterator to the first query
|
||||
/// @param end the iterator past the last query
|
||||
/// @return Compile `[begin, end)` into a recipe for `DpfKey`'s input type
|
||||
/// @throws std::runtime_error if the range is not sorted nondecreasing.
|
||||
template <typename DpfKey,
|
||||
typename ForwardIterator>
|
||||
|
|
@ -157,8 +162,17 @@ auto make_sequence_recipe(const DpfKey &, ForwardIterator begin, ForwardIterator
|
|||
return make_sequence_recipe<DpfKey>(begin, end);
|
||||
}
|
||||
|
||||
/// Build a sequence recipe that stops at `StopLevel` with packing `LgOpl`
|
||||
/// @brief Build a sequence recipe that stops at `StopLevel` with packing `LgOpl`
|
||||
/// (multi-level / `out<I>` slots). Lane points are in the slot's prefix domain.
|
||||
/// @tparam StopLevel stop level
|
||||
/// @tparam LgOpl lg opl
|
||||
/// @tparam InputT input domain type
|
||||
/// @tparam ForwardIterator forward iterator type
|
||||
/// @param msb_mask the `msb_mask`
|
||||
/// @param begin the iterator to the first query
|
||||
/// @param end the iterator past the last query
|
||||
/// @return the constructed object
|
||||
/// @throws std::runtime_error if `list must be sorted`
|
||||
template <std::size_t StopLevel, std::size_t LgOpl, typename InputT,
|
||||
typename ForwardIterator>
|
||||
auto make_sequence_recipe_at(InputT msb_mask, ForwardIterator begin,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue