
@@ 39,33 +39,33 @@ You can also look at the tests in the `test` folder.






## Default parameters






$$N$$ indicates the degree of the BFV polynomials. Default is 4096.



+*N* indicates the degree of the BFV polynomials. Default is 4096.






$$t$$ indicates the plaintext modulus, but we specify $$logt$$ instead. Default is 20.



+*t* indicates the plaintext modulus, but we specify *log t* instead. Default is 20.






Each BFV ciphertext can encrypt $$\log{t}\cdot N \approx 10 KB$$ bits of information.



+Each BFV ciphertext can encrypt log t * N, which is approximately 10 KB bits of information.






This means that if your database has, say, 1 KB elements, then you can pack 10



such elements into a single BFV plaintext.



On the other hand, if your database has, say, 20 KB elements, then you will



need two BFV plaintexts to represent each of your elements.






$$d$$ represents the recursion level. When the number of BFV plaintexts needed



+*d* represents the recursion level. When the number of BFV plaintexts needed



to represent your database (see above for how to map the number of database



elements of a given size to the number of BFV plaintexts) is smaller than N,



then setting $$d = 1$$ minimizes communication costs. However, you can also set



$$d = 2$$ which doubles the size of the query and increases the size of the



+then setting *d = 1* minimizes communication costs. However, you can also set



+*d = 2* which doubles the size of the query and increases the size of the



response by roughly a factor of 4, but in some cases might reduce computational



costs a little bit (because the oblivious expansion procedure is cheaper).






When the number of BFV plaintexts is much greater than N, then $$d = 2$$



minimizes communication costs. You can read the paper to understand how $$d$$



affects communication costs. In general, the query consists of $$d$$ BFV



ciphertexts and can index a database with $$N^d$$ BFV plaintexts; the response



consists of $$F^{d1}$$ ciphertexts, where $$F$$ is the ciphertext



+When the number of BFV plaintexts is much greater than N, then *d = 2*



+minimizes communication costs. You can read the paper to understand how *d*



+affects communication costs. In general, the query consists of *d* BFV



+ciphertexts and can index a database with *N^d* BFV plaintexts; the response



+consists of *F^(d1)* ciphertexts, where *F* is the ciphertext



expansion factor. In the current implementation which uses recursive



modulo swithcing, $$F$$ is around 4. We have not identified any setting where



$$d > 2$$ is beneficial.



+modulo swithcing, *F* is around 4. We have not identified any setting where



+*d > 2* is beneficial.









# Changelog
