#13213: Comparisons in real number field
-------------------------------------------------+--------------------------
       Reporter:  vdelecroix                     |         Owner:  vdelecroix   
           Type:  enhancement                    |        Status:  needs_work   
       Priority:  major                          |     Milestone:  sage-5.3     
      Component:  number fields                  |    Resolution:               
       Keywords:  real number field, comparison  |   Work issues:               
Report Upstream:  N/A                            |     Reviewers:  Burcin Erocal
        Authors:  Vincent Delecroix              |     Merged in:               
   Dependencies:                                 |      Stopgaps:               
-------------------------------------------------+--------------------------
Changes (by vdelecroix):

  * status:  needs_review => needs_work


Old description:

> Provide the order from RR for real quadratic number field. The current
> implementation does
> {{{
> sage: K.<sqrt2> = NumberField(x^2 - 2, 'sqrt2', embedding=1.4142)
> sage: sqrt2 < 100
> False
> }}}
>
> There is a patch for quadratic field. Another one is comming for general
> number fields. Note that this patch is partly a duplicate because of
> #7160.
>
> The lost of speed is about x5 for positive discriminant and almost
> nothing for negative ones
> {{{
> sage: K.<sqrt2> = QuadraticField(2,'sqrt2',embedding=1.4142)
> sage: a = (3*sqrt2 + 18)/7
> sage: b = (5*sqrt2 + 14)/5
> sage: %timeit a < b
> 625 loops, best of 3: 2.36 µs per loop
>
> sage: K.<s> = QuadraticField(-2)
> sage: a=3*s+2/4
> sage: b=5/7*s+1/3
> sage: %timeit a < b
> 625 loops, best of 3: 600 ns per loop
> }}}
> Timings without the patch
> {{{
> sage: sage: K.<sqrt2> = QuadraticField(2,'sqrt2',embedding=1.4142)
> sage: a = (3*sqrt2 + 18)/7
> sage: b = (5*sqrt2 + 14)/5
> sage: %timeit a < b
> 625 loops, best of 3: 491 ns per loop
>
> sage: K.<s> = QuadraticField(-2)
> sage: a=3*s+2/4
> sage: b=5/7*s+1/3
> sage: %timeit a < b
> 625 loops, best of 3: 488 ns per loop
> }}}

New description:

 The order of quadratic field is not induced from the order of RR and CC
 (when there is an embedding). More precisely we have
 {{{
 sage: K.<sqrt2> = NumberField(x^2 - 2, 'sqrt2', embedding=1.4142)
 sage: sqrt2 < 100
 False
 }}}
 which is not compatible with the order of RR and
 {{{
 sage: K.<i> = QuadraticField(-1)
 sage: i > 1
 True
 sage: 1 > i
 True
 }}}
 which is not compatible (!) with the order of CC.

 There is a patch for quadratic field. Another will come for general number
 fields. Note that this patch is partly a duplicate because of #7160. The
 modifications for the order on complex number field modify the behavior of
 many commands (output order).

 The lost of speed is about x5 for positive discriminant and almost nothing
 for negative ones
 {{{
 sage: K.<sqrt2> = QuadraticField(2,'sqrt2',embedding=1.4142)
 sage: a = (3*sqrt2 + 18)/7
 sage: b = (5*sqrt2 + 14)/5
 sage: %timeit a < b
 625 loops, best of 3: 2.36 µs per loop

 sage: K.<s> = QuadraticField(-2)
 sage: a=3*s+2/4
 sage: b=5/7*s+1/3
 sage: %timeit a < b
 625 loops, best of 3: 600 ns per loop
 }}}
 Timings without the patch
 {{{
 sage: sage: K.<sqrt2> = QuadraticField(2,'sqrt2',embedding=1.4142)
 sage: a = (3*sqrt2 + 18)/7
 sage: b = (5*sqrt2 + 14)/5
 sage: %timeit a < b
 625 loops, best of 3: 491 ns per loop

 sage: K.<s> = QuadraticField(-2)
 sage: a=3*s+2/4
 sage: b=5/7*s+1/3
 sage: %timeit a < b
 625 loops, best of 3: 488 ns per loop
 }}}

--

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13213#comment:9>
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