For the last two in your list it is quite possible that I wrote the code and did not understand what I was doing at the time, just happy that what I wrote worked. (Particularly true of the WeierstrassIsomorphism code which I wrote in 2007, the very first Sage/python code I ever did write). So please do what needs to be done, and if it still works (and is no slower) I will certailny not complain!
John On 4 March 2015 at 10:31, Jeroen Demeyer <jdeme...@cage.ugent.be> wrote: > Hello, > > I am trying to simplify and optimize the "comparison" part of the coercion > framework at #17890. > > There is one convention we currently have in Sage which is posing an > obstacle: if a Python class (not a Cython cdef class) inheriting from > Element defines both _cmp_c_impl and __cmp__, then __cmp__ should be called. > This is particularly annoying because testing for __cmp__ takes a lot more > time than testing for _cmp_c_impl. > > In #17890, I want to rename _cmp_c_impl to _cmp_ and make it cpdef (like the > other arithmetic functions such as _add_). Then I also would like to reverse > the convention and make _cmp_ take priority over __cmp__. Of course, for > cmp() to work, both __cmp__ and _cmp_ will need to be defined (but this is > already true for cdef classes). Any comments or objections? > > > Note: below is the list of affected classes, where currently both > _cmp_c_impl and __cmp__ are defined: > > <class > 'sage.combinat.root_system.weyl_group.ClassicalWeylSubgroup_with_category.element_class'> > <class > 'sage.combinat.root_system.weyl_group.WeylGroup_gens_with_category.element_class'> > <class > 'sage.combinat.set_partition.SetPartitions_all_with_category.element_class'> > <class > 'sage.combinat.set_partition.SetPartitions_setn_with_category.element_class'> > <class > 'sage.combinat.set_partition.SetPartitions_setparts_with_category.element_class'> > <class > 'sage.combinat.set_partition.SetPartitions_set_with_category.element_class'> > <class 'sage.geometry.fan_morphism.FanMorphism'> > <class 'sage.groups.braid.BraidGroup_class_with_category.element_class'> > <class > 'sage.groups.matrix_gps.group_element.FinitelyGeneratedMatrixGroup_gap_with_category.element_class'> > <class > 'sage.groups.matrix_gps.group_element.LinearMatrixGroup_gap_with_category.element_class'> > <class > 'sage.groups.matrix_gps.group_element.SymplecticMatrixGroup_gap_with_category.element_class'> > <class > 'sage.modular.abvar.morphism.EndomorphismSubring_with_category.element_class'> > <class 'sage.modular.hecke.degenmap.DegeneracyMap'> > <class 'sage.modular.hecke.morphism.HeckeModuleMorphism_matrix'> > <class 'sage.modules.fg_pid.fgp_morphism.FGP_Morphism'> > <class 'sage.modules.free_module_morphism.FreeModuleMorphism'> > <class 'sage.modules.matrix_morphism.MatrixMorphism'> > <class 'sage.modules.vector_space_morphism.VectorSpaceMorphism'> > <class > 'sage.rings.number_field.morphism.RelativeNumberFieldHomomorphism_from_abs'> > <class > 'sage.schemes.elliptic_curves.ell_curve_isogeny.EllipticCurveIsogeny'> > <class > 'sage.schemes.elliptic_curves.weierstrass_morphism.WeierstrassIsomorphism'> > > -- > 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 sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at http://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 sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.