On Fri, Apr 21, 2006 at 08:32:18AM +0200, Michael Kerrisk wrote:
> > Tags: upstream patch
> 
> Looks like this is intended for me?
Yea :)

> What man page is this intended for?
qsort()

> > Included is a sample program that demonstrates how to sort IEEE
> > floating point values, including NAN and friends, in a useful way;
> > please consider including it.
> > 
> > // make CFLAGS='-W -Wall -O3 -g -std=gnu99' LDFLAGS=-lm fpnansort
> > #include <math.h>
> > #include <stdlib.h>
> > #include <stdio.h>
> > #include <assert.h>
> > 
> > int fpcomp(const void *a, const void *b)
> > {
> >         double x=*(double *)a,
> >                y=*(double *)b;
> > 
> >         if (x<y) return -1;
> >         else if (x>y) return 1;
> >         // The not-normal values will be grouped together, but
> >         // otherwise unordered:
> >         else if (!isnormal(x)) return 1;
> >         else if (!isnormal(y)) return -1;
> 
> Why isnormal()?  
"Why not" ?

Seriously, I want all the IEEE special number foo to get out of my
way, and this does wha tI want.


> >         assert(x==y);
> 
> What is assert doing here?
Well, the current qsort() example uses assert() on argc, so why not?
Seriously, I *think* that x==y is guaranteed, since x and y are both
"normal" values, but there might be other special cases of which I'm
not even aware; this is as way of checking for them, and at the same
time indicating my intent.  (Actually, "subnormal" may just be that
case .. will think about it.)

Justin


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to