Polynomial Evaluation on BGV #401
Unanswered
Th0masAndy
asked this question in
Q&A
Replies: 1 comment 6 replies
-
Hi @Th0masAndy, thank you for your question and interest in the Lattigo library. I have converted your issue to a discussion, as I believe this is more appropriate (see the README for what issue should be used for). The library already provides a polynomial evaluation algorithm based on the Paterson Stockmeyer with power of two decomposition. So I believe that your re-implementation is to add concurrency, is this correct? |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I implemented the Paterson Stockmeyer algorithm and get the right result.$x^0,x^1.....x^{15}$ and big steps $x^{16},x^{32},x^{48}..... x^{240}$ and then compute the blocks.
For example, I want to compute a polynomial f(x) of degree 255, fisrt compute small steps
The block 0 is$a_0 x^0+a_1 x^1.....a_{15} x^{15}$ , here $a_i$ is the coeffs$x^{16} (a_{16} + a_{17} x^1 ..... + a_{31}x^{15})$ and $block_i$ is the same$f(x) = block_0 + block_1 .... + block_{15}$ .
the block 1 is
and finally I add these blocks together to get
The result of f(x) is right and it costs 9 multiplications to compute f(x).
I choose param
and I can compute 18 multiplications at most for this param.
I'm supposed to be able to perform 9 multiplications based on f(x) but I found out I can only do 7 multiplications.
Will my algorithm significantly reduce the noise budget?
Beta Was this translation helpful? Give feedback.
All reactions