[cairo] _cairo_color_compute_shorts fails with FPU set to single precision

Fabien Costantini fab672000 at yahoo.fr
Thu Aug 31 04:41:33 PDT 2006

Carl said:

> >because otherwise even values very near from 1.0 (like 1.0- 1.e-9) would be 65534.
>Yes, 65536 is the correct multiplier.

>> or better :
>  to avoid round approx to 65536 when f is very close to 1

>I greatly prefer the approaches suggested earlier that don't require
>an epsilon value at all and simply touch up any 65536 results that
>come out of the multiplication.

Well epsilon seems useful this time because it will bug otherwise if values are between [1.0-1.e-20,1.0[ 
i.e: the following example:
     int v = (int) ((1.0-1.e-20)*65536);
    printf("val = %d\n",v);

will return 65536 (at least with my intel P4 ).

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/cairo/attachments/20060831/e1b8cd20/attachment.htm

More information about the cairo mailing list