Hello again, The problem appears to be with the routines write_unsigned(..) and read_unsigned(..) in archive.cpp. They work fine for values less than 128, but as an example, try passing 128. The former writes only one byte (and maybe there should be a char cast there??), but the read algorithm reads in two bytes. Sorry I don't have the fix for this, I just implemented a hack of always writing out precisely four bytes every time, which works for me at the moment... Hope this helps. Will On Fri, 30 Mar 2001, Will Woods wrote:
Hi,
I am working with large matrices (~100x100) and had trouble with restoring archives of them. I wrote the attached test program which just adds the same expression to an archive n times (with a unique name each time). For any n, the expression can always be retrieved from the original archive. But reloading it from file into a new archive object only succeeds for n<108 (in this case - other size expressions have different limits).
Great package though. Our problem solution went from several hours under Macsyma to just 36 seconds with GiNaC!
Will
System:
GiNaC 0.8.0 CLN 1.1.0 Linux Mandrake 7.2 AMD 700Mhz 128Mb