Publish a scannable manual and a bibliography that links each paper back to the pages that use it.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
cf8054a0b3
commit
695f8e84f7
45 changed files with 4848 additions and 338 deletions
68
doc/pages/api.md
Normal file
68
doc/pages/api.md
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
# Call index {#api_reference}
|
||||
|
||||
This is the map of calls. Each row is one sentence and a header.
|
||||
A complete program for the first rows is the [first program](@ref basics).
|
||||
The same calls, one line each, continue below.
|
||||
|
||||
The two namespaces are [dpf](@ref dpf) and [grotto](@ref grotto).
|
||||
In the sidebar this page sits under **API reference** next to the
|
||||
namespace, class, and file indexes. Start here when you know the call
|
||||
you want.
|
||||
|
||||
## Build a key
|
||||
|
||||
| Call | What it returns |
|
||||
| --- | --- |
|
||||
| [dpf::make_dpf](@ref dpf/incremental.hpp) | Two party keys. A dealer knows the index and the payload. |
|
||||
| [dpf::make_dpf_doerner_shelat](@ref dpf/doerner_shelat.hpp) | The same key when the parties already share the index. |
|
||||
| [dpf::geneval_point](@ref dpf/geneval.hpp) | Answer shares for one query. No reusable key. |
|
||||
| [dpf::geneval_cmp](@ref dpf/geneval.hpp) | Answer shares for a comparison. No reusable key. |
|
||||
| [dpf::make_dpf3](@ref dpf/dpf3.hpp) | Three keys. Any two open the value. |
|
||||
| [dpf::make_multipoint](@ref dpf/multipoint.hpp) | One key for many secret points. |
|
||||
| [dpf::ppvc](@ref ppvc_manual) | A point-programmable vector commitment. The hidden coordinate is set when the commitment is opened. |
|
||||
|
||||
## Evaluate
|
||||
|
||||
| Call | What you pass |
|
||||
| --- | --- |
|
||||
| [dpf::eval_point](@ref dpf/eval_point.hpp) | One public input. `*result` is that party's leaf share. |
|
||||
| [dpf::eval_point](@ref dpf/eval_unified.hpp) `(dpf::cmp, ...)` | One public input on a comparison key. The share is additive. |
|
||||
| [dpf::eval_interval](@ref dpf/eval_interval.hpp) | An inclusive range, one share per input. |
|
||||
| [dpf::eval_sequence](@ref dpf/eval_sequence.hpp) | A sorted list of inputs. |
|
||||
| [dpf::eval_full](@ref dpf/eval_full.hpp) | Every input in the domain. |
|
||||
| [dpf::reconstruct](@ref dpf/secret_share.hpp) | Both shares. Leaf shares subtract. Comparison shares add. |
|
||||
| [dpf::eval_point](@ref dpf/interval.hpp) `(dpf::ic, ...)` | One public input on an interval key. |
|
||||
|
||||
## Comparisons and tags
|
||||
|
||||
| Call | Meaning |
|
||||
| --- | --- |
|
||||
| [dpf::lt](@ref dpf/dcf.hpp), [leq](@ref dpf/dcf.hpp), [gt](@ref dpf/dcf.hpp), [geq](@ref dpf/dcf.hpp) | The comparison channel. One per key. |
|
||||
| [dpf::eq](@ref dpf/dcf.hpp) | A point payload, not that channel. |
|
||||
| [dpf::ic](@ref dpf/interval.hpp) | Public interval on a secret mask. |
|
||||
| [dpf::at](@ref dpf/placement.hpp) | A value on a prefix, and a value at the leaf. |
|
||||
| [dpf::verifiable](@ref dpf/verifiable.hpp) | The key carries a proof token. |
|
||||
| [dpf::vec](@ref dpf/vec.hpp) | Several lanes at one leaf. No carry between lanes. |
|
||||
| [dpf::wildcard_value](@ref dpf/wildcard.hpp) | Payload filled in after the key exists. Eval throws until then. |
|
||||
|
||||
## Domains and leaves
|
||||
|
||||
The catalogs, with the types that are inputs and the types that are outputs:
|
||||
|
||||
- [Input types](@ref input_types): integers, `modint`, `xint`, `bitstring`, `keyword`, `keyword2`, fixed-point.
|
||||
- [Output types](@ref output_types): `bit`, `twobit`, `nyble`, fields, curve points, shares, `vec`.
|
||||
|
||||
`bit`, `twobit`, and `nyble` are packed output lanes. `keyword2` is a domain, not a leaf.
|
||||
|
||||
## After the offset is public
|
||||
|
||||
[Grotto](@ref guided_tour) evaluates a function of x once the public offset is open.
|
||||
The pages are [offset Horner, jets, and ring switch](@ref jet_and_ring) and
|
||||
[representation shift and twisted jets](@ref repr_and_twist).
|
||||
|
||||
## Where to read next
|
||||
|
||||
- [Which DPF?](@ref which_dpf) if you are still choosing the object.
|
||||
- [Evaluating DPFs](@ref evaluation) for point, interval, sequence, and full-domain cost.
|
||||
- [Bibliography](@ref bibliography) for the papers behind the keys.
|
||||
- [Application mockups](@ref applications) for the DPF step inside a larger protocol.
|
||||
Loading…
Add table
Add a link
Reference in a new issue