Loading...
Searching...
No Matches
bliss_C.h
Go to the documentation of this file.
#ifndef BLISS_C_H
#define BLISS_C_H
/*
Copyright (c) 2003-2021 Tommi Junttila
Released under the GNU Lesser General Public License version 3.
This file is part of bliss.
bliss is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, version 3 of the License.
bliss is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with bliss. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdlib.h>
#include <stdio.h>
typedef struct bliss_graph_struct BlissGraph;
typedef struct bliss_stats_struct
{
long double group_size_approx;
long unsigned int nof_nodes;
long unsigned int nof_leaf_nodes;
long unsigned int nof_bad_nodes;
long unsigned int nof_canupdates;
long unsigned int nof_generators;
unsigned long int max_level;
} BlissStats;
BlissGraph *bliss_new(const unsigned int N);
BlissGraph *bliss_read_dimacs(FILE *fp);
void bliss_write_dimacs(BlissGraph *graph, FILE *fp);
void bliss_release(BlissGraph *graph);
void bliss_write_dot(BlissGraph *graph, FILE *fp);
unsigned int bliss_get_nof_vertices(BlissGraph *graph);
unsigned int bliss_add_vertex(BlissGraph *graph, unsigned int c);
void bliss_add_edge(BlissGraph *graph, unsigned int v1, unsigned int v2);
int bliss_cmp(BlissGraph *graph1, BlissGraph *graph2);
unsigned int bliss_hash(BlissGraph *graph);
BlissGraph *bliss_permute(BlissGraph *graph, const unsigned int *perm);
void
bliss_find_automorphisms(BlissGraph *graph,
void (*hook)(void *user_param,
unsigned int N,
const unsigned int *aut),
void *hook_user_param,
BlissStats *stats);
const unsigned int *
bliss_find_canonical_labeling(BlissGraph *graph,
void (*hook)(void *user_param,
unsigned int N,
const unsigned int *aut),
void *hook_user_param,
BlissStats *stats);
#endif
bliss_read_dimacs
BlissGraph * bliss_read_dimacs(FILE *fp)
Definition bliss_C.cc:46
bliss_release
void bliss_release(BlissGraph *graph)
Definition bliss_C.cc:66
bliss_add_edge
void bliss_add_edge(BlissGraph *graph, unsigned int v1, unsigned int v2)
Definition bliss_C.cc:99
bliss_hash
unsigned int bliss_hash(BlissGraph *graph)
Definition bliss_C.cc:117
bliss_find_automorphisms
void bliss_find_automorphisms(BlissGraph *graph, void(*hook)(void *user_param, unsigned int N, const unsigned int *aut), void *hook_user_param, BlissStats *stats)
Definition bliss_C.cc:138
bliss_find_canonical_labeling
const unsigned int * bliss_find_canonical_labeling(BlissGraph *graph, void(*hook)(void *user_param, unsigned int N, const unsigned int *aut), void *hook_user_param, BlissStats *stats)
Definition bliss_C.cc:171
bliss_cmp
int bliss_cmp(BlissGraph *graph1, BlissGraph *graph2)
Definition bliss_C.cc:107
bliss_permute
BlissGraph * bliss_permute(BlissGraph *graph, const unsigned int *perm)
Definition bliss_C.cc:125
bliss_write_dot
void bliss_write_dot(BlissGraph *graph, FILE *fp)
Definition bliss_C.cc:75
BlissGraph
struct bliss_graph_struct BlissGraph
The true bliss graph is hiding behind this typedef.
Definition bliss_C.h:39
bliss_new
BlissGraph * bliss_new(const unsigned int N)
Definition bliss_C.cc:36
bliss_add_vertex
unsigned int bliss_add_vertex(BlissGraph *graph, unsigned int c)
Definition bliss_C.cc:91
bliss_get_nof_vertices
unsigned int bliss_get_nof_vertices(BlissGraph *graph)
Definition bliss_C.cc:83
bliss_write_dimacs
void bliss_write_dimacs(BlissGraph *graph, FILE *fp)
Definition bliss_C.cc:58
BlissStats
struct bliss_stats_struct BlissStats
The C API version of the statistics returned by the bliss search algorithm.
bliss_graph_struct
The true bliss graph is hiding in this struct.
Definition bliss_C.cc:31
bliss_stats_struct
The C API version of the statistics returned by the bliss search algorithm.
Definition bliss_C.h:47
bliss_stats_struct::max_level
unsigned long int max_level
The maximal depth of the search tree.
Definition bliss_C.h:64
bliss_stats_struct::nof_bad_nodes
long unsigned int nof_bad_nodes
The number of bad nodes in the search tree.
Definition bliss_C.h:58
bliss_stats_struct::nof_canupdates
long unsigned int nof_canupdates
The number of canonical representative updates.
Definition bliss_C.h:60
bliss_stats_struct::nof_generators
long unsigned int nof_generators
The number of generator permutations.
Definition bliss_C.h:62
bliss_stats_struct::nof_leaf_nodes
long unsigned int nof_leaf_nodes
The number of leaf nodes in the search tree.
Definition bliss_C.h:56
bliss_stats_struct::nof_nodes
long unsigned int nof_nodes
The number of nodes in the search tree.
Definition bliss_C.h:54
bliss_stats_struct::group_size_approx
long double group_size_approx
An approximation (due to possible rounding errors) of the size of the automorphism group.
Definition bliss_C.h:52