1 package org.simantics.scl.compiler.elaboration.chr.planning;
3 import java.util.Arrays;
5 public class PlanPriorityQueue {
6 PrePlanItem[] items = new PrePlanItem[16];
9 public PrePlanItem head() {
14 items[0].queuePos = -1;
17 PrePlanItem e = items[size];
25 public void add(PrePlanItem e) {
26 if (size == items.length)
27 items = Arrays.copyOf(items, size + size / 2);
34 private boolean adjustUp(PrePlanItem e) {
37 int upId = (pos - 1) / 2;
38 PrePlanItem upE = items[upId];
39 if (e.compare(upE) >= 0)
45 if (e.queuePos != pos) {
53 private void adjustDown(PrePlanItem e) {
56 int downId = pos * 2 + 1;
60 && items[downId].compare(items[downId + 1]) > 0)
62 PrePlanItem downE = items[downId];
63 if (e.compare(downE) > 0) {
70 if (e.queuePos != pos) {
76 public void adjust(PrePlanItem e) {
83 public boolean isEmpty() {