On 5 Feb 2016 12:27, "Vincent Delecroix" <[email protected]> wrote:
>
> Hello John,
>
> Indeed. When there is a real embedding defined, the order is induced from
RR. When there is none, the comparison is just
>     return rich_to_bool(op, 1)
> The very same oredring as in Nathann example.
>
> A total order can easily be obtained by comparing coefficients. Though it
is not implemented.
>

Thanks for confirming what I suspected.   I don't know why I thought
otherwise.

John
> Vincent
>
>
> On 05/02/16 09:12, John Cremona wrote:
>>
>> On 5 February 2016 at 12:04, John Cremona <[email protected]> wrote:
>>>
>>> Understood.  I thought that a total order was implemented for number
>>> field elements, but looking in the code I could not even find the
>>> relevant _cmp_ function!
>>
>>
>> I think it is possible that the clever code people have written to
>> implement ordering of number field elements when these have an
>> embedding into RR does nothing at all when there is no real embedding
>> (true in my example), meaning that there is no sensible python-style
>> sorting available at all.  If true that would be disastrous.  I (for
>> one) absolutely need for there to be a well-defined total order for
>> number field elements, for purposes of sorting uniquely, regardless of
>> any implementation of  mathematical order.
>>
>> I know how to provide my own key function for sorting, and will have
>> to re-implement this since the one I had relied on this incorrect
>> assumption that number field elements had a total ordering already.
>>
>> John
>>>
>>>
>>> John
>>>
>>> On 5 February 2016 at 11:49, Nathann Cohen <[email protected]>
wrote:
>>>>
>>>> If the default comparison on your objects is not a total order there
>>>> is no guarantee that the output of a sorting algorithm (name any that
>>>> you know) will give you a unique output.
>>>>
>>>>      sage: sorted([{1,2},{3,4}])
>>>>      [{1, 2}, {3, 4}]
>>>>      sage: sorted([{3,4},{1,2}])
>>>>      [{3, 4}, {1, 2}]
>>>>
>>>> Which comes from:
>>>>
>>>>      sage: {3,4} < {1,2}
>>>>      False
>>>>      sage: {3,4} > {1,2}
>>>>      False
>>>>
>>>> Nathann
>>>>
>>>>
>>>> On 5 February 2016 at 11:39, John Cremona <[email protected]>
wrote:
>>>>>
>>>>> I have two lists of 6 (relative) number field elements:  they are the
>>>>> same up to a permutation, as revealed by turning each into a set, but
>>>>> the do not sort to the same list!
>>>>>
>>>>> sage: type(L1)
>>>>> <type 'list'>
>>>>> sage: type(L2)
>>>>> <type 'list'>
>>>>> sage: type(L1[0])
>>>>> <type
'sage.rings.number_field.number_field_element.NumberFieldElement_relative'>
>>>>> sage: type(L2[0])
>>>>> <type
'sage.rings.number_field.number_field_element.NumberFieldElement_relative'>
>>>>> sage: len(L1)==len(L2)==6
>>>>> True
>>>>>
>>>>> sage: L1==L2
>>>>> False
>>>>> sage: set(L1)==set(L2)
>>>>> True
>>>>> sage: sorted(L1)==sorted(L2)
>>>>> False
>>>>>
>>>>> This is causing a doctest to fail randomly, since in the code I apply
>>>>> a sort function to such lists and the output is not always the same.
>>>>> (See #19229, where one patchbot is happy but another is not;  none of
>>>>> the changes in that ticket affect the relevant code at all.)
>>>>>
>>>>> John
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
Groups "sage-devel" 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 https://groups.google.com/group/sage-devel.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
Groups "sage-devel" 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 https://groups.google.com/group/sage-devel.
>>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
"sage-nt" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
> To post to this group, send an email to [email protected].
> Visit this group at https://groups.google.com/group/sage-nt.
>
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-nt" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send an email to [email protected].
Visit this group at https://groups.google.com/group/sage-nt.
For more options, visit https://groups.google.com/d/optout.

Reply via email to