Re: Limit to length of lists?
- To: mathgroup at smc.vnet.net
- Subject: [mg34162] Re: [mg34140] Limit to length of lists?
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Tue, 7 May 2002 03:54:00 -0400 (EDT)
- References: <B8FC12CF.21B11%nitlion@mindspring.com>
- Sender: owner-wri-mathgroup at wolfram.com
Bob, I have tried the sequence of steps that you give below, and everything behaves correctly with Widows 98, though I must say that I am using a beta copy of Mathematica 4.2. > The problem seems to be that you can't define a large list just by listing > its entries. > > Create a table with a lot of entries: > > in:= tt = Table[1, {40000}] > out:= {1,1,...,1} > > in:= Length[tt] > out:= 40000 > > So far so good. Now, try to make a new list by cutting and pasting that > result. > > in:= ss = {1,1,...,1} > out:= << no output, which is the first clue > > in:= Length[ss] > out:= 0 > > in:= ss[[1]] > Part::partd: > Part specification ss[[1]] is longer than depth of object. > out:= ss[[1]] Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 ----- Original Message ----- From: "Bob Harris" <nitlion at mindspring.com> To: mathgroup at smc.vnet.net Hayes" <hay at haystack.demon.co.uk> Subject: [mg34162] Re: [mg34140] Limit to length of lists? > I wrote: > > I'm running into a problem where it seems like you just aren't allowed to > > assign a list of 40 thousand integers to a variable. > > The first replies that are coming in show me that I didn't describe my > problem very well. Probably because I still had some remnants in there of > what I was originally trying to do. At the time I posted that example, I > thought the size of the numbers within my list mattered; but I now know > they don't. > > Allan Hayes replied: > > Below I simulate your process as I understand it - apart from the cut and > > pasting, which I don't see the need for. ... > > The cut and paste is what causes the problem. The steps you show work fine > on my machine, too. > > David Park replied: > > Unfortunately, you are not telling us exactly what you did. It looks like ss > > did not get set to a list. If you feed ss to the kernel what do you get? > > > > Anyway, on a Windows98 machine there is no problem in storing a list of that > > size. Here I make a 40000 long list of your maximum number size. ... > > Yep, those steps work fine on my machine, too. > > Let me make may example more specific. > > The problem seems to be that you can't define a large list just by listing > its entries. > > Create a table with a lot of entries: > > in:= tt = Table[1, {40000}] > out:= {1,1,...,1} > > in:= Length[tt] > out:= 40000 > > So far so good. Now, try to make a new list by cutting and pasting that > result. > > in:= ss = {1,1,...,1} > out:= << no output, which is the first clue > > in:= Length[ss] > out:= 0 > > in:= ss[[1]] > Part::partd: > Part specification ss[[1]] is longer than depth of object. > out:= ss[[1]] > > While a cut and paste in this example seems silly, it models what I was > originally trying to do-- create a large list with some other program, and > import it into Mathematica. I've tried a variety of techniques and they all > fail in their own ways. When I got to the point where cut and paste failed, > I realized there seems to be something intrinsically wrong in handling large > lists, and not in my methods. > > The next thing I tried, just to try to understand what's going on, was to > save the notebook (which takes up 268K as a file), quit mathematica, and > launch the notebook again. Before doing anything, I did MemoryInUse[], and > it says 998084 bytes are in use for the session. My OS tells me that > mathematica is using about 4MBytes (this discrepancy is probably explained > by the fact that the executable is about 3MBytes). I've allowed a 20 MByte > memory partition for mathematica, so it's got 16MBytes to spare. That seems > like plenty of elbow room for a list with 40 thousand entries. > > I then tried to assign to ss (the assignment was still in the notebook, so I > didn't have to bother with tt), not by cutting and pasting, but by clicking > on the assignment and hitting shift-return. I get the same result-- ss > didn't seem to get assigned. MemoryInUse[] now says 1024860 bytes are in > use. The attempt to assign to ss seems to have used up about 26KBytes. > > Hopefully that's a better description. > > Thanks for any help, > Bob H > >