Messages in this thread | | | Date | Tue, 30 Jan 2007 16:50:18 +0100 (MET) | From | Jan Engelhardt <> | Subject | Re: [PATCH] Add "is_power_of_2" checking to log2.h. |
| |
On Jan 30 2007 09:45, Robert P. J. Day wrote: >On Tue, 30 Jan 2007, Jan Engelhardt wrote: >> >> >> Why the qualifier? Zero *is* not a power of 2, is it? >> >> No, it is not: >> >> In[1]:= Solve[2^n == 0, n] >> >> Out[1]= {} >> >> So says Mathematica5. > >oooookay, that's kind of like taking a sandblaster to a soup cracker.
Hehe. Well, there is a non-representable solution:
In[2]:= 2^-Infinity Out[2]= 0
>seriously, though, there is the potential of breaking something with >this change since you can see how there is some inconsistency in how >it's done *now* just for powerpc which, in some places, defines its >own versions of this: > >./arch/ppc/mm/pgtable.c: > #define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0)) >./arch/ppc/syslib/ppc85xx_rio.c: > #define is_power_of_2(x) (((x) & ((x) - 1)) == 0) >./arch/powerpc/mm/pgtable_32.c: > #define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0)) > >note how the first and third macros *won't* consider zero a power of >two, while the second one *will*. hence the need for a single >standard for all of this, just to play it safe.
Hmpf. Perhaps a second macro "is_intdivisible_by_power_of_2" or so could catch the "am I zero or 2^n" question.
Jan -- ft: http://freshmeat.net/p/chaostables/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |