Ejemplo n.º 1
0
int igraph_maximum_matching(const igraph_t* graph, igraph_integer_t* matching_size,
    igraph_real_t* matching_weight, igraph_vector_long_t* matching,
    const igraph_vector_t* weights) {
  IGRAPH_UNUSED(graph);
  IGRAPH_UNUSED(matching_size);
  IGRAPH_UNUSED(matching_weight);
  IGRAPH_UNUSED(matching);
  IGRAPH_UNUSED(weights);
  IGRAPH_ERROR("maximum matching on general graphs not implemented yet",
      IGRAPH_UNIMPLEMENTED);
}
Ejemplo n.º 2
0
int igraph_i_largest_cliques_store(const igraph_vector_t* clique, void* data, igraph_bool_t* cont) {
  igraph_vector_ptr_t* result = (igraph_vector_ptr_t*)data;
  igraph_vector_t* vec;
  long int i, n;

  IGRAPH_UNUSED(cont);
  /* Is the current clique at least as large as the others that we have found? */
  if (!igraph_vector_ptr_empty(result)) {
    n = igraph_vector_size(clique);
    if (n < igraph_vector_size(VECTOR(*result)[0]))
      return IGRAPH_SUCCESS;

    if (n > igraph_vector_size(VECTOR(*result)[0])) {
      for (i = 0; i < igraph_vector_ptr_size(result); i++)
        igraph_vector_destroy(VECTOR(*result)[i]);
      igraph_vector_ptr_free_all(result);
      igraph_vector_ptr_resize(result, 0);
    }
  }

  vec = igraph_Calloc(1, igraph_vector_t);
  if (vec == 0)
    IGRAPH_ERROR("cannot allocate memory for storing next clique", IGRAPH_ENOMEM);

  IGRAPH_CHECK(igraph_vector_copy(vec, clique));
  IGRAPH_CHECK(igraph_vector_ptr_push_back(result, vec));

  return IGRAPH_SUCCESS;
}
Ejemplo n.º 3
0
igraph_real_t igraph_i_multilevel_community_modularity_gain(
  const igraph_i_multilevel_community_list *communities,
  igraph_integer_t community, igraph_integer_t vertex,
  igraph_real_t weight_all, igraph_real_t weight_inside) {
  IGRAPH_UNUSED(vertex);
  return weight_inside -
      communities->item[(long int)community].weight_all*weight_all/communities->weight_sum;
}
Ejemplo n.º 4
0
int igraph_i_maximal_cliques_store_max_size(const igraph_vector_t* clique, void* data,
    igraph_bool_t* cont) {
  igraph_integer_t* result = (igraph_integer_t*)data;
  IGRAPH_UNUSED(cont);
  if (*result < igraph_vector_size(clique))
    *result = (igraph_integer_t) igraph_vector_size(clique);
  return IGRAPH_SUCCESS;
}
Ejemplo n.º 5
0
int igraph_i_maximal_cliques_store(const igraph_vector_t* clique, void* data, igraph_bool_t* cont) {
  igraph_vector_ptr_t* result = (igraph_vector_ptr_t*)data;
  igraph_vector_t* vec;

  IGRAPH_UNUSED(cont);
  vec = igraph_Calloc(1, igraph_vector_t);
  if (vec == 0)
    IGRAPH_ERROR("cannot allocate memory for storing next clique", IGRAPH_ENOMEM);

  IGRAPH_CHECK(igraph_vector_copy(vec, clique));
  IGRAPH_CHECK(igraph_vector_ptr_push_back(result, vec));

  return IGRAPH_SUCCESS;
}
Ejemplo n.º 6
0
int igraph_i_maximal_cliques_store_size_check(const igraph_vector_t* clique, void* data_, igraph_bool_t* cont) {
  igraph_i_maximal_clique_data_t* data = (igraph_i_maximal_clique_data_t*)data_;
  igraph_vector_t* vec;
  igraph_integer_t size = (igraph_integer_t) igraph_vector_size(clique);

  IGRAPH_UNUSED(cont);
  if (size < data->min_size || size > data->max_size)
    return IGRAPH_SUCCESS;

  vec = igraph_Calloc(1, igraph_vector_t);
  if (vec == 0)
    IGRAPH_ERROR("cannot allocate memory for storing next clique", IGRAPH_ENOMEM);

  IGRAPH_CHECK(igraph_vector_copy(vec, clique));
  IGRAPH_CHECK(igraph_vector_ptr_push_back(data->result, vec));

  return IGRAPH_SUCCESS;
}
Ejemplo n.º 7
0
void warning_handler_stdout (const char *reason, const char *file,
			     int line, int igraph_errno) {
  IGRAPH_UNUSED(igraph_errno);
  printf("Warning: %s\n", reason);
}