Re: Limit to length of lists?
- To: mathgroup at smc.vnet.net
- Subject: [mg34161] Re: [mg34140] Limit to length of lists?
- From: Bob Harris <nitlion at mindspring.com>
- Date: Tue, 7 May 2002 03:53:58 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
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