libdpf/doc/pages/which_dpf.md
2026-09-26 23:51:06 -06:00

27 lines
1.6 KiB
Markdown

# Which DPF? {#which_dpf}
Click a card. The next question appears under it, and the last card is a
complete program. Each program is also a file under `examples/mwe/` and
compiles from the repository root:
c++ -std=c++17 -march=native -I include -I thirdparty examples/mwe/point.cpp
The same choices are listed as links under the cards.
Types in full are on [Input types](@ref input_types) and [Output types](@ref output_types).
\htmlinclude mwe/chooser.html
## The same choices, as links {#which_links}
- A dealer knows `alpha` and `beta`. Two parties each get a key: [dpf::make_dpf](@ref dpf/incremental.hpp).
- The parties already share `alpha` and want a reusable key: [dpf::make_dpf_doerner_shelat](@ref dpf/doerner_shelat.hpp).
- The parties want the answer and no key: [dpf::geneval_point](@ref dpf/geneval.hpp), [dpf::geneval_interval](@ref dpf/geneval.hpp), [dpf::geneval_cmp](@ref dpf/geneval.hpp).
- Three evaluators: [dpf::make_dpf3](@ref dpf/dpf3.hpp) and [dpf::make_dpf3_doerner_shelat](@ref dpf/dpf3_ds.hpp).
- One point, a comparison, or a public interval: [dpf::gt](@ref dpf/dcf.hpp) and the other predicates, and [dpf::ic](@ref dpf/interval.hpp).
- Many secret points: [dpf::make_multipoint](@ref dpf/multipoint.hpp).
- A vector whose hidden coordinate is chosen after the commitment: [point-programmable vector commitments](@ref ppvc_manual).
- Several lanes at one leaf: [dpf::vec](@ref dpf/vec.hpp).
- A payload filled in later: [dpf::wildcard_value](@ref dpf/wildcard.hpp).
- A proof the key is well formed: [dpf::verifiable](@ref dpf/verifiable.hpp).
The call index, with one line each, is the [API reference](@ref api_reference).