*** loadsig_mcs functions were contributed by Mark Spaeth.  

--- Here is a summary from Mark on what it provides: ---

Just FYI, some of the newer hspice revisions seem to use variable
block sizes rather than fixed 0x2000 byte blocks, and your code seemed
to assume a block size (other than the block at the end of the file).
I initially hacked up your code to use the header information in each
block to make sure the data was segmented correctly, and that seemed
to be working with most files, but I was still chasing down some
strange cases where it'd fail, and the code was getting pretty ugly so
I ended up doing a full rewrite to clean up all the kludges.

The biggest changes are that I only look at the block headers before
allocating the data structures rather than reading the data twice, and
that I read in full data blocks at a time rather than fread-ing single
data entries, which speeds things up considerably when the target data
file is being read over the network (single NFS transaction for 0x2000
bytes instead of one for 0x04 bytes).  I haven't fully tested my code
against all the types of files your code handled, (particularly cppsim
data), but it does still have the endian-ness checks to properly parse
files from sparc on x86 and vice-versa.  If you'd like to kick it
around and potentially release it in a later release of your tools,
feel free.  

I am still assuming 32-bit data, but that still seems to be
what the 64b versions of hspice are spitting out, and I assume one of
the 0x00000004 entries in the block headers would change to 0x00000008
if they ever moved to long doubles, and that'd break the existing code
for both of us anyway.

I've also included a mex-able version of lssig which operates on files
rather than structures, and a lssig.m wrapper to overload the default lssig.m
function.
