2009/4/8 Bill Hart <goodwillh...@googlemail.com>: > > Two more issues for ZZ: > > Duplicate methods: > > n.prime_factors and n.prime_divisors do precisely the same thing and > have the same docstring, even down to one of the docstrings having > examples for the wrong function. >
Somewhere in rings/integer/pyx you see the line prime_factors = prime_divisors which was added a long time ago by me. Perhaps we should do the same for the place you found. I do like having both names available (though I know some don't); certainly both names are used a lot. But I definitely think that when it makes sense to have two alternative names for on function then this should be done as I did it (simple assignment) and _not_ by duplicating code! John > Missing methods: > > n.number_of_divisors (note one does not need to compute the divisors > to compute this function) > > Bill. > > On 8 Apr, 07:17, Bill Hart <goodwillh...@googlemail.com> wrote: >> I've been looking through the methods for ZZ with a view to doing a >> Magma/Sage comparison for marketing purposes. I've been noticing a few >> issues as I go. There's going to be lots of these, so I think I should >> give my list in small blocks. I can file trac tickets for them once >> someone verifies that these are really not just me not knowing enough >> python, or whatever. >> >> ZZ >> ==== >> >> Speed Issues: >> >> * n.bits takes much longer than n.binary(), but the latter needs to >> compute the former first!!! >> * n.coprime_integers uses a hopelessly slow algorithm (we should at >> least use a sieve) >> * n.factor is bizarrely slow for small integers (e.g. n < 1,000,000) >> by a HUGE factor >> * n.exact_log can be done faster for small bases by making careful use >> of the identity log_m(n) = log_2(n)/log_2(m) (I wrote a crappy broken >> python implementation and timed this - I don't know how to write it >> properly as I don't know enough about Sage yet) >> >> Missing doc strings: >> >> * n.base_extend >> * n.additive_order >> * n.category >> * n.db (doesn't give an example) >> * n.degree >> >> Missing methods: >> >> * n.euler_phi >> * n.random (random integer less than n - I will believe you if you >> tell me this is not the python way) >> >> Weird names: >> >> * n.divide_knowing_divisible_by (perhaps div_exact, exact_quotient, >> divide_exact would be better) >> >> Documentation issues: >> >> * n.dump says "Same as self.save(filename, compress)", but compress is >> not discussed in save docstring >> >> Bill. > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---