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
-~----------~----~----~----~------~----~------~--~---

Reply via email to