module Variable_queue:Priorities queues of variables.Index.PriorityQueuewith type elt = Variable.t
type elt
type t
val create : elt -> tval length : t -> intlength q is the number of elements in the queue.
length q >= 0val is_empty : t -> boolis_empty q is true iff there are no elements enqueued in q.
is_empty q = (length q = 0)val mem : t -> elt -> boolmem q e is true iff e is enqueued in q.val head : t -> elthead q is the highest priority element of q.
not (is_empty q)val enqueue : t -> elt -> unitenqueue q e enqueues the element e. The position of e in q is
determined by its priority.
Note: The default priority of elements is 0.0.
val dequeue : t -> eltdequeue q removes the highest priority element from q.
not (is_empty q)val drop : t -> unitdrop q removes the highest priority element from q.
not (is_empty q)val priority : t -> elt -> float
Note: The default priority of elements is 0.0.
val inc_priority : t -> elt -> float -> unitinc_priority q e x adds x to the priority of element e.
If e is enqueued, it will move up the queue as necessary.
0.0 < xpriority q e <= max_float -. xval scale : t -> float -> unitscale q x multiplies the priority of every element by the constant
factor x. The ordering of elements in the queue is unchanged.
x > 0.0.