Esempio n. 1
0
/*
 * Refresh: replace all used lit by a new literal
 * - lit[2i] and lit[2i+1] are refreshed in pairs
 */
static void refresh_random(uint32_t n) {
  uint32_t i;

  assert(2 <= n && n < MAX_SAMPLE);
  for (i=2; i<n; i += 2) {
    if (used[i] || used[i+1]) {
      lit[i] = fresh_lit();
      lit[i+1] = not(lit[i]);
      used[i] = false;
      used[i+1] = false;
    }
  }
}
Esempio n. 2
0
/*
 * All constant shifts: 6bits
 */
static void all_shift_test6(void (*f)(uint32_t, literal_t *, literal_t *)) {
    literal_t a[6];
    literal_t b[6];
    uint32_t i, y;

    for (y=0; y<64; y++) {
        uint32_to_litarray(y, 6, b);
        for (i=0; i<6; i++) {
            a[i] = fresh_lit();
        }
        f(6, a, b);
    }
}
Esempio n. 3
0
/*
 * All constant shifts: 4bits
 */
static void all_shift_test4(void (*f)(uint32_t, literal_t *, literal_t *)) {
    literal_t a[4];
    literal_t b[4];
    uint32_t i, y;

    for (y=0; y<16; y++) {
        uint32_to_litarray(y, 4, b);
        for (i=0; i<4; i++) {
            a[i] = fresh_lit();
        }
        f(4, a, b);
    }
}
Esempio n. 4
0
/*
 * Create n distinct literals and store them in lit
 */
static void init_random(uint32_t n) {
  uint32_t i;

  assert(2 <= n && n < MAX_SAMPLE);

  lit[0] = true_literal;
  lit[1] = false_literal;
  for (i=2; i<n; i += 2) {
    lit[i] = fresh_lit();
    lit[i+1] = not(lit[i]);
  }

  for (i=0; i<n; i++) {
    used[i] = false;
  }
}
Esempio n. 5
0
/*
 * Basic tests: one 4-bit input
 */
static void base_test4(void (*f)(uint32_t, literal_t *)) {
  literal_t a[4];
  literal_t x;
  uint32_t i;

  printf("Size 4\n");
  for (i=0; i<4; i++) {
    a[i] = false_literal;
  }
  f(4, a);

  for (i=0; i<4; i++) {
    a[i] = true_literal;
  }
  f(4, a);

  x = fresh_lit();
  for (i=0; i<4; i++) {
    a[i] = x;
  }
  f(4, a);

  printf("\n");
}
Esempio n. 6
0
/*
 * Basic test: two 4-bit input
 */
static void base_test4(void (*f)(uint32_t, literal_t *, literal_t *)) {
  literal_t a[4];
  literal_t b[4];
  uint32_t i;

  for (i=0; i<4; i++) {
    a[i] = false_literal;
    b[i] = fresh_lit();
  }
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = fresh_lit();
    b[i] = false_literal;
  }
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = true_literal;
    b[i] = fresh_lit();
  }
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = fresh_lit();
    b[i] = true_literal;
  }
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = fresh_lit();
    b[i] = a[i];
  }
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = false_literal;
    b[i] = fresh_lit();
  }
  a[0] = true_literal;
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = fresh_lit();
    b[i] = false_literal;
  }
  b[0] = true_literal;
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = false_literal;
    b[i] = fresh_lit();
  }
  a[1] = true_literal;
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = fresh_lit();
    b[i] = false_literal;
  }
  b[1] = true_literal;
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = false_literal;
    b[i] = fresh_lit();
  }
  a[2] = true_literal;
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = fresh_lit();
    b[i] = false_literal;
  }
  b[2] = true_literal;
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = false_literal;
    b[i] = fresh_lit();
  }
  a[3] = true_literal;
  f(4, a, b);

  for (i=0; i<4; i++) {
    a[i] = fresh_lit();
    b[i] = false_literal;
  }
  b[3] = true_literal;
  f(4, a, b);
}