From 202433a6e3401dca3ef0130e4ae22be7bf146518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20Wi=C3=9Fmann?= <edu@thorsten-wissmann.de> Date: Thu, 15 May 2014 12:08:15 +0200 Subject: [PATCH] Beautify conversion cliques->coalitions The code converting maximal cliques to coalitions of CL is now much more readable. --- src/lib/CoAlgLogicUtils.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lib/CoAlgLogicUtils.ml b/src/lib/CoAlgLogicUtils.ml index 99ab637..9230c11 100644 --- a/src/lib/CoAlgLogicUtils.ml +++ b/src/lib/CoAlgLogicUtils.ml @@ -91,11 +91,16 @@ let maxDisjoints sort (a: bset) : bset list = print_endline ("Cliqu: "^ String.concat "," s) ); *) - let tmpf : bset -> int -> bset = - (fun bs f -> bsetAdd bs (lfFromInt f) ; bs) - in - List.map (fun x -> List.fold_left tmpf (bsetMakeRealEmpty ()) x) - (List.map S.elements intlist) + flip List.map intlist (fun elements -> + (* for each maximal clique "elements", do: *) + let elements = S.elements elements in (* obtain a list of ints *) + let elements = L.map lfFromInt elements in (* convert them to local formulas *) + (* throw them into a bset *) + let bs = (bsetMakeRealEmpty ()) in + List.iter (bsetAdd bs) elements; + bs + ) + let string_of_coalition sort bs = let modlist = bsetFold (fun x l -> x::l) bs [] in -- GitLab