#2329: [with patch, pending another patch] add interface to Pari's rnfisnorm
-----------------------------------------+----------------------------------
   Reporter:  craigcitro                 |       Owner:  craigcitro       
       Type:  enhancement                |      Status:  needs_work       
   Priority:  major                      |   Milestone:  sage-4.5.3       
  Component:  number fields              |    Keywords:  editor_craigcitro
     Author:  Craig Citro, Marco Streng  |    Upstream:  N/A              
   Reviewer:  Nick Alexander             |      Merged:                   
Work_issues:                             |  
-----------------------------------------+----------------------------------
Changes (by newvalueoldvalue):

  * priority:  minor => major
  * reviewer:  => Nick Alexander
  * author:  => Craig Citro, Marco Streng


Old description:

> 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 `False` if `x` is not a norm from `L`, and if
> `x` is a norm from `L`, will return an element of `L` whose norm is `x`.
>
> According to the Pari documentation, these functions depend on GRH when
> `L/K` is not known to be Galois, and work independent of any such
> hypothesis otherwise (at least, that's what I got from reading the Pari
> manual).
>
> 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 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`.

New description:

 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`.

--

Comment:

 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.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/2329#comment:13>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to