>> > > 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 -~----------~----~----~----~------~----~------~--~---