This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.

83 lines
2.6 KiB
C
Raw Permalink Normal View History

2011-11-10 12:24:47 +00:00
#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 */