-
Notifications
You must be signed in to change notification settings - Fork 245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add modular splitting #1542
Add modular splitting #1542
Conversation
This will be a nice algorithm to have! The code needs a little bit of work. You can't safely swap entries from Indeed, this algorithm could be implemented more cleanly if
Yes, this will make sense to add when we have an overloadable |
Oh yes, I was stupid and didn't think of potential multi-threading! I replaced |
Just some minor style issues to fix: use |
BTW, |
Done and fixed! |
Nice! |
I pushed a small optimization: the variable |
Added modular splitting as described in Brent, Zimmermann: Modern Computer Arithmetic, Section 4.4.3.
Remarks:
-I ended up not using
set_shallow
because theswap
-approach has the convenience that all coefficients that are out of bounds are simply zero entries which are ignored by the dot product routines.-I started working on
gr_poly_evaluate_other_modular
but stopped since I noticed thatgr_dot_other
still uses the naive method. We therefore cannot get a performance advantage overgr_poly_evaluate_other_rectangular
but potentially worse numerical stability.