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
|
|
@ -1,6 +1,5 @@
|
|||
/// @file dpf/random.hpp
|
||||
/// @brief
|
||||
/// @details
|
||||
/// @brief Entropy source and uniform sampling.
|
||||
/// @author Ryan Henry <ryan.henry@ucalgary.ca>
|
||||
/// @copyright Copyright (c) 2019-2024 Ryan Henry and [others](@ref authors)
|
||||
/// @license Released under a GNU General Public v2.0 (GPLv2) license;
|
||||
|
|
@ -32,7 +31,7 @@ namespace dpf
|
|||
namespace detail
|
||||
{
|
||||
|
||||
/// When set, `uniform_fill` copies from this hook and does not read the
|
||||
/// @brief When set, `uniform_fill` copies from this hook and does not read the
|
||||
/// system RNG. Used to feed the same beaver coins to dealer `make_dpf` and
|
||||
/// Doerner–Shelat gen. Null in normal use.
|
||||
inline thread_local void (*uniform_bytes_hook)(void *, std::size_t) = nullptr;
|
||||
|
|
@ -50,8 +49,10 @@ bool fill_from_hook(T & buf) noexcept
|
|||
return true;
|
||||
}
|
||||
|
||||
/// `bool` and `enum : bool` (including `dpf::bit`) have only two valid
|
||||
/// @brief `bool` and `enum : bool` (including `dpf::bit`) have only two valid
|
||||
/// representations. Filling them with a raw entropy byte is undefined.
|
||||
/// @tparam T value type
|
||||
/// @return `bool` and `enum : bool` (including `dpf::bit`) have only two valid representations
|
||||
template <typename T>
|
||||
HEDLEY_NO_THROW
|
||||
constexpr bool is_boolean_representation() noexcept
|
||||
|
|
@ -73,8 +74,8 @@ constexpr bool is_boolean_representation() noexcept
|
|||
|
||||
#if !defined(LIBDPF_USE_ARC4RANDOM)
|
||||
|
||||
/// One unbuffered, exclusively locked read of the entropy device.
|
||||
/// Buffering would copy unread bytes into a `fork()` child, so parent and
|
||||
/// @brief One unbuffered, exclusively locked read of the entropy device.
|
||||
/// @details Buffering would copy unread bytes into a `fork()` child, so parent and
|
||||
/// child would repeat the same key material. The lock keeps concurrent
|
||||
/// `fread` calls off the shared `FILE`.
|
||||
struct entropy_source
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue