From 612fd986ab1e00b6d34dc1937136250e08e89325 Mon Sep 17 00:00:00 2001 From: "J.J" Date: Thu, 30 May 2024 21:50:02 -0400 Subject: cleanup --- aoc2023/build/packages/pqueue/doc/pqueue.html | 166 ++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 aoc2023/build/packages/pqueue/doc/pqueue.html (limited to 'aoc2023/build/packages/pqueue/doc/pqueue.html') diff --git a/aoc2023/build/packages/pqueue/doc/pqueue.html b/aoc2023/build/packages/pqueue/doc/pqueue.html new file mode 100644 index 0000000..40b05ac --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/pqueue.html @@ -0,0 +1,166 @@ + + + + +Module pqueue + + + + +
+ +

Module pqueue

+ +

Static Priority Queue.

+ This priority queue implementation depends on a static number of priorities + (-20 (high) to 20 (low)) so that tuple access times can be exploited for + quick in/out priority queue operations. +

Copyright © 2011-2020 Michael Truog

+ +

Version: 2.0.1 Nov 26 2020 14:55:34 + ------------------------------------------------------------------------

+

Authors: Michael Truog (mjtruog at protonmail dot com).

+ +

Description

+

Static Priority Queue.

+ This priority queue implementation depends on a static number of priorities + (-20 (high) to 20 (low)) so that tuple access times can be exploited for + quick in/out priority queue operations. This implementation was created to + avoid the slowness within the priority queue used by both RabbitMQ and Riak + (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). +

Data Types

+ +

pqueue()

+

pqueue() = {integer(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}} | {empty, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}}

+ + +

Function Index

+ + + + + + + + + + + + +
in/2 +

Append an item to the tail of the 0 priority queue.

+ O(1).
in/3 +

Append an item to the tail of a specific priority queue.

+ O(1).
is_empty/1 +

Check if the priority queue is empty.

+ O(1).
is_queue/1 +

Check if the priority queue type is as expected.

+ O(1).
join/2 +

Join two priority queues.

+ O(N).
len/1 +

Determine the length of a priority queue.

+ O(N).
new/0 +

Create a new priority queue.

+ O(1).
out/1 +

Take an item from the head of the priority queue.

+ O(1) amortized, O(N) worst case.
out/2 +

Take an item of a specific priority from the head of the queue.

+ O(1) amortized, O(N) worst case.
pout/1 +

Take an item from the head of the priority queue.

+ Includes the priority in the return value.
test/0 +

Regression test.

.
to_list/1 +

Convert the priority queue to a list.

+ O(N).
+ +

Function Details

+ +

in/2

+
+

in(X::term(), Q::pqueue()) -> pqueue()

+

+

Append an item to the tail of the 0 priority queue.

+ O(1)

+ +

in/3

+
+

in(X::term(), P::integer(), Q::pqueue()) -> pqueue()

+

+

Append an item to the tail of a specific priority queue.

+ O(1)

+ +

is_empty/1

+
+

is_empty(X1::pqueue()) -> true | false

+

+

Check if the priority queue is empty.

+ O(1)

+ +

is_queue/1

+
+

is_queue(X1::pqueue()) -> true | false

+

+

Check if the priority queue type is as expected.

+ O(1)

+ +

join/2

+
+

join(X1::pqueue(), X2::pqueue()) -> pqueue()

+

+

Join two priority queues.

+ O(N)

+ +

len/1

+
+

len(X1::pqueue()) -> non_neg_integer()

+

+

Determine the length of a priority queue.

+ O(N)

+ +

new/0

+
+

new() -> pqueue()

+

+

Create a new priority queue.

+ O(1)

+ +

out/1

+
+

out(Q::pqueue()) -> {{value, term()}, pqueue()} | {empty, pqueue()}

+

+

Take an item from the head of the priority queue.

+ O(1) amortized, O(N) worst case

+ +

out/2

+
+

out(P::integer(), Q::pqueue()) -> {{value, term()}, pqueue()} | {empty, pqueue()}

+

+

Take an item of a specific priority from the head of the queue.

+ O(1) amortized, O(N) worst case

+ +

pout/1

+
+

pout(Q::pqueue()) -> {{value, term(), integer()}, pqueue()} | {empty, pqueue()}

+

+

Take an item from the head of the priority queue.

+ Includes the priority in the return value. + O(1) amortized, O(N) worst case

+ +

test/0

+
+

test() -> any()

+

+

Regression test.

+

+ +

to_list/1

+
+

to_list(X1::pqueue()) -> [term()]

+

+

Convert the priority queue to a list.

+ O(N)

+
+ + +

Generated by EDoc

+ + -- cgit v1.2.3