poly: add initial lowering for NTT op and add root parameter to rings#642
Conversation
|
@j2kun Ready for review. Sorry for letting it grow so much. I should have created a first pull request with the changes adding the Hmm, I am not able to reproduce the build failure locally. Can take another look when I am more awake. |
I also cannot reproduce the failure locally. I'll take a look at the CI. |
j2kun
left a comment
There was a problem hiding this comment.
LGTM! Just a few optional improvements. When you're ready please manually squash your commits and I'll get it merged.
|
My guess is that this will fix the build failure: It's weird that I can't reproduce it locally, but I think it may be because I'm using clang + lld and the CI is using gcc + ld. I don't have time to do a detailed test/fix, but just based on my intuition this is the problem: you have the header there but no dependency on the implementation directly on the |
588a0c8 to
4d733af
Compare
|
That fixed the issue. I had accidentally added the dep to the Just need to rebase on main again to correct the failing |
- add a standard iterative implementation of the NTT Op
- add performance test that uses random coefficients to prevent
optimizations on dense values that artifically improves
compile/runtime
- include an optional parameter that computes the 2n-th primitive
root of a rings ideal degree and its coefficient modulus
- add a script that will compute the 2n-th roots of unity for the
specified polynomial degree values and n. The values are only
outputted if the 2n-th root of unity exists.
4d733af to
c943d7f
Compare
root of a rings ideal degree and its coefficient modulus
user-specified
specified polynomial degree values and n. The values are only
outputted if the 2n-th root of unity exists.
Resolve #543