Opened 14 years ago
Last modified 11 years ago
#2329 closed enhancement
[with patch, pending another patch] add interface to Pari's rnfisnorm — at Version 13
Reported by: | craigcitro | Owned by: | craigcitro |
---|---|---|---|
Priority: | blocker | Milestone: | sage-4.7 |
Component: | number fields | Keywords: | editor_craigcitro pari |
Cc: | ncalexan, mstreng, jdemeyer | Merged in: | |
Authors: | Craig Citro, Marco Streng | Reviewers: | Nick Alexander |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
This patch adds support to solve norm equations via Pari.
Quick summary: given an element x
of any number field (even QQ
), x.is_norm(L)
will return True
if and only if x
is a norm from L
. It is also able to return an element of L
whose norm is x
.
The data used by Pari to compute whether or not an element is a norm can be computed once for each extension L/K
. The function pari_rnfnorm_data
computes exactly this, and hopefully in a later version its result can be passed to is_norm
to avoid recomputing it each time in the case that K != QQ
. If K
is QQ
, there is no need to save any such data -- the only data needed is that of K.pari_bnf()
, which is used instead, and is already cached by K
.
Change History (17)
Changed 14 years ago by
comment:1 Changed 14 years ago by
- Cc ncalexan added
comment:2 Changed 14 years ago by
- Owner changed from was to craigcitro
- Status changed from new to assigned
comment:3 Changed 14 years ago by
- Milestone changed from sage-2.11 to sage-2.10.4
comment:4 Changed 14 years ago by
Craig, what's the status on this patch? I need it as we speak :) Are you interested in completing this or should I implement the changes I think are necessary and kick it back to you for refereeing?
comment:5 Changed 14 years ago by
Nick, I'd be more than happy to have you finish this guy off. I think all the code is there, it just needs to be cleaned up and unified here and there. I just haven't had time to get back to it since you posted the referee report -- but if you want to clean this up, I'll review it for you lickety-split.
comment:6 Changed 14 years ago by
Added a second patch that addresses all of the above issues.
Changed 14 years ago by
comment:7 Changed 14 years ago by
- Summary changed from [with patch, needs review] add interface to Pari's rnfisnorm to [with patch, pending another patch] add interface to Pari's rnfisnorm
Changed 14 years ago by
comment:8 Changed 14 years ago by
The last patch separates out very useful fixes to the pari/gen.pyx that should be applied now.
The remainder of the functionality requires some more substantial changes and is a work in progress.
comment:9 Changed 14 years ago by
- Keywords editor_craigcitro added
comment:10 Changed 14 years ago by
This has been sitting around forever. Any movement here?
Cheers,
Michael
comment:11 Changed 13 years ago by
- Component changed from number theory to number fields
comment:12 Changed 12 years ago by
- Cc mstreng added
- Report Upstream set to N/A
Same question as mabshoff 22 months ago...
comment:13 Changed 12 years ago by
- Description modified (diff)
- Priority changed from minor to major
- Reviewers set to Nick Alexander
As nobody replied here any more, I attacked the ticket myself by changing Craig's patch.
I've addressed Nick's concerns and replaced the documentation to reflect better what is in the Pari documentation (which weakens some claims considerably unfortunately).
x.is_norm() now decides whether an element x is a norm (proven output), while x.rnfisnorm() gives exactly the output that Pari's rnfisnorm would give.
The output of is_norm is True or False. With element=True, it also gives an element of norm x (or None if it doesn't exist). The function element_of_norm is removed, to avoid confusion with elements_of_norm.
I have some questions.
There seems to be two things in this patch: changes to pari/gen, and access to stuff to do with norms. Is the latter independent of the former? I'd be a lot happier with the latter if that's true, because I'm not expert in the Pari interface.
Also, what relation does this have to "elements_of_norm"? There needs to be some unification, I think. Also, having is_norm() not always return a boolean is not good, IMO. I say is_norm -> Boolean and element_of_norm raises an exception if is_norm is not True.
I will gladly referee and have cc'ed myself.