83 lines
2.6 KiB
C
83 lines
2.6 KiB
C
#ifndef GRAPH_H
|
|
#define GRAPH_H
|
|
|
|
/*====================================================================*/
|
|
|
|
#define INIT_MAX_SW_TABLE_SIZE 16
|
|
#define INIT_MAX_SW_INS_TABLE_SIZE 64
|
|
#define INIT_MAX_EGRAPH_SIZE (1 << 8)
|
|
#define MAX_EGRAPH_SIZE_EXPAND_LIMIT (128 << 10)
|
|
|
|
/* node_id should be non-negative */
|
|
#define UPDATE_MIN_MAX_NODE_NOS(node_id) do { \
|
|
if (min_node_index < 0 || node_id < min_node_index) \
|
|
min_node_index = node_id; \
|
|
if (node_id > max_node_index) \
|
|
max_node_index = node_id; \
|
|
} while (0)
|
|
#define INIT_MIN_MAX_NODE_NOS do { \
|
|
min_node_index = -1; \
|
|
max_node_index = -1; \
|
|
} while (0)
|
|
#define INIT_VISITED_FLAGS do { \
|
|
int i; \
|
|
for (i = min_node_index; i <= max_node_index; i++) \
|
|
expl_graph[i]->visited = 0; \
|
|
} while (0)
|
|
|
|
/*====================================================================*/
|
|
|
|
int pc_alloc_egraph_0(void);
|
|
int pc_clean_base_egraph_0(void);
|
|
int pc_clean_egraph_0(void);
|
|
int pc_export_switch_2(void);
|
|
int pc_add_egraph_path_3(void);
|
|
int pc_alloc_sort_egraph_1(void);
|
|
int pc_clean_external_tables_0(void);
|
|
int pc_export_sw_info_1(void);
|
|
int pc_import_sorted_graph_size_1(void);
|
|
int pc_import_sorted_graph_gid_2(void);
|
|
int pc_import_sorted_graph_paths_2(void);
|
|
int pc_get_gnode_inside_2(void);
|
|
int pc_get_gnode_outside_2(void);
|
|
int pc_get_gnode_viterbi_2(void);
|
|
int pc_get_snode_inside_2(void);
|
|
int pc_get_snode_expectation_2(void);
|
|
int pc_import_occ_switches_3(void);
|
|
void graph_stats(int[4]);
|
|
|
|
/*--------------------------------------------------------------------*/
|
|
|
|
void alloc_sorted_egraph(int);
|
|
void initialize_egraph_index(void);
|
|
int sort_one_egraph(int, int, int);
|
|
int sort_egraphs(TERM);
|
|
|
|
/*====================================================================*/
|
|
|
|
extern int sorted_egraph_size;
|
|
extern EG_NODE_PTR *expl_graph;
|
|
extern EG_NODE_PTR *sorted_expl_graph;
|
|
extern int num_roots;
|
|
extern int num_goals;
|
|
|
|
extern ROOT *roots;
|
|
|
|
extern int min_node_index;
|
|
extern int max_node_index;
|
|
|
|
extern int sw_tab_size;
|
|
extern int sw_ins_tab_size;
|
|
extern int occ_switch_tab_size;
|
|
|
|
extern SW_INS_PTR *switches;
|
|
extern SW_INS_PTR *switch_instances;
|
|
extern SW_INS_PTR *occ_switches;
|
|
|
|
extern int failure_subgoal_id;
|
|
extern int failure_root_index;
|
|
|
|
/*====================================================================*/
|
|
|
|
#endif /* GRAPH_H */
|