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:

Status badges

Description (last modified by mstreng)

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 craigcitro

comment:1 Changed 14 years ago by ncalexan

  • Cc ncalexan added

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.

comment:2 Changed 14 years ago by craigcitro

  • Owner changed from was to craigcitro
  • Status changed from new to assigned

comment:3 Changed 14 years ago by rlm

  • Milestone changed from sage-2.11 to sage-2.10.4

comment:4 Changed 14 years ago by ncalexan

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 craigcitro

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 craigcitro

Added a second patch that addresses all of the above issues.

Changed 14 years ago by craigcitro

comment:7 Changed 14 years ago by craigcitro

  • 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 ncalexan

comment:8 Changed 14 years ago by ncalexan

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 craigcitro

  • Keywords editor_craigcitro added

comment:10 Changed 14 years ago by mabshoff

This has been sitting around forever. Any movement here?

Cheers,

Michael

comment:11 Changed 13 years ago by davidloeffler

  • Component changed from number theory to number fields

comment:12 Changed 12 years ago by mstreng

  • Cc mstreng added
  • Report Upstream set to N/A

Same question as mabshoff 22 months ago...

comment:13 Changed 12 years ago by mstreng

  • Authors set to Craig Citro, Marco Streng
  • 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.

Changed 12 years ago by mstreng

apply only this latest file

Note: See TracTickets for help on using tickets.