let iof_and_size_cstrs_of_adaptability_cstrs ?(verbose = false) k k'
adaptability_cstrs =
let simpl_adaptability_cstrs =
simplified_adaptability_cstrs_of_adaptability_cstrs adaptability_cstrs
in
if verbose then begin
Format.printf "Simplified adaptability constraints:@\n @[%a@]@\n"
fprint_simpl_adaptability_cstrs simpl_adaptability_cstrs
end;
let adjusted_cstrs =
adjusted_adaptability_cstrs_of_simplified_adaptability_cstrs
simpl_adaptability_cstrs
in
if verbose then begin
Format.printf "Adjusted adaptability constraints:@\n @[%a@]@\n"
fprint_simpl_adaptability_cstrs adjusted_cstrs
end;
let choice = make_choice k k' adjusted_cstrs in
if verbose then begin
Format.printf "Choice of number of ones (k = %d and k' = %d):@\n @[%a@]@\n"
choice.k
choice.k'
fprint_choice choice
end;
let synchronizability_cstrs, precedence_cstrs =
synchronizability_and_precedence_cstrs_of_adjusted_adaptability_cstrs
adjusted_cstrs
in
if verbose then begin
Format.printf "Synchronizability and precedence constraints:@\n";
Format.printf " @[%a@\nand@\n%a@]@\n"
fprint_synchronizability_cstrs synchronizability_cstrs
fprint_precedence_cstrs precedence_cstrs
end;
let iof_and_size_cstrs =
iof_and_size_cstrs_of_synchronizability_and_precedence_cstrs
choice synchronizability_cstrs precedence_cstrs
in
iof_and_size_cstrs