// 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 /// @}