Opened 7 years ago

Last modified 6 years ago

#18251 new defect

CombinatorialFreeModule should use coercion for comparisons — at Version 3

Reported by: tscrim Owned by: tscrim
Priority: critical Milestone: sage-7.4
Component: coercion Keywords: zero
Cc: nthiery, darij, nbruin, robertwb, chapoton, vdelecroix Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by jdemeyer)

Currently we have the following in Sage:

sage: C = CombinatorialFreeModule(QQ, ['a','b'])
sage: C.zero() == ZZ(0)
True
sage: C.zero() == QQ(0)
False

This should be fixed by using coercing comparison (_cmp_ or _richcmp_).

We need access to the CPython function PyObject_RichCompare() which —as far as I know— is not exposed by Python. So we need a Python interface to PyObject_RichCompare() which I propose to call richcmp().

Change History (3)

comment:1 Changed 6 years ago by jdemeyer

  • Description modified (diff)
  • Summary changed from Equality comparison with 0 is not consistant to CombinatorialFreeModule should use coercion for comparisons

comment:2 Changed 6 years ago by jdemeyer

  • Cc chapoton added
  • Description modified (diff)

comment:3 Changed 6 years ago by jdemeyer

  • Description modified (diff)
  • Milestone changed from sage-6.7 to sage-7.4
Note: See TracTickets for help on using tickets.