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