[bit.listserv.sas-l] 87 by 87 matrices

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