aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMaxime Dénès2017-05-11 13:24:33 +0200
committerMaxime Dénès2017-05-11 13:24:33 +0200
commite176622f715772cc0704dc860ffa18e85c36e250 (patch)
tree3f3bc0febf6a506ac8d1b0f30ced6762297ac529 /kernel
parente0577588056110ea13a904aa1f01c86dbc931f02 (diff)
parent6795bc07f53a842bcec76ad0329d0b4444a625ab (diff)
Merge PR#572: Replacing costly merges in UGraph.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/uGraph.ml16
1 files changed, 9 insertions, 7 deletions
diff --git a/kernel/uGraph.ml b/kernel/uGraph.ml
index 4884d0deb1..6971c0a2b6 100644
--- a/kernel/uGraph.ml
+++ b/kernel/uGraph.ml
@@ -354,13 +354,15 @@ let get_new_edges g to_merge =
UMap.empty to_merge
in
let ltle =
- UMap.fold (fun _ n acc ->
- UMap.merge (fun _ strict1 strict2 ->
- match strict1, strict2 with
- | Some true, _ | _, Some true -> Some true
- | _, _ -> Some false)
- acc n.ltle)
- to_merge_lvl UMap.empty
+ let fold _ n acc =
+ let fold u strict acc =
+ if strict then UMap.add u strict acc
+ else if UMap.mem u acc then acc
+ else UMap.add u false acc
+ in
+ UMap.fold fold n.ltle acc
+ in
+ UMap.fold fold to_merge_lvl UMap.empty
in
let ltle, _ = clean_ltle g ltle in
let ltle =