#14239: symbolic radical expression for algebraic number
-------------------------------------+-------------------------------------
Reporter: gagern | Owner: davidloeffler
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.2
Component: number fields | Resolution:
Keywords: | Merged in:
Authors: | Reviewers: Marc Mezzarobba
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/gagern/ticket/14239 | 039f4bf3bff139ce2630fe2fb8fd8f542096a498
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by nbruin):
The problem is, an expression like this:
{{{
(2/9*I*sqrt(443)*sqrt(3) + 53/27)^(1/3)
}}}
has (at least) 3 possible values. You need to specify branch cuts to
single out a particular value in, say, CC. Algebraically, `sqrt(443)`,
`sqrt(3)`, and `I` have the same problem. So when you first construct this
element you are making essentially the ring
{{{
QQ[x,y,z,w]/(x^2-443,y^2-3,z^2+1,w^3-(2/9*z*x*y + 53/27))
}}}
which is of rather high degree.
The other elements you add to this will just add to the degree, since the
next time a `sqrt(443)` is encountered, it is not algebraically clear that
this is supposed to be the same as the one designated by `x`. The complex
embedding that comes with AA or Qbar specifies some of the ambiguity
(e.g., the branch cut of `sqrt(443)` will ensure the "positive" root
always), but once you start taking roots of complex numbers, the cuts
might not even do what they algebraically are supposed to (e.g.,
`-(z)^(1/3) != (-z)^(1/3)` ).
While in the expression for `b` that you give, it is exactly the same
expression that you are taking the cube root of repeatedly, one can only
see this after careful inspection. For a human it's clear you're meaning
the "same" cube root every time, but the computer has no immediate way of
finding that out. A priori, all the choices made by `sqrt...` and
`(...)^(1/3)` are considered as algebraically unrelated and only with
laborious computations using the embedding in `CC` does one rediscover
those relations. If instead you do
{{{
u=Qbar(sqrt(-3))
v=Qbar(sqrt(443))*u
w=Qbar( (2/9*v+53/27)^(1/3))
}}}
and then construct b from that, you should already get a little faster
results.
The problems you are running into are fairly well-understood and real.
Symbolic notation as you use it fails to express the full algebraic
relations once you start repeating related expressions.
--
Ticket URL: <http://trac.sagemath.org/ticket/14239#comment:12>
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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.