mirror of
https://github.com/circify/circ.git
synced 2026-01-12 23:28:14 -05:00
34 lines
1.1 KiB
TeX
34 lines
1.1 KiB
TeX
\section{Sparse Persistent}
|
|
We want to use (nearly) the whole field
|
|
as our index space, without cost.
|
|
\begin{outline}
|
|
\1 What if you want $\vec a$ and $\vec b$ to be index-value pairs, where the
|
|
indices are from a large space (rather than $[N]$)?
|
|
\1 params
|
|
\2 Now, $N$ becomes the capacity
|
|
\2 $C$ is the number of creations
|
|
\1 Three operations:
|
|
\2 read
|
|
\2 conditional write
|
|
\2 create
|
|
\3 these happen *before* the reads/writes
|
|
\1 approach
|
|
\2 use a dummy key value to indicate dead spots
|
|
\3 zero is a natural choice
|
|
\2 essentially, you inject creates into the initial store,
|
|
and filter out some dummies afterwards
|
|
\2 you just add a conditional uniqueness check
|
|
\3 uniqueness check: \csPerN{4}
|
|
\3 with a condition: \csPerN{2}
|
|
\3 computing the condition (field eq): \csPerN{2}
|
|
\2 base cost of the permutation: \csPerN{4}
|
|
\3 one from initial coefficient hash
|
|
\3 one from root hash
|
|
\3 one from root hash again
|
|
\3 one from coefficient hash again
|
|
\1 accounting
|
|
\2 \csPerN{12}
|
|
\2 very similar dependence on $A$
|
|
\2 some dependence on $C$ too (like 10--30)
|
|
\end{outline}
|