1
2#include <dlfcn.h>
3
4extern void p_get_threshold();
5extern void p_set_threshold();
6extern void create_ic_attr();
7extern void make_ic_var_attr();
8extern void get_var_info();
9extern void make_var_info();
10extern void get_var_info_from_attr();
11extern void set_type_integral();
12extern void ic_lwb();
13extern void p_ic_impose_min();
14extern void ic_upb();
15extern void p_ic_impose_max();
16extern void p_ic_impose_bounds();
17extern void make_constrained_ic_var();
18extern void p_make_bool();
19extern void set_integral();
20extern void p_set_var_integer();
21extern void set_up_exclude_delayed_goal();
22extern void ic_exclude();
23extern void p_ic_exclude();
24extern void set_up_exclude_range_delayed_goal();
25extern void ic_exclude_range();
26extern void p_ic_exclude_range();
27extern void impose_coef_bounds();
28extern void solve_equal();
29extern void solve_not_equal();
30extern void update_con_data_buf();
31extern void con_struct_vec_to_con_info();
32extern void finish_setting_up_con_struct();
33extern void swap_entries();
34extern void update_ef();
35extern void evaluate_reified();
36extern void check_ic_0v_con();
37extern void prop_ic_1v_con();
38extern void prop_pass_1();
39extern void prop_pass_2();
40extern void prop_ic_neq_con();
41extern void short_cuts();
42extern void sync_attr_with_new_bitmap();
43extern void p_ac_eq_init();
44extern void p_ac_eq_prop();
45extern void p_prop_ic_con();
46extern void type_check_lin_terms();
47extern void setup_pass_1();
48extern void process_lin_terms_to_vectors_and_prop();
49extern void setup_1v_con();
50extern void p_set_up_ic_con();
51extern void p_get_print_info();
52extern void p_ic_init();
53extern void p_ic_constraints_init();
54extern void p_get_ic_attr();
55extern void unify_integer_bounds();
56extern void p_get_bounds();
57extern void p_get_integer_bounds1();
58extern void p_get_domain_size();
59extern void unify_number_ic();
60extern void unify_ic_ic();
61extern void p_unify_ic();
62extern void p_indomain_init();
63extern void p_indomain_try();
64extern void bit_count();
65extern void lsb();
66extern void msb();
67extern void p_create_bitmap();
68extern void create_bitmap();
69extern void p_set_bitmap_lwb();
70extern void set_bitmap_lwb();
71extern void p_set_bitmap_upb();
72extern void set_bitmap_upb();
73extern void p_remove_bitmap_element();
74extern void remove_bitmap_element();
75extern void p_remove_bitmap_range();
76extern void remove_bitmap_range();
77extern void p_bitmap_intersect_into();
78extern void bitmap_intersect_into();
79extern void p_bitmap_shifted_intersect_into();
80extern void bitmap_shifted_intersect_into();
81extern void p_bitmaps_have_non_empty_intersection();
82extern void bitmaps_have_non_empty_intersection();
83extern void p_bitmap_union();
84extern void bitmap_union();
85extern void p_copy_bitmap();
86extern void copy_bitmap();
87extern void p_copy_bitmap_shifted();
88extern void copy_bitmap_shifted();
89extern void p_bitmap_range();
90extern void bitmap_range();
91extern void p_get_bitmap_lwb();
92extern void get_bitmap_lwb();
93extern void p_get_bitmap_upb();
94extern void get_bitmap_upb();
95extern void p_next_greater_member();
96extern void next_greater_member();
97extern void p_next_smaller_member();
98extern void next_smaller_member();
99extern void p_next_greater_non_member();
100extern void next_greater_non_member();
101extern void p_next_smaller_non_member();
102extern void next_smaller_non_member();
103extern void p_bitmap_size();
104extern void bitmap_size();
105extern void p_bitmap_contains();
106extern void bitmap_contains();
107extern void p_bitmap_contains_range();
108extern void bitmap_contains_range();
109extern void p_compare_bitmaps();
110extern void compare_bitmaps();
111extern void ec_init_ef();
112extern void ec_init_task();
113extern void ec_ef_disj();
114extern void ec_ef_cum();
115extern void ec_ef_quad();
116extern void ec_regcomp();
117extern void ec_regmatch();
118extern void ec_regmatch4();
119extern void ec_regmatchsub();
120extern void ec_regmatchall();
121extern void ec_regsplit();
122
123
124struct function_entry funcs[] = {
125
126{.name="p_get_threshold",.f=p_get_threshold},
127{.name="p_set_threshold",.f=p_set_threshold},
128{.name="create_ic_attr",.f=create_ic_attr},
129{.name="make_ic_var_attr",.f=make_ic_var_attr},
130{.name="get_var_info",.f=get_var_info},
131{.name="make_var_info",.f=make_var_info},
132{.name="get_var_info_from_attr",.f=get_var_info_from_attr},
133{.name="set_type_integral",.f=set_type_integral},
134{.name="ic_lwb",.f=ic_lwb},
135{.name="p_ic_impose_min",.f=p_ic_impose_min},
136{.name="ic_upb",.f=ic_upb},
137{.name="p_ic_impose_max",.f=p_ic_impose_max},
138{.name="p_ic_impose_bounds",.f=p_ic_impose_bounds},
139{.name="make_constrained_ic_var",.f=make_constrained_ic_var},
140{.name="p_make_bool",.f=p_make_bool},
141{.name="set_integral",.f=set_integral},
142{.name="p_set_var_integer",.f=p_set_var_integer},
143{.name="set_up_exclude_delayed_goal",.f=set_up_exclude_delayed_goal},
144{.name="ic_exclude",.f=ic_exclude},
145{.name="p_ic_exclude",.f=p_ic_exclude},
146{.name="set_up_exclude_range_delayed_goal",.f=set_up_exclude_range_delayed_goal},
147{.name="ic_exclude_range",.f=ic_exclude_range},
148{.name="p_ic_exclude_range",.f=p_ic_exclude_range},
149{.name="impose_coef_bounds",.f=impose_coef_bounds},
150{.name="solve_equal",.f=solve_equal},
151{.name="solve_not_equal",.f=solve_not_equal},
152{.name="update_con_data_buf",.f=update_con_data_buf},
153{.name="con_struct_vec_to_con_info",.f=con_struct_vec_to_con_info},
154{.name="finish_setting_up_con_struct",.f=finish_setting_up_con_struct},
155{.name="swap_entries",.f=swap_entries},
156{.name="update_ef",.f=update_ef},
157{.name="evaluate_reified",.f=evaluate_reified},
158{.name="check_ic_0v_con",.f=check_ic_0v_con},
159{.name="prop_ic_1v_con",.f=prop_ic_1v_con},
160{.name="prop_pass_1",.f=prop_pass_1},
161{.name="prop_pass_2",.f=prop_pass_2},
162{.name="prop_ic_neq_con",.f=prop_ic_neq_con},
163{.name="short_cuts",.f=short_cuts},
164{.name="sync_attr_with_new_bitmap",.f=sync_attr_with_new_bitmap},
165{.name="p_ac_eq_init",.f=p_ac_eq_init},
166{.name="p_ac_eq_prop",.f=p_ac_eq_prop},
167{.name="p_prop_ic_con",.f=p_prop_ic_con},
168{.name="type_check_lin_terms",.f=type_check_lin_terms},
169{.name="setup_pass_1",.f=setup_pass_1},
170{.name="process_lin_terms_to_vectors_and_prop",.f=process_lin_terms_to_vectors_and_prop},
171{.name="setup_1v_con",.f=setup_1v_con},
172{.name="p_set_up_ic_con",.f=p_set_up_ic_con},
173{.name="p_get_print_info",.f=p_get_print_info},
174{.name="p_ic_init",.f=p_ic_init},
175{.name="p_ic_constraints_init",.f=p_ic_constraints_init},
176{.name="p_get_ic_attr",.f=p_get_ic_attr},
177{.name="unify_integer_bounds",.f=unify_integer_bounds},
178{.name="p_get_bounds",.f=p_get_bounds},
179{.name="p_get_integer_bounds1",.f=p_get_integer_bounds1},
180{.name="p_get_domain_size",.f=p_get_domain_size},
181{.name="unify_number_ic",.f=unify_number_ic},
182{.name="unify_ic_ic",.f=unify_ic_ic},
183{.name="p_unify_ic",.f=p_unify_ic},
184{.name="p_indomain_init",.f=p_indomain_init},
185{.name="p_indomain_try",.f=p_indomain_try},
186{.name="bit_count",.f=bit_count},
187{.name="lsb",.f=lsb},
188{.name="msb",.f=msb},
189{.name="p_create_bitmap",.f=p_create_bitmap},
190{.name="create_bitmap",.f=create_bitmap},
191{.name="p_set_bitmap_lwb",.f=p_set_bitmap_lwb},
192{.name="set_bitmap_lwb",.f=set_bitmap_lwb},
193{.name="p_set_bitmap_upb",.f=p_set_bitmap_upb},
194{.name="set_bitmap_upb",.f=set_bitmap_upb},
195{.name="p_remove_bitmap_element",.f=p_remove_bitmap_element},
196{.name="remove_bitmap_element",.f=remove_bitmap_element},
197{.name="p_remove_bitmap_range",.f=p_remove_bitmap_range},
198{.name="remove_bitmap_range",.f=remove_bitmap_range},
199{.name="p_bitmap_intersect_into",.f=p_bitmap_intersect_into},
200{.name="bitmap_intersect_into",.f=bitmap_intersect_into},
201{.name="p_bitmap_shifted_intersect_into",.f=p_bitmap_shifted_intersect_into},
202{.name="bitmap_shifted_intersect_into",.f=bitmap_shifted_intersect_into},
203{.name="p_bitmaps_have_non_empty_intersection",.f=p_bitmaps_have_non_empty_intersection},
204{.name="bitmaps_have_non_empty_intersection",.f=bitmaps_have_non_empty_intersection},
205{.name="p_bitmap_union",.f=p_bitmap_union},
206{.name="bitmap_union",.f=bitmap_union},
207{.name="p_copy_bitmap",.f=p_copy_bitmap},
208{.name="copy_bitmap",.f=copy_bitmap},
209{.name="p_copy_bitmap_shifted",.f=p_copy_bitmap_shifted},
210{.name="copy_bitmap_shifted",.f=copy_bitmap_shifted},
211{.name="p_bitmap_range",.f=p_bitmap_range},
212{.name="bitmap_range",.f=bitmap_range},
213{.name="p_get_bitmap_lwb",.f=p_get_bitmap_lwb},
214{.name="get_bitmap_lwb",.f=get_bitmap_lwb},
215{.name="p_get_bitmap_upb",.f=p_get_bitmap_upb},
216{.name="get_bitmap_upb",.f=get_bitmap_upb},
217{.name="p_next_greater_member",.f=p_next_greater_member},
218{.name="next_greater_member",.f=next_greater_member},
219{.name="p_next_smaller_member",.f=p_next_smaller_member},
220{.name="next_smaller_member",.f=next_smaller_member},
221{.name="p_next_greater_non_member",.f=p_next_greater_non_member},
222{.name="next_greater_non_member",.f=next_greater_non_member},
223{.name="p_next_smaller_non_member",.f=p_next_smaller_non_member},
224{.name="next_smaller_non_member",.f=next_smaller_non_member},
225{.name="p_bitmap_size",.f=p_bitmap_size},
226{.name="bitmap_size",.f=bitmap_size},
227{.name="p_bitmap_contains",.f=p_bitmap_contains},
228{.name="bitmap_contains",.f=bitmap_contains},
229{.name="p_bitmap_contains_range",.f=p_bitmap_contains_range},
230{.name="bitmap_contains_range",.f=bitmap_contains_range},
231{.name="p_compare_bitmaps",.f=p_compare_bitmaps},
232{.name="compare_bitmaps",.f=compare_bitmaps},
233{.name="ec_init_ef",.f=ec_init_ef},
234{.name="ec_init_task",.f=ec_init_task},
235{.name="ec_ef_disj",.f=ec_ef_disj},
236{.name="ec_ef_cum",.f=ec_ef_cum},
237{.name="ec_ef_quad",.f=ec_ef_quad},
238{.name="ec_regcomp",.f=ec_regcomp},
239{.name="ec_regmatch",.f=ec_regmatch},
240{.name="ec_regmatch4",.f=ec_regmatch4},
241{.name="ec_regmatchsub",.f=ec_regmatchsub},
242{.name="ec_regmatchall",.f=ec_regmatchall},
243{.name="ec_regsplit",.f=ec_regsplit},
244};
245