On 13-Feb-08, at 2:15 PM, William Stein wrote:

>
> On Feb 13, 2008 2:09 PM, Nick Alexander <[EMAIL PROTECTED]> wrote:
>>
>>
>> On 13-Feb-08, at 12:28 PM, William Stein wrote:
>>
>>>
>>> On Feb 13, 2008 9:57 AM, Nick Alexander <[EMAIL PROTECTED]>  
>>> wrote:
>>>>
>>>>
>>>> On 13-Feb-08, at 6:06 AM, John Cremona wrote:
>>>>
>>>>>
>>>>> I just discovered sage.rings.arith.discrete_log_generic(), not  
>>>>> until
>>>>> after implementing a similar function for elliptic curves over
>>>>> finite
>>>>> fields (patch to be submitted before too long).  I thought it  
>>>>> was a
>>>>> pity that we cannot apparently use the same code for dlogs in an
>>>>> additive group (as in what I just wrote) and a multiplcative  
>>>>> one (as
>>>>> in discrete_log_generic()).  Could we?
>>>>
>>>> At this time, not easily.
>>>
>>> I think it would be trivial.  Just pass in a function of two
>>> arguments called
>>> "mul" instead of using "*".   It's the same way Python's sort works.
>>> (One should probably also pass in a pow function.)
>>
>> John also needs identity and inverses, which requires passing in
>> three or functions.  Or, more likely a struct, which in an OO
>> language, I call an object.
>>
>> To me, that means you're writing a special purpose "abstract group"
>> wrapper for discrete logs, which is fine.  But I believe the heavier
>> categorical stuff is intended to make doing this much more general
>> and pervasive throughout the system.  Doing one instance ad-hoc is
>> easy; doing the general case is not easy (imho).
>
> And doing the general case is easier if you do one instance  :-)

Indeed!  I will referee the patch.

Could I suggest a BlackboxGroupInterface class providing the basic  
machinery, and an _as_blackbox_group in each ring/group that returns  
an instance of such a class?  Would the category people care to comment?

Nick

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to