Пример #1
0
void test_binlog(void)
{
  for (int a = 0; a < 256; a++) {
    printf("a:%d ", a);
    printf("int_LSBSet():%d ", int_LSBSet(a));
    printf("int32_LSBPos():%d ", int32_LSBSetPos(a));
    printf("int8_LSBPos_LUT():%d ", int8_LSBSetPos_LUT(a));
    printf("\n");
  }

  for (uint i = 0; i < 32; i++) {
    int a = 1 << i;
    printf("i:%d a:%x ", i, a);
    printf("int_binlog():%d ", int_binlog(a));
    printf("int_binceil():%x ", int_binceil(a));
    printf("int_binceil_slow():%x ", int_binceil_slow(a));
    printf("int_LSBSet():%x ", int_LSBSet(a));
    printf("int32_LSBSetPos():%d ", int32_LSBSetPos(a));
    printf("\n");
  }
  for (uint i = 0; i < 64; i++) {
    int64_t a = 1LL << i;
    printf("i:%d a:%jx ", i, a);
    printf("int64_binlog():%d ", int64_binlog(a));
    printf("int64_binceil():%jx ", int64_binceil(a));
    printf("int64_binceil_slow():%jx ", int64_binceil_slow(a));
    printf("int_LSBSet():%jx ", int64_LSBSet(a));
    printf("int64_LSBSetPos():%d ", int64_LSBSetPos(a));
    printf("\n");
  }
}
Пример #2
0
void test_binpow(void)
{
  for (uint32_t i = 0; i <= 1<<24; i++) {
    if (int32_is_binpow(i)) {
      lprintf("%d is a power of two\n", i);
    }
#if 0
    if (uint32_binlog_x86(i) != int_binlog(i)) {
      lprintf("i:%d uint32_binlog_x86! differse from int_binlog\n");
    }
#endif
  }
}
Пример #3
0
void int_binlog_LUT_init(void)
{
  for (uint i = 0; i < 256; i++) {
    g_int8_binlog_LUT[i] = int_binlog((int8_t)i);
  }
}