Linus Torvalds wrote:
> actually prefer
> 
>       if (complex_test)
>               return complex_expression1;
> 
>       return complex_expression2;
> 
> over
> 
>       return (complex_test) ? complex_expression1 : complex_expression2;


Trade offs trade offs... 

Compare:

   int mr (unsigned int rate, int r) 
   {
     int e = 16+9;
     static int round[4]={0, 0, 0xffff, 0x8000};
     if (!rate) return 0;
     for (;  rate & 0xfc000000 ;rate >>= 1, e++);
     for (;!(rate & 0xfe000000);rate <<= 1, e--);
     return ((rate & ~0x02000000) | (e << (16+9)) + round[r]) >> 16;
   }

Dense code, right? Floating point in the kernel.... Aaargh. 

Compare that with one hundred and twenty heavily commented lines in
drivers/atm/ambassador.c ..... (A very neat driver, by the way,
although you don't need 120 lines of code to do the above....)

                                Roger. 

-- 
** [EMAIL PROTECTED] ** http://www.BitWizard.nl/ ** +31-15-2137555 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
*       Common sense is the collection of                                *
******  prejudices acquired by age eighteen.   -- Albert Einstein ********
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to