[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: pcb crooked traces



On Sat, Oct 09, 2010 at 12:22:52PM +0200, Karl Hammar wrote:
> 
> You cannot dissmiss floating point on the ground of rounding error
> when in fact the rounding error of integers (aliasing, truncation)
> are in fact greater.
> 
> You cannot dissmiss floating point on the ground of a "non exact"
> equality operator, boot integers and floats, when 1 == 1nm, suffers
> from beeing too fine grained. You will not see any difference for
> +/- 100 basic units when looking at the board, even with a microscope.
>

My concern is not with "ordinary" numbers and their rounding error,
but with extremely large ones.

Once you get past the 52 digits in an IEEE-754 double (about 4500km in
nanometers, so maybe I am being silly), you lose precision. You will
no longer be able to place things with nanometer precision, which means
that your 254-nm mils will no longer be accurate.

Then, you've got rounding error and you're in the same place we are
now.

In other words, using a double artificially limits us to 52 bits versus
64 for an integer type.


Having said that:
  1. As you pointed out, sin and cos use double, so we'll have to at
     some point anyway.

  2. 52-bit double is probably far more prevalent than 64-bit int. So
     there's no need for the silly 64-versus-32-bit version argument.

  3. Doubles give us a lot of hardware-math, so my suspicion (confirmed
     by the few tests we have done here) is they are a net performance
     win.


Andrew
 


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user