On Thursday, August 29, 2013 8:52:02 AM UTC-7, Simon King wrote:
>
> Hi Stefan, 
>
> On 2013-08-29, Stefan <stefan...@gmail.com <javascript:>> wrote: 
> > Actually, this is not quite true. reduce() is, by default, called 
> > automatically for elements of exact rings at creation time. It will 
> > correctly get rid of common factors, but it does not normalize the 
> leading 
> > coefficients: 
>
> Bad. But of course, it is all only defined up to units. 
>

On the other hand, in a lot of cases there are ways of normalizing, such as 
making the leading coefficient of the denominator monic.

There are also many fields where there is no GCD, but a "denominator" can 
still be uniquely defined: think number fields and function fields that are 
a finite extension of a rational function field. 

I suspect avoiding normalization is only seemingly a saving: When you start 
adding elements together, you'll quickly see things explode if you're not 
normalizing fractions.

Of course, keeping elements in product form can be a very large saving if 
you really need to compute in the multiplicative group of the function 
field, so there is room for using multiple internal representations of 
elements.

So I'd say: equip domains with an optional normalize_fraction routine that 
normalizes a tuple (N,D) to (N',D') with a unique denominator D'. If that 
method is available, use it (always!) in FractionField and make elements 
hashable.

-- 
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/groups/opt_out.

Reply via email to