Skip to content

Commit 72b20ac

Browse files
committed
Test Rio trees
1 parent 8756093 commit 72b20ac

File tree

22 files changed

+330
-116
lines changed

22 files changed

+330
-116
lines changed

rio/simulator/dune

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
(include_subdirs unqualified)
2+
13
(library
24
(name Simulator)
35
(public_name rio.simulator)

rio/simulator/pifo.ml

Lines changed: 0 additions & 10 deletions
This file was deleted.

rio/simulator/pifotree.mli

Lines changed: 0 additions & 7 deletions
This file was deleted.

rio/simulator/riotree.ml

Lines changed: 0 additions & 65 deletions
This file was deleted.

rio/simulator/riotree.mli

Lines changed: 0 additions & 7 deletions
This file was deleted.

rio/simulator/topo.mli

Lines changed: 0 additions & 9 deletions
This file was deleted.

rio/simulator/trees/pifo.ml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
type 'a t = {
2+
heap : ('a * Rank.t * int) Fheap.t;
3+
counter : int; (* for breaking rank ties in FIFO order *)
4+
}
5+
6+
let create () =
7+
let cmp (_, a, i) (_, b, j) =
8+
match Rank.cmp a b with
9+
| 0 -> i - j
10+
| x -> x
11+
in
12+
{ heap = Fheap.create ~compare:cmp; counter = 0 }
13+
14+
let size t = Fheap.length t.heap
15+
16+
let push t v r =
17+
{ heap = Fheap.add t.heap (v, r, t.counter); counter = t.counter + 1 }
18+
19+
let pop t =
20+
match Fheap.pop t.heap with
21+
| Some ((v, _, _), heap') -> Some (v, { t with heap = heap' })
22+
| None -> None

0 commit comments

Comments
 (0)