Title: INT_MAX exceeded
Submitter: Etienne Magro
Date: Wed Jul 2 04:51:15 2008
System: x86-Linux-debian 4.0 kernel 2.6.18-6-686
I have a "big" dot-file (about 50000 edges) and when I run this command :
$ neato -Tjpg graph7-52600.dot -o graph7-52600-neato.jpg &
The program stops some minutes after with a empty output file and this error :
gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully
Input file: b1384.dot
I know that there are very many edges, but in some weeks, I will have very bigger dot-file with about 1.000.000 edges.
So if you can fix it, it will be very helpful for me !
I think it is because my computer is a 32-bit one and I have too many nodes/edges for the int type.
Maybe (I am not sure) replacing the wrong int by long could help.
Sorry, the problem is not (directly) in the size of your graph but in the size of the final image being produced.
It would appear that your final image would require more than 2^32 bytes.
Graphviz relies on libgd to produce jpg output. Thus, to get around this problem, you could:
- rebuild libgd on your machine to use 64 bit ints, then rebuild neato.
- use a non-bitmap format like postscript or SVG
- shrink your final drawing using the size attribute.
Try running just
neato graph7-52600.dot > out.dot
The out.dot file will have a bb attribute indicating how large the drawing is in points.
You can then decide how much you would like to scale the drawing down, and run
neato -n2 -T... -Gsize=...
to get the output format and size you want.