-
-
Notifications
You must be signed in to change notification settings - Fork 461
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
compute square roots modulo powers of two in polynomial time #33961
Comments
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
comment:5
How does this compare against the old algorithm for small values? I am wondering if we want to impose a cutoff and do the dumb way when |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:7
I revisited the choice of algorithm and it's both simpler and even faster now. Example: sage: for e in range(1,19):
....: set_random_seed(0)
....: tests = [Zmod(2^e).random_element()^2 for _ in range(1000)]
....: print(f'{e:<2}', end=' | ', flush=True)
....: %timeit for y in tests: y.sqrt() Old:
New:
The reason for the jump at |
comment:8
Thank you. LGTM. |
Reviewer: Travis Scrimshaw |
Changed branch from public/square_roots_modulo_powers_of_2 to |
Currently,
square_root_mod_prime_power()
ininteger_mod.pyx
contains the following:In this patch, we do so.
Component: algebra
Author: Lorenz Panny
Branch/Commit:
aa06a21
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/33961
The text was updated successfully, but these errors were encountered: