Number: 1384
Title: INT_MAX exceeded
Submitter: Etienne Magro
Date: Wed Jul 2 04:51:15 2008
Subsys: Neato
Version: 2.18
System: x86-Linux-debian 4.0 kernel 2.6.18-6-686
Severity: major
Problem:
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
Comments:
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. Comments: [erg] 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.

or

- use a non-bitmap format like postscript or SVG

or

- 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.
Owner: *
Status: *