>> > > When an elliptic curve is created the code in the __init__ function in
>> > > ell_generic.py (lines 164-5) do cause a multivariate polynomial ring
>> > > to be created.  In this case it's a new ring each time as the base
>> > > field is always a new field.
>>
>> > How is the multivariate polynomial ring created?
>>
>> First the projective plane is constructed, effectively by
>> PP=ProjectiveSpace(2,K), and then the ring by PP.coordinate_ring(),
>> which calls
>>  PolynomialRing(self.base_ring(),
>>                                self.variable_names(),
>> self.dimension_relative()+1)
>> so in effect we call PolynomialRing(K).
>>
>> John
>
> Well, is there any way to avoid this? It seems like a bad thing to
> waste a couple GB on rings that in the end aren't used any more once
> the curve E is delete.
>

I can confirm (if there was any doubt) that one can try

{{{
for p in prime_range(upper):
    R.<x, y, z> = PolynomialRing(GF(p), 3)
}}}

and watch it eat 800MB of RAM.

I can see good reasons why we want the current behaviour of
"uniqueness of parents", and what we just saw here is a good reason
why we might *not* want it.  How can we reconcile this?  Can we make
it easy to turn off "uniqueness of parents" in some situations?


Best,
Alex

-- 
Alex Ghitza -- Lecturer in Mathematics -- The University of Melbourne
-- Australia -- http://www.ms.unimelb.edu.au/~aghitza/

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

Reply via email to