-
-
Notifications
You must be signed in to change notification settings - Fork 523
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
Interpolation, Minimal Vanishing Polynomial and Multi Point Evaluation of Skew Polynomials #21131
Comments
Branch: u/arpitdm/mvp_mpe |
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:4
I've added methods for I've added Also, I am not sure that these same algorithms are valid for skew polynomials over general rings. I ran some examples and found that the MVP does not evaluate to zero, MPE does not match individual calls. |
comment:5
You could be more helpful by explaining which examples you ran, and tried to make them small and easy to debug. As it stands, I'm confused about what examples you did run, because MVP just threw an exception when I tried the "usual" non-finite field example
That's it for now, I think. Best, |
comment:6
Replying to @arpitdm: What examples did you try? Which sizes of input? Which number of evaluation points? Which base fields? Which skew rings? There's many parameters here, and the speed profiles might be completely different over different choices. Please post your test code so your tests can be replicated. If we can't find a single set of parameters for which the new multi-point evaluation is fastest, then we should just replace the method with the one-liner Best, |
Changed branch from u/arpitdm/mvp_mpe to u/jsrn/mvp_mpe |
comment:8
forgot to push my changes. New commits:
|
comment:9
Here are some mathematical comments:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:11
Merged the newest 13215 into this branch. |
comment:12
Hi Xavier, Great to see that you're listening in :-) Replying to @xcaruso:
I believe you're right, but I only thought about it after Arpit had already implemented it. So now I think we might as well look at its running time rather than guessing.
Hmm, yes, I hadn't thought about that. However, I don't see why doing successive
I did some experiments. Over finite fields, the D&C lcm wins:
However, over a field with coefficient-growth, the implemented version wins:
The above timings vary a lot with the size of the fractions that were randomly drawn, but the relative ranking between the methods seems to stay put.
That's a good idea. Feel free to do that. We are on a pretty tight schedule with Arpit's Google Summer of Code, so that won't be a priority for us now. Best, |
comment:13
I just made some more experiments: changing I think for now, |
comment:14
Replying to @johanrosenkilde:
But maybe the fast multiplication and related methods once available, will improve the speed. I am not sure it makes sense to have a method to simply call the evaluate method
Agreed. It is a method every skew polynomial should have if it is fast. |
comment:15
Replying to @arpitdm:
I disagree: if the method is there, it should in all cases be at least as fast
OK Best, Johan |
comment:16
Replying to @johanrosenkilde:
For example if we have some twist map of the original skew polynomial ring based on R |
comment:17
Replying to @arpitdm:
That's a good question. Off the top of my hat, I don't immediately see how to do that in a bullet-proof fashion. However, the following should work for all finitely generated rings: construct a
You'd better wrap that in a try-except and throw a Best, |
Changed branch from u/jsrn/mvp_mpe to u/arpitdm/mvp_mpe |
comment:19
I've made the following changes based on discussions above:
I'm opening the ticket for review now. Best, Last 10 new commits:
|
comment:21
The three methods are mutually recursive, so you're still for instance re-creating the same polynomial ring over and over again in the recursive calls. You should make three top-level private functions, without the checks, and all the mutually recursive calls will call those top-level private functions, taking the correct target ring as an input. The creation of the fraction-field skew-poly-ring should be a helper function since it's duplicated code. But make it a private function. Best, |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:29
Hi David, I've made the changes you proposed. Opening it for review again. Best, |
Changed branch from u/arpitdm/mvp_mpe to u/jsrn/mvp_mpe |
comment:31
I made a number of modifications:
I tried for a while to make Please check the compiled doc. I have no more time today. Best, New commits:
|
Changed keywords from none to sd75 |
comment:33
Based on discussions, we are putting the SkewPolynomial_finite_field class on hold. The |
comment:34
Agreed, let's go ahead with it! |
Changed branch from u/jsrn/mvp_mpe to u/arpitdm/mvp_mpe |
comment:39
Coming back to it now, I feel sort of silly finalising the review myself, since the latest version was written by me. I feel that the last step is that someone should review my modifications. I've tried to understand what you did in commit 0572e85, but it's not clear to me. All the finite field stuff is still showing up in the log, and have just been removed again -- did you just remove them in the merge commit 0572e85? Best, |
Changed branch from u/arpitdm/mvp_mpe to u/jsrn/mvp_mpe |
comment:41
I fixed some small doc markup issues. Otherwise the code looks good to me. New commits:
|
Reviewer: Johan Rosenkilde |
comment:44
Thanks |
Changed branch from u/jsrn/mvp_mpe to |
Support for computing:
in Skew Polynomial Rings.
Depends on #13215
CC: @tscrim @xcaruso @johanrosenkilde @sagetrac-dlucas
Component: coding theory
Keywords: sd75
Author: Arpit Merchant
Branch/Commit:
4a9e4b0
Reviewer: Johan Rosenkilde
Issue created by migration from https://trac.sagemath.org/ticket/21131
The text was updated successfully, but these errors were encountered: