Ok, now I understand... ;-) The trouble is that obviously, I have no idea of how many variables I will need. I do no want to ask the user, as not having to say it is -- really-- a relief !
My other problem is that sometimes computation on symbolic variables take a lot of time, and I think it comes from the fact that they are "so" general. Do you think it could be interesting to create a "custom" variable, just for linear functions ( and perhaps only for this application ) ? Do you think this could be a way to speed it up ? Thanks !!!! Nathann On Nov 26, 10:07 am, David Kohel <drko...@gmail.com> wrote: > Rather I would say that "sparse" should be the default: > > P.<x> = InfinitePolynomialRing(QQ, implementation="sparse") > > Moreover, this syntax (and for gens, etc.) is inconsistent > with PolynomialRing. The syntax: > > PolynomialRing(ring, integer, sparse=True) > > would be a more coherent, where integer=Set(ZZ) would give > an infinite polynomial ring. > > --David > > On Nov 26, 9:43 am, Robert Bradshaw <rober...@math.washington.edu> > wrote: > > > On Nov 26, 2009, at 12:35 AM, Florent Hivert wrote: > > > > Hi Nathann, > > > >> For Linear Programming, I need to create plenty of symbolic variables > > >> which I use to represent linear functions.... To do it, I use the > > >> class InfinitePolynomialRing which lets me create them easily ( and > > >> it > > >> is really needed, as my colleagues often have to create Linear > > >> Programs using 1000~2000 variables. This is not a problem for the > > >> solvers, but Sage does not like it : > > >> To understand my problem, just try this code : > > > >> X.<x> = InfinitePolynomialRing(RR) > > >> sum([x[i] for i in range(200)]) > > > >> Don't you think it is a bit long just to generate a sum ? I have to > > >> admit I do not know how this class is coded, and the slowness may be > > >> required for applications different from mine.. But wouldn't there be > > >> a way to speed this up ? If not, do you know of any way to generate > > >> many symbolic variables ( they do not need to be polynomial, just > > >> linear in my case ) ? > > > > This is indeed a problem. I think I know the cause... Each time a > > > new variable > > > is created, the ring itself is somehow changed. Therefore for each new > > > variable in your sum, there is a big computation which convert the > > > former sum > > > to the new ring. Though this could be improved by using a similar > > > trick than > > > doubling the size of a list when appending element, I'm not sure > > > that's what > > > we want. > > > I think this makes perfect sense...I'm actually surprised it's not > > implemented that way already. > > > > In the mean time. I have the following workaround: Just start by > > > declaring your last variable: > > > If one knows how many variables one needs ahead of time, than what's > > the advantage of using the InfinitePolynomialRing over a finite one of > > the right size? > > > - Robert -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org