bob@WUBIOS.WUSTL.EDU (Bob Parks) (02/03/90)
Seems to me that if the limit for IML matrices is 87 by 87 then there is something quite wrong with the compilers. The brain-damaged 8086 only has 16 bit registers and hence, without some work, the largest 'item' that most compilers would fool with would be 64k bytes bec other wise you had to do some complicated addressing stuff. Has absolutely nothing to do with EMS. An 87 by 87 matrix will fit into 60552 bytes (IML uses full 8 bytes for its variables regardless of how long you store them in a data step). In fact you should be able to fit a 90 by 90 (sqrt(64*1024/8)=90.5). There are some fortran compilers that can handle arrays larger than a single 'item' of 64k. I know that I bought GUASS on the promise two years ago that it would handle matrices larger than the 64k 90x90 limit but I do not have it yet (GAUSS may have updated, I haven't). I just hope that there was some confusion about EMS with an 87x87. With a good fortran compiler, and without too large a program you should be able to have a 250x250 matrix in DOS (which requires 500,000 bytes). If the compiler could use EMS then you could get larger but I think the overhead would be too great and do not know of compilers that will allow that in the 8088 world. Ofcourse 80386 code could handle really big matrices if you had the extended memory there (I think 80386s have 24 bit registers but my hardware days are long gone). I'm in my flame proof suit right now so feel free. Bob