Example #1
0
static bool
collect_from_each(sf_any_t item, void *context)
{
  struct collect_context *collect_context = context;
  sf_any_t collected_item = collect_context->collect_from(item, collect_context->context);
  collect_context->collected_items = sf_list(collected_item, collect_context->collected_items);
  return true;
}
Example #2
0
static bool
filter_each(sf_any_t item, void *context)
{
  struct filter_context *filter_context = context;
  if (filter_context->is_included(item, filter_context->context)) {
    filter_context->included_items = sf_list(item, filter_context->included_items);
  }
  return true;
}
Example #3
0
static void
add_failure(sf_list_t *_sf_test_failures, char const *file, int line, char const *format, ...)
{
  va_list arguments;
  va_start(arguments, format);
  sf_string_t message = sf_string_from_format_and_arguments(format, arguments);
  va_end(arguments);
  
  sf_test_failure_t test_failure = sf_test_failure(file, line, message);
  *_sf_test_failures = sf_list(test_failure, *_sf_test_failures);
}
Example #4
0
sf_array_t
sf_test_items_array(struct sf_test_item const **test_items, int count)
{
  if (not count) return NULL;
  assert(test_items);
  
  sf_list_t list = NULL;
  for (int i = 0; i < count; ++i) {
    list = sf_list(sf_test_item(test_items[i]), list);
  }
  return sf_array_from_collection(list);
}
Example #5
0
    cprint(R);
  }

  /* Intersect each cube with the cofactored cube */
  foreach_set(L, last, p) {
    INLINEset_and(p, p, cl);
    SET(p, ACTIVE);
  }
  foreach_set(R, last, p) {
    INLINEset_and(p, p, cr);
    SET(p, ACTIVE);
  }

  /* Sort the arrays for a distance-1 merge */
  (void) set_copy(cube.temp[0], cube.var_mask[var]);
  qsort((char *) (L1 = sf_list(L)), L->count, sizeof(pset), (qsort_compare_func) d1_order);
  qsort((char *) (R1 = sf_list(R)), R->count, sizeof(pset), (qsort_compare_func) d1_order);

  /* Perform distance-1 merge */
  compl_d1merge(L1, R1);

  /* Perform lifting */
  switch(lifting) {
    case USE_COMPL_LIFT_ONSET:
      T = cubeunlist(T1);
      compl_lift_onset(L1, T, cr, var);
      compl_lift_onset(R1, T, cl, var);
      free_cover(T);
      break;
    case USE_COMPL_LIFT_ONSET_COMPLEX:
      T = cubeunlist(T1);
Example #6
0
File: compl.c Project: GtTmy/pyeda
        cprint(R);
    }

    // Intersect each cube with the cofactored cube
    foreach_set(L, last, p) {
        set_and(p, p, cl);
        SET(p, ACTIVE);
    }
    foreach_set(R, last, p) {
        set_and(p, p, cr);
        SET(p, ACTIVE);
    }

    /* Sort the arrays for a distance-1 merge */
    set_copy(CUBE.temp[0], CUBE.var_mask[var]);
    qsort((char *) (L1 = sf_list(L)), L->count, sizeof(set *), d1_order);
    qsort((char *) (R1 = sf_list(R)), R->count, sizeof(set *), d1_order);

    /* Perform distance-1 merge */
    compl_d1merge(L1, R1);

    /* Perform lifting */
    switch(lifting) {
    case USE_COMPL_LIFT_ONSET:
        T = cubeunlist(T1);
        compl_lift_onset(L1, T, cr, var);
        compl_lift_onset(R1, T, cl, var);
        sf_free(T);
        break;
    case USE_COMPL_LIFT_ONSET_COMPLEX:
        T = cubeunlist(T1);