This is a documentation file to help understand the innerworking of the library. It is not compiled.
It is an outline of the functions that get called during the solving of a SAT instance when the user of the library uses one of the three presentations of the ben-jose API top solve instances:
This file is not compiled it is just to help in the understanding of the inner-works of the library, and to help the interested programmer to get familiar with the backbone functions of the library.
#define THIS_CODE_IS_NOT_COMPILED
void
load_instance();
}
void
}
}
void
if(found_conflict()){
} else{
choose_quanton();
start_propagation();
}
}
void
reason& rsn = dct.dt_rsn;
dct.reset_deduction();
reverse_with(rsn);
}
void
dct.reset_deduction();
row_neuromap_t& to_wrt = dct.dt_all_to_wrt;
}
void
for(int aa = 0; aa < to_wrt.size(); aa++){
}
}
void
for(long aa = br_candidate_nmp_lvs.last_idx(); aa >= 0; aa--){
out_nmp = br_candidate_nmp_lvs[aa];
break;
}
dct.reset_deduction();
}
}
bool
return map_oper(mo_find);
}
bool
return map_oper(mo_save);
}
bool
bool prep_ok = map_prepare_mem_oper(mm);
if(! prep_ok){
return false;
}
canon_cnf& tmp_tauto_cnf = brn.br_tmp_wrt_tauto_cnf;
canon_cnf& tmp_diff_cnf = brn.br_tmp_wrt_diff_cnf;
canon_cnf& tmp_guide_cnf = brn.br_tmp_wrt_guide_cnf;
if(mm == mo_find){
row_neuron_t& all_found = na_found_col.co_neus;
tmp_diff_cnf.first_vnt_i_super_of(skg, all_found, &iinfo);
} else {
ch_string& tau_pth = na_tauto_pth;
tmp_tauto_cnf.save_cnf(skg, tau_pth);
tmp_diff_cnf.save_cnf(skg, tau_pth);
tmp_guide_cnf.save_cnf(skg, tau_pth);
}
}
bool
brn.all_mutual_init();
sort_glb& guide_ne_srg = brn.br_guide_neus_srg;
sort_glb& guide_qu_srg = brn.br_guide_quas_srg;
if(! has_stab_guide()){
map_set_stab_guide();
} else {
guide_col.load_colors_into(guide_ne_srg, guide_qu_srg, dbg_call_1, this);
}
final_guide_col.save_colors_from(guide_ne_srg, guide_qu_srg, tid_tee_consec, false);
coloring& ini_tau_col = brn.br_tmp_ini_tauto_col;
map_get_initial_tauto_coloring(final_guide_col, ini_tau_col, mm);
brn.all_mutual_init();
sort_glb& tauto_ne_srg = brn.br_tauto_neus_srg;
sort_glb& tauto_qu_srg = brn.br_tauto_quas_srg;
ini_tau_col.load_colors_into(tauto_ne_srg, tauto_qu_srg, dbg_call_3, this, true);
map_prepare_wrt_cnfs(mm, quick_find_ref);
}
void
bool all_consec = false;
while(! all_consec){
stab_mutual_core(srg2);
all_consec = srg2.sg_step_all_consec;
if(! all_consec){
srg2.stab_mutual_choose_one(srg1);
}
}
stab_mutual_end(srg2, true);
}
void
stab_mutual_core(srg2);
stab_mutual_end(srg2, one_ccl_per_ss);
}
void
bool has_diff = true;
while(has_diff){
bool diff1 = srg1.sg_step_has_diff;
bool diff2 = srg2.sg_step_has_diff;
has_diff = (diff1 || diff2);
}
}
void
step_mutual_stabilize(mates_srg, sm_with_neus);
}
void
step_mutual_stabilize(mates_srg, sm_with_opps);
}
void
step_mutual_stabilize(mates_srg, sm_with_quas);
}
void
sort_glb::step_mutual_stabilize(
sort_glb& srg2, step_mutual_op_t op){
row<sorset*>& sets = sg_step_prv_sorsets;
sets.clear();
sg_step_sorsets.move_to(sets);
sg_step_sorsets.set_cap(sets.size());
for(long aa = 0; aa < sets.size(); aa++){
sets[aa] = NULL_PT;
}
sets.clear();
}
void
while(has_subsets()){
}
}
void
while(has_subsets()){
}
binder* fst = ss_items.bn_right;
binder* lst = &(ss_items);
binder* rgt = NULL_PT;
for(rgt = fst; rgt != lst; rgt = rgt->bn_right){
if(oper == sm_with_neus){
row<sortee*>& all_mates = srt.so_related->so_mates;
srg2.
sort_all_from(all_mates, curr_stab_consec,
false, 0,
true, tc_none,
&srg1, &srt);
}
if(oper == sm_with_opps){
sorset& vssl = opp.get_vessel();
if(&vssl != this){
}
}
if(oper == sm_with_quas){
long qua_id = srt.get_qua_id(srg1);
row<sortee*>& all_mates = srt.so_related->so_mates;
srg2.
sort_all_from(all_mates, curr_stab_consec,
true, qua_id,
false, tc_mates,
&srg1, &srt);
}
}
}