DJ Delorie wrote:
When using signed integers for coordinates and offsets (vectors), by restricting to the positive quadrant, allowing a 2x2m board will still yield a 32-bit overflow, if you try to place a large footprint at the right edge of the board. So I think forbidding negative board coordinates doesn't guard against anything. If one wants to enforce range-savety,On Mon, 2010-10-11 at 15:25 -0700, Andrew Poelstra wrote:I think we want to allow negative locations. It would be nice to set parts outside of the pcb boundary, for example when initially placing everything.We limit ourselves to half so that *distances* can fit in a signed same-size value. The range of computable distances on a board will always be twice the range of coordinates. More if you do 2-D distance, but we can use floating point there (we'd be doing a sqrt() anyway)
the boards and footprints better be +-1m maximum.Personally I favour 32-bit integers on 32-bit machines, because I think that 64-bit emulation must be at least 3x slower than native ops. Enable 64-bit coords on 32-bit machines with a configure flag. On 64-bit machines of course 64-bit, since 32 is probably slower.
s _______________________________________________ geda-user mailing list geda-user@xxxxxxxxxxxxxx http://www.seul.org/cgi-bin/mailman/listinfo/geda-user