Skip to content
  • Thorsten Wißmann's avatar
    Do not throw all CL coalitions in one bset · 6e618918
    Thorsten Wißmann authored
    As ocaml is not purely functional, the following code snippets have
    different semantics:
    
        List.map (List.fold_left tmpf (bsetMakeRealEmpty ()))
                 (List.map S.elements intlist)
    
    vs
    
        List.map (fun x -> List.fold_left tmpf (bsetMakeRealEmpty ()) x)
                 (List.map S.elements intlist)
    
    The former code calls bsetMakeRealEmpty only once, but the latter calls
    ot for each element of the list returned by the (map ... intlist).
    
    Because of this, all coalitions were merged into one big set, i.e.
    there always was only one coalition: the union of all maximal disjoint
    sets. This of course triggered bad behaviour, which is fixed now by this
    commit.
    
    The code is unreadable anyway and will be improved a lot by the
    following commit.
    
    This closes #13
    6e618918