The function generic order_from_multple() does allow the information
to be cached, and the function Victor referred to should use that.

John

2009/7/31 VictorMiller <victorsmil...@gmail.com>:
>
> Simon, Thanks.  I think that in order for this to work, that finite
> field should have a new method, something like
>
> @cached_method
> _cofactor_information(self):
>   N = self.order()
>   return [ (N//p**r,p) for p,r in arith.factor(N)]
>
> which would factor the order, and then return all the cofactors and
> prime associated with them, and then change multiplicative order to
> use that method.
>
> Victor
>
> On Jul 31, 11:16 am, Simon King <simon.k...@nuigalway.ie> wrote:
>> Hi Victor,
>>
>> On Jul 31, 3:59 pm, VictorMiller <victorsmil...@gmail.com> wrote:
>>
>> > I was just looking at the code for multiplicative_order in
>> > finite_field_element.py, and noticed that it factors the group order,
>> > and find the "cofactors" corresponding to each prime power dividing
>> > the order (which is really the only algorithm that I know to do
>> > this).  To avoid repeating this calculation for elements of finite
>> > fields it would be nice if the finite field could cache this
>> > information, so that it wouldn't have to be recalculated.  The same
>> > remark should hold for finite abelian groups (since it's really the
>> > same algorithm).
>>
>> Do you know the cached_method decorator? In order to cache the field
>> (or group) order, you just need to import the decorator by
>>    from sage.misc.cachefunc import cached_method
>> and then, right in front of the method definition, put @cached_method:
>>
>>     @cached_method
>>     def multiplicative_order(FiniteField_givaroElement self):
>>         ...
>>
>> Cheers,
>>     Simon
> >
>

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an 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