@@ -41,7 +41,7 @@ type ('a, 'b) cmp = ('a, 'b) Belt_Id.cmp
4141 children differ by at most 2 *)
4242
4343
44- let treeHeight (n : _ t ) =
44+ let [ @ inline] height (n : _ t ) =
4545 match n with
4646 | None -> 0
4747 | Some n -> n.height
@@ -59,8 +59,8 @@ let rec copy n =
5959 Inline expansion of treeHeight for better speed. *)
6060
6161let create (l : _ t ) v (r : _ t ) =
62- let hl = match l with None -> 0 | Some n -> n.height in
63- let hr = match r with None -> 0 | Some n -> n.height in
62+ let hl = height l in
63+ let hr = height r in
6464 Some { left = l; value = v; right = r; height = (if hl > = hr then hl + 1 else hr + 1 )}
6565
6666
@@ -284,7 +284,7 @@ let rec checkInvariantInternal (v : _ t) =
284284 | None -> ()
285285 | Some n ->
286286 let {left = l; right = r} = n in
287- let diff = treeHeight l - treeHeight r in
287+ let diff = height l - height r in
288288 [% assert diff < = 2 && diff > = - 2 ];
289289 checkInvariantInternal l;
290290 checkInvariantInternal r
@@ -546,9 +546,9 @@ let rotateWithLeftChild k2 =
546546 | Some k1 ->
547547 k2 .left < - k1 .right;
548548 k1 .right < - Some k2 ;
549- let hlk2, hrk2 = k2 .left|. treeHeight , k2 .right |. treeHeight in
549+ let hlk2, hrk2 = k2 .left|. height , k2 .right |. height in
550550 k2 .height < - (Pervasives. max hlk2 hrk2 + 1 );
551- let hlk1, hk2 = k1 .left|. treeHeight , k2 .height in
551+ let hlk1, hk2 = k1 .left|. height , k2 .height in
552552 k1 .height < - (Pervasives. max hlk1 hk2 + 1 );
553553 k1
554554(* right rotation *)
@@ -557,9 +557,9 @@ let rotateWithRightChild k1 =
557557 | Some k2 ->
558558 k1 .right < - k2 .left;
559559 k2 .left < - Some k1;
560- let hlk1, hrk1 = k1.left |. treeHeight , k1 .right |. treeHeight in
560+ let hlk1, hrk1 = k1.left |. height , k1 .right |. height in
561561 k1 .height < - (Pervasives. max hlk1 hrk1 + 1 );
562- let hrk2, hk1 = k2 .right |. treeHeight , k1 .height in
562+ let hrk2, hk1 = k2 .right |. height , k1 .height in
563563 k2 .height < - (Pervasives. max hrk2 hk1 + 1 );
564564 k2
565565
@@ -584,13 +584,13 @@ let doubleWithRightChild k2 =
584584 rotateWithRightChild k2
585585
586586let heightUpdateMutate t =
587- let hlt, hrt = t .left|. treeHeight , t .right |. treeHeight in
587+ let hlt, hrt = t .left|. height , t .right |. height in
588588 t .height < - (Pervasives. max hlt hrt + 1 );
589589 t
590590
591591let balMutate nt =
592592 let {left = l; right = r} = nt in
593- let hl, hr = (treeHeight l, treeHeight r) in
593+ let hl, hr = (height l, height r) in
594594 if hl > 2 + hr then
595595 match l with None -> assert false
596596 | Some {left = ll ; right = lr } ->
0 commit comments