On Thursday, January 5, 2017 at 2:27:06 AM UTC-8, John Cremona wrote:
>
> I have a degree 5 polynomial whose Galois group is large (S_5): 
>
> sage: x = polygen(QQ) 
> sage: f = x^5 - 6*x^3 - x^2 + 6*x - 1 
>
> I can compute its splitting field easily, thanks to code written by 
> Jeroen Demeyer I believe: 
>
> sage: %time L = f.splitting_field(names='b') 
> CPU times: user 1min 1s, sys: 272 ms, total: 1min 2s 
> Wall time: 1min 2s 
>
> Note that the result is a number field of degree 120.  However, if I 
> form the degree 5 field by adjoining one root of f first, and then ask 
> for its Galois closure, it takes very much longer: 
>
> sage: K.<a> = NumberField(f) 
> sage: %time L = K.galois_closure(names='b') 
> CPU times: user 15min 24s, sys: 36 ms, total: 15min 24s 
> Wall time: 15min 25s 
>
> Any idea why?  Essentailly the only difference I can see is that in 
> the second case the polynomial f is first base-changed to K and then 
> the method splitting_field is applied to that, but it is not clear to 
> me why that should be slower since I think the first step of computing 
> f.splitting_field() would do just that anyway? 
>

I haven't looked at the code but that's certainly not the only way to 
arrive at the galois closure. Some smart resolvent manipulations could give 
you (a multiple of) the minimal polynomial of a generator of the galois 
closure. You would never be factoring polynomials that are explicitly given 
over a proper extension. I don't know if that would be faster, but 
polynomial aritmetic over ZZ and QQ is so much more optimized than over 
number fields, it wouldn't surprise me if there is a good range where it is.
 

> It would be very convenient for me to gain this speedup, by changing 
> the method galois_closure() if necessary.  I already plan to make the 
> latter a @cached_method. 
>

I'm tempted to say: beware of memory leaks. Caching an extension on the 
base field would probably imply that both fields are now participating in a 
reference cycle, anchored in the global UniqueRepresentation cache, so they 
would be uncollectable by the GC.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to