libdpf/doc/examples.dox
Ryan Henry 0d22946a0e Checkpoint the party/runtime stack before share-program and malicious-mode work.
Ship the TLS mesh, composer, Beaver/Yao/leaf MPC, prep/online paths, apps, and docs so the tree is pushable before elevating share_expr, security_mode, and prep resume.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-28 05:59:19 -06:00

217 lines
No EOL
6.6 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// input_types
/// @{
/// @example input_types/integral_types.cpp integral_types.cpp
/// @brief an example of `int` in use
/// @example input_types/extended_types.cpp extended_types.cpp
/// @brief an example of `int128_t` in use
/// @example input_types/modint.cpp modint.cpp
/// @brief an example of `dpf::modint` in use
/// @example input_types/bitstring.cpp bitstring.cpp
/// @brief an example of `dpf::bitstring` in use
/// @example input_types/keyword.cpp keyword.cpp
/// @brief an example of `dpf::keyword` in use
/// @example input_types/xor_wrapper.cpp xor_wrapper.cpp
/// @brief an example of `dpf::xor_wrapper` as an input
/// @example input_types/custom.cpp custom.cpp
/// @brief an example of a custom input type
/// @}
// output_types
/// @{
/// @example output_types/integral_types.cpp integral_types.cpp
/// @brief an example of an integer output
/// @example output_types/extended_types.cpp extended_types.cpp
/// @brief an example of a 128-bit integer output
/// @example output_types/bit.cpp bit.cpp
/// @brief an example of `dpf::bit` as an output
/// @example output_types/bitstring.cpp bitstring.cpp
/// @brief an example of `dpf::bitstring` as an output
/// @example output_types/wildcard.cpp wildcard.cpp
/// @brief an example of `dpf::wildcard` as an output
/// @example output_types/xor_wrapper.cpp xor_wrapper.cpp
/// @brief an example of `dpf::xor_wrapper` as an output
/// @example output_types/custom.cpp custom.cpp
/// @brief an example of a custom output type
/// @}
// evaluations
/// @{
/// @example evaluation/eval_point.cpp eval_point.cpp
/// @brief an example of `dpf::eval_point` in use
/// @example evaluation/eval_interval.cpp eval_interval.cpp
/// @brief an example of `dpf::eval_interval` in use
/// @example evaluation/eval_full.cpp eval_full.cpp
/// @brief an example of `dpf::eval_full` in use
/// @example evaluation/defer_eval.cpp defer_eval.cpp
/// @brief pre-assign `defer_eval_interval` then rotate after input assign
/// @example evaluation/eval_sequence.cpp eval_sequence.cpp
/// @brief an example of `dpf::eval_sequence` in use
/// @example evaluation/eval_inner_product.cpp eval_inner_product.cpp
/// @brief fused inner product: scalar range, full domain, paired leaf outputs, ancestor slot, recipe
/// @example evaluation/memoizers.cpp memoizers.cpp
/// @brief an example of `dpf::memoizers` in use
/// @example evaluation/output_buffers.cpp output_buffers.cpp
/// @brief an example of `dpf::output_buffer` in use
/// @example evaluation/buffered_prg.cpp buffered_prg.cpp
/// @brief an example of `dpf::randomness::buffered_prg` and `lane_table`
/// @example evaluation/eval_dpf3_point.cpp eval_dpf3_point.cpp
/// @brief three-evaluator point DPF (`make_dpf3` / Shamir open)
/// @example evaluation/eval_dpf3_doerner_shelat.cpp eval_dpf3_doerner_shelat.cpp
/// @brief dual-spine Doerner–Shelat (2,3) keygen vs dealer `make_dpf3`
/// @example evaluation/eval_dpf3_cmp_ic.cpp eval_dpf3_cmp_ic.cpp
/// @brief three-party comparison and interval-containment keys
/// @}
/// @{
/// @example grotto/jet_and_ring.cpp jet_and_ring.cpp
/// @brief binomial jet readouts and an exact Z/2^n to Z/M ring switch
/// @example grotto/repr_and_twist.cpp repr_and_twist.cpp
/// @brief Fibonacci / geometric representation shift and twisted monomials
/// @example grotto/dwt_lut.cpp dwt_lut.cpp
/// @brief Haar and bior(5,3) compressed lookup tables
/// @}
/// @{
/// @example iterables/setbit_index_iterable.cpp setbit_index_iterable.cpp
/// @brief an example of `dpf::setbit_index_iterable` in use
/// @example iterables/advice_bit_iterable.cpp advice_bit_iterable.cpp
/// @brief an example of `dpf::advice_bit_iterable` in use
/// @example iterables/parallel_bit_iterable.cpp parallel_bit_iterable.cpp
/// @brief an example of `dpf::parallel_bit_iterable` in use
/// @example iterables/subinterval_iterable.cpp subinterval_iterable.cpp
/// @brief an example of `dpf::subinterval_iterable` in use
/// @example iterables/subsequence_iterable.cpp subsequence_iterable.cpp
/// @brief an example of `dpf::subsequence_iterable` in use
/// @example iterables/zip_iterable.cpp zip_iterable.cpp
/// @brief an example of `dpf::zip_iterable` in use
/// @}
// applications
/// @{
/// @example applications/duoram3.cpp duoram3.cpp
/// @brief 3-party Duoram read and update, the DPF step
/// @example applications/subleq.cpp subleq.cpp
/// @brief MPC SUBLEQ: prepaid unit reads, scaled write, path branch
/// @example applications/bitmore.cpp bitmore.cpp
/// @brief BitMore query for 2^L servers
/// @example applications/keyword_pir.cpp keyword_pir.cpp
/// @brief two-server keyword PIR
/// @example applications/prio.cpp prio.cpp
/// @brief Prio histogram and a Poplar prefix walk
/// @example applications/idpf_agg.cpp idpf_agg.cpp
/// @brief I-DPF max and k-th order statistic via eval_until
/// @example applications/llama.cpp llama.cpp
/// @brief LLAMA comparison and degree-0 spline gates
/// @example applications/pika.cpp pika.cpp
/// @brief Pika function lookup
/// @example applications/prac.cpp prac.cpp
/// @brief PRAC binary search (one IDPF) and a wide heap leaf
/// @example applications/express.cpp express.cpp
/// @brief Express mailbox write and one-hot audit
/// @example applications/splinter.cpp splinter.cpp
/// @brief Splinter private query on public data
/// @example applications/mastic.cpp mastic.cpp
/// @brief Mastic weighted heavy-hitter prefixes
/// @example applications/waldo.cpp waldo.cpp
/// @brief Waldo append-only time series and a private-threshold aggregate
/// @example applications/sabre.cpp sabre.cpp
/// @brief Sabre mailbox write with a verifiable-DPF audit
/// @example protocol/compose_schedule.cpp compose_schedule.cpp
/// @brief Composer schedules: fused audit, early-stop, prefixes, RSS, ABY scale
/// @example applications/ledger23.cpp ledger23.cpp
/// @brief (2,3) ledger append with a verified point key
/// @example applications/psi.cpp psi.cpp
/// @brief private set intersection via a DPF oblivious PRF
/// @example applications/range_count.cpp range_count.cpp
/// @brief range count of secret values on a public interval
/// @example applications/floram.cpp floram.cpp
/// @brief Floram read and write from address shares
/// @example applications/pir3.cpp pir3.cpp
/// @brief three-server index PIR on a (2,3) point key
/// @example applications/it_pir3.cpp it_pir3.cpp
/// @brief three-server index PIR on the information-theoretic DPF
/// @}
/// @{
/// @example mwe/ppvc.cpp ppvc.cpp
/// @brief a point-programmable vector commitment
/// @example mwe/shamir.cpp shamir.cpp
/// @brief (K,N) Shamir, with (2,3) as the slope specialization
/// @}