michael@0: // Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com) michael@0: michael@0: michael@0: // 1 op = 2 assigns, 16 compare/branches, 8 ANDs, (0-8) ADDs, 8 SHLs michael@0: // O(n) michael@0: function bitsinbyte(b) { michael@0: var m = 1, c = 0; michael@0: /* BEGIN LOOP */ michael@0: while(m<0x100) { michael@0: if(b & m) c++; michael@0: m <<= 1; michael@0: } michael@0: /* END LOOP */ michael@0: return c; michael@0: } michael@0: michael@0: function TimeFunc(func) { michael@0: var x, y, t; michael@0: /* BEGIN LOOP */ michael@0: for(var x=0; x<350; x++) { michael@0: /* BEGIN LOOP */ michael@0: for(var y=0; y<256; y++) func(y); michael@0: /* END LOOP */ michael@0: } michael@0: /* END LOOP */ michael@0: } michael@0: michael@0: TimeFunc(bitsinbyte);