diff options
Diffstat (limited to 'aoc2023/build/packages/pqueue/doc')
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/edoc-info | 3 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/erlang.png | bin | 0 -> 2109 bytes | |||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/index.html | 17 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/modules-frame.html | 15 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/overview-summary.html | 16 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/pqueue.html | 166 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/pqueue2.html | 143 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/pqueue3.html | 162 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/pqueue4.html | 205 | ||||
-rw-r--r-- | aoc2023/build/packages/pqueue/doc/stylesheet.css | 55 |
10 files changed, 782 insertions, 0 deletions
diff --git a/aoc2023/build/packages/pqueue/doc/edoc-info b/aoc2023/build/packages/pqueue/doc/edoc-info new file mode 100644 index 0000000..5e5a8d3 --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/edoc-info @@ -0,0 +1,3 @@ +%% encoding: UTF-8 +{application,pqueue}. +{modules,[pqueue,pqueue2,pqueue3,pqueue4]}. diff --git a/aoc2023/build/packages/pqueue/doc/erlang.png b/aoc2023/build/packages/pqueue/doc/erlang.png Binary files differnew file mode 100644 index 0000000..987a618 --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/erlang.png diff --git a/aoc2023/build/packages/pqueue/doc/index.html b/aoc2023/build/packages/pqueue/doc/index.html new file mode 100644 index 0000000..d55b5e6 --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/index.html @@ -0,0 +1,17 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>The pqueue application</title> +</head> +<frameset cols="20%,80%"> +<frame src="modules-frame.html" name="modulesFrame" title=""> + +<frame src="overview-summary.html" name="overviewFrame" title=""> +<noframes> +<h2>This page uses frames</h2> +<p>Your browser does not accept frames. +<br>You should go to the <a href="overview-summary.html">non-frame version</a> instead. +</p> +</noframes> +</frameset> +</html>
\ No newline at end of file diff --git a/aoc2023/build/packages/pqueue/doc/modules-frame.html b/aoc2023/build/packages/pqueue/doc/modules-frame.html new file mode 100644 index 0000000..5a87cc4 --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/modules-frame.html @@ -0,0 +1,15 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>The pqueue application</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc"> +</head> +<body bgcolor="white"> +<h2 class="indextitle">Modules</h2> +<table width="100%" border="0" summary="list of modules"> +<tr><td><a href="pqueue.html" target="overviewFrame" class="module">pqueue</a></td></tr> +<tr><td><a href="pqueue2.html" target="overviewFrame" class="module">pqueue2</a></td></tr> +<tr><td><a href="pqueue3.html" target="overviewFrame" class="module">pqueue3</a></td></tr> +<tr><td><a href="pqueue4.html" target="overviewFrame" class="module">pqueue4</a></td></tr></table> +</body> +</html>
\ No newline at end of file diff --git a/aoc2023/build/packages/pqueue/doc/overview-summary.html b/aoc2023/build/packages/pqueue/doc/overview-summary.html new file mode 100644 index 0000000..e2f8906 --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/overview-summary.html @@ -0,0 +1,16 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>The pqueue application</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc"> +</head> +<body bgcolor="white"> +<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<h1>The pqueue application</h1> + +<hr> +<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<p><i>Generated by EDoc</i></p> +</body> +</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 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Module pqueue</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc"> +</head> +<body bgcolor="white"> +<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<hr> + +<h1>Module pqueue</h1> +<ul class="index"><li><a href="#description">Description</a></li><li><a href="#types">Data Types</a></li><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul> + <h3><a name="Static_Priority_Queue.">Static Priority Queue.</a></h3> + 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. +<p>Copyright © 2011-2020 Michael Truog</p> + +<p><b>Version:</b> 2.0.1 Nov 26 2020 14:55:34 + ------------------------------------------------------------------------</p> +<p><b>Authors:</b> Michael Truog (<a href="mailto:mjtruog at protonmail dot com"><tt>mjtruog at protonmail dot com</tt></a>).</p> + +<h2><a name="description">Description</a></h2> + <h3><a name="Static_Priority_Queue.">Static Priority Queue.</a></h3> + 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). +<h2><a name="types">Data Types</a></h2> + +<h3 class="typedecl"><a name="type-pqueue">pqueue()</a></h3> +<p><tt>pqueue() = {integer(), {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, <a href="queue.html#type-queue">queue:queue()</a>, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}} | {empty, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, <a href="queue.html#type-queue">queue:queue()</a>, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}, {<a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>, <a href="queue.html#type-queue">queue:queue()</a>}}</tt></p> + + +<h2><a name="index">Function Index</a></h2> +<table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#in-2">in/2</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#in-3">in/3</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#is_empty-1">is_empty/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#is_queue-1">is_queue/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#join-2">join/2</a></td><td> + <h4><a name="Join_two_priority_queues.">Join two priority queues.</a></h4> + O(N).</td></tr> +<tr><td valign="top"><a href="#len-1">len/1</a></td><td> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4> + O(N).</td></tr> +<tr><td valign="top"><a href="#new-0">new/0</a></td><td> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#out-1">out/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + O(1) amortized, O(N) worst case.</td></tr> +<tr><td valign="top"><a href="#out-2">out/2</a></td><td> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4> + O(1) amortized, O(N) worst case.</td></tr> +<tr><td valign="top"><a href="#pout-1">pout/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value.</td></tr> +<tr><td valign="top"><a href="#test-0">test/0</a></td><td> + <h4><a name="Regression_test.">Regression test.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#to_list-1">to_list/1</a></td><td> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4> + O(N).</td></tr> +</table> + +<h2><a name="functions">Function Details</a></h2> + +<h3 class="function"><a name="in-2">in/2</a></h3> +<div class="spec"> +<p><tt>in(X::term(), Q::<a href="#type-pqueue">pqueue()</a>) -> <a href="#type-pqueue">pqueue()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="in-3">in/3</a></h3> +<div class="spec"> +<p><tt>in(X::term(), P::integer(), Q::<a href="#type-pqueue">pqueue()</a>) -> <a href="#type-pqueue">pqueue()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="is_empty-1">is_empty/1</a></h3> +<div class="spec"> +<p><tt>is_empty(X1::<a href="#type-pqueue">pqueue()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4> + O(1)</p> + +<h3 class="function"><a name="is_queue-1">is_queue/1</a></h3> +<div class="spec"> +<p><tt>is_queue(X1::<a href="#type-pqueue">pqueue()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4> + O(1)</p> + +<h3 class="function"><a name="join-2">join/2</a></h3> +<div class="spec"> +<p><tt>join(X1::<a href="#type-pqueue">pqueue()</a>, X2::<a href="#type-pqueue">pqueue()</a>) -> <a href="#type-pqueue">pqueue()</a></tt><br></p> +</div><p> + <h4><a name="Join_two_priority_queues.">Join two priority queues.</a></h4> + O(N)</p> + +<h3 class="function"><a name="len-1">len/1</a></h3> +<div class="spec"> +<p><tt>len(X1::<a href="#type-pqueue">pqueue()</a>) -> non_neg_integer()</tt><br></p> +</div><p> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4> + O(N)</p> + +<h3 class="function"><a name="new-0">new/0</a></h3> +<div class="spec"> +<p><tt>new() -> <a href="#type-pqueue">pqueue()</a></tt><br></p> +</div><p> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="out-1">out/1</a></h3> +<div class="spec"> +<p><tt>out(Q::<a href="#type-pqueue">pqueue()</a>) -> {{value, term()}, <a href="#type-pqueue">pqueue()</a>} | {empty, <a href="#type-pqueue">pqueue()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="out-2">out/2</a></h3> +<div class="spec"> +<p><tt>out(P::integer(), Q::<a href="#type-pqueue">pqueue()</a>) -> {{value, term()}, <a href="#type-pqueue">pqueue()</a>} | {empty, <a href="#type-pqueue">pqueue()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4> + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="pout-1">pout/1</a></h3> +<div class="spec"> +<p><tt>pout(Q::<a href="#type-pqueue">pqueue()</a>) -> {{value, term(), integer()}, <a href="#type-pqueue">pqueue()</a>} | {empty, <a href="#type-pqueue">pqueue()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value. + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="test-0">test/0</a></h3> +<div class="spec"> +<p><tt>test() -> any()</tt></p> +</div><p> + <h4><a name="Regression_test.">Regression test.</a></h4> +</p> + +<h3 class="function"><a name="to_list-1">to_list/1</a></h3> +<div class="spec"> +<p><tt>to_list(X1::<a href="#type-pqueue">pqueue()</a>) -> [term()]</tt><br></p> +</div><p> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4> + O(N)</p> +<hr> + +<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<p><i>Generated by EDoc</i></p> +</body> +</html> diff --git a/aoc2023/build/packages/pqueue/doc/pqueue2.html b/aoc2023/build/packages/pqueue/doc/pqueue2.html new file mode 100644 index 0000000..2942b84 --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/pqueue2.html @@ -0,0 +1,143 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Module pqueue2</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc"> +</head> +<body bgcolor="white"> +<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<hr> + +<h1>Module pqueue2</h1> +<ul class="index"><li><a href="#description">Description</a></li><li><a href="#types">Data Types</a></li><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul> + <h3><a name="Skew_Heap_Priority_Queue.">Skew Heap Priority Queue.</a></h3> + Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority + queue implementation. +<p>Copyright © 2011-2020 Michael Truog</p> + +<p><b>Version:</b> 2.0.1 Nov 26 2020 14:55:32 + ------------------------------------------------------------------------</p> +<p><b>Authors:</b> Michael Truog (<a href="mailto:mjtruog at protonmail dot com"><tt>mjtruog at protonmail dot com</tt></a>).</p> + +<h2><a name="description">Description</a></h2> + <h3><a name="Skew_Heap_Priority_Queue.">Skew Heap Priority Queue.</a></h3> + Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority + queue implementation. Unfortunately, testing has shown this solution to + be more than 2 times slower than pqueue. +<h2><a name="types">Data Types</a></h2> + +<h3 class="typedecl"><a name="type-pqueue2">pqueue2()</a></h3> +<p><tt>pqueue2() = empty | {integer(), <a href="#type-pqueue2">pqueue2()</a>, <a href="#type-pqueue2">pqueue2()</a>, element, term()} | {integer(), <a href="#type-pqueue2">pqueue2()</a>, <a href="#type-pqueue2">pqueue2()</a>, queue, <a href="queue.html#type-queue">queue:queue()</a>}</tt></p> + + +<h2><a name="index">Function Index</a></h2> +<table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#in-2">in/2</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#in-3">in/3</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#is_empty-1">is_empty/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#is_queue-1">is_queue/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#len-1">len/1</a></td><td> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#new-0">new/0</a></td><td> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#out-1">out/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#out-2">out/2</a></td><td> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#pout-1">pout/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value.</td></tr> +<tr><td valign="top"><a href="#test-0">test/0</a></td><td> + <h4><a name="Regression_test.">Regression test.</a></h4>.</td></tr> +<tr><td valign="top"><a href="#to_list-1">to_list/1</a></td><td> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4>.</td></tr> +</table> + +<h2><a name="functions">Function Details</a></h2> + +<h3 class="function"><a name="in-2">in/2</a></h3> +<div class="spec"> +<p><tt>in(Value::term(), H::<a href="#type-pqueue2">pqueue2()</a>) -> <a href="#type-pqueue2">pqueue2()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4> +</p> + +<h3 class="function"><a name="in-3">in/3</a></h3> +<div class="spec"> +<p><tt>in(Value::term(), P::integer(), H::<a href="#type-pqueue2">pqueue2()</a>) -> <a href="#type-pqueue2">pqueue2()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4> +</p> + +<h3 class="function"><a name="is_empty-1">is_empty/1</a></h3> +<div class="spec"> +<p><tt>is_empty(X1::<a href="#type-pqueue2">pqueue2()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4> +</p> + +<h3 class="function"><a name="is_queue-1">is_queue/1</a></h3> +<div class="spec"> +<p><tt>is_queue(X1::<a href="#type-pqueue2">pqueue2()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4> +</p> + +<h3 class="function"><a name="len-1">len/1</a></h3> +<div class="spec"> +<p><tt>len(H::<a href="#type-pqueue2">pqueue2()</a>) -> non_neg_integer()</tt><br></p> +</div><p> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4> +</p> + +<h3 class="function"><a name="new-0">new/0</a></h3> +<div class="spec"> +<p><tt>new() -> <a href="#type-pqueue2">pqueue2()</a></tt><br></p> +</div><p> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4> +</p> + +<h3 class="function"><a name="out-1">out/1</a></h3> +<div class="spec"> +<p><tt>out(X1::<a href="#type-pqueue2">pqueue2()</a>) -> {{value, term()}, <a href="#type-pqueue2">pqueue2()</a>} | {empty, <a href="#type-pqueue2">pqueue2()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> +</p> + +<h3 class="function"><a name="out-2">out/2</a></h3> +<div class="spec"> +<p><tt>out(P::integer(), H::<a href="#type-pqueue2">pqueue2()</a>) -> {{value, term()}, <a href="#type-pqueue2">pqueue2()</a>} | {empty, <a href="#type-pqueue2">pqueue2()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4> +</p> + +<h3 class="function"><a name="pout-1">pout/1</a></h3> +<div class="spec"> +<p><tt>pout(X1::<a href="#type-pqueue2">pqueue2()</a>) -> {{value, term(), integer()}, <a href="#type-pqueue2">pqueue2()</a>} | {empty, <a href="#type-pqueue2">pqueue2()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value.</p> + +<h3 class="function"><a name="test-0">test/0</a></h3> +<div class="spec"> +<p><tt>test() -> any()</tt></p> +</div><p> + <h4><a name="Regression_test.">Regression test.</a></h4> +</p> + +<h3 class="function"><a name="to_list-1">to_list/1</a></h3> +<div class="spec"> +<p><tt>to_list(H::<a href="#type-pqueue2">pqueue2()</a>) -> [term()]</tt><br></p> +</div><p> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4> +</p> +<hr> + +<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<p><i>Generated by EDoc</i></p> +</body> +</html> diff --git a/aoc2023/build/packages/pqueue/doc/pqueue3.html b/aoc2023/build/packages/pqueue/doc/pqueue3.html new file mode 100644 index 0000000..35f1a7b --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/pqueue3.html @@ -0,0 +1,162 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Module pqueue3</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc"> +</head> +<body bgcolor="white"> +<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<hr> + +<h1>Module pqueue3</h1> +<ul class="index"><li><a href="#description">Description</a></li><li><a href="#types">Data Types</a></li><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul> + <h3><a name="A_Large_Priority_Queue.">A Large Priority Queue.</a></h3> + This priority queue implementation depends on layered tuples, so that tuple + access times can be exploited for quick in/out priority queue operations + when using 64 or more total priorities. +<p>Copyright © 2011-2020 Michael Truog</p> + +<p><b>Version:</b> 2.0.1 Nov 26 2020 14:55:32 + ------------------------------------------------------------------------</p> +<p><b>Authors:</b> Michael Truog (<a href="mailto:mjtruog at protonmail dot com"><tt>mjtruog at protonmail dot com</tt></a>).</p> + +<h2><a name="description">Description</a></h2> + <h3><a name="A_Large_Priority_Queue.">A Large Priority Queue.</a></h3> + This priority queue implementation depends on layered tuples, so that tuple + access times can be exploited for quick in/out priority queue operations + when using 64 or more total priorities. 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). +<h2><a name="types">Data Types</a></h2> + +<h3 class="typedecl"><a name="type-pqueue3">pqueue3()</a></h3> +<p><tt>pqueue3() = {integer(), integer(), empty | integer(), tuple()}</tt></p> + + +<h3 class="typedecl"><a name="type-pqueue3_empty">pqueue3_empty()</a></h3> +<p><tt>pqueue3_empty() = {integer(), integer(), empty, tuple()}</tt></p> + + +<h2><a name="index">Function Index</a></h2> +<table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#in-2">in/2</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#in-3">in/3</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#is_empty-1">is_empty/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#is_queue-1">is_queue/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#len-1">len/1</a></td><td> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4> + O(N).</td></tr> +<tr><td valign="top"><a href="#new-0">new/0</a></td><td> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#new-1">new/1</a></td><td> + <h4><a name="Create_a_new_priority_queue_with_customization_options.">Create a new priority queue with customization options.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#out-1">out/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + O(1) amortized, O(N) worst case.</td></tr> +<tr><td valign="top"><a href="#out-2">out/2</a></td><td> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4> + O(1) amortized, O(N) worst case.</td></tr> +<tr><td valign="top"><a href="#pout-1">pout/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value.</td></tr> +<tr><td valign="top"><a href="#to_list-1">to_list/1</a></td><td> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4> + O(N).</td></tr> +</table> + +<h2><a name="functions">Function Details</a></h2> + +<h3 class="function"><a name="in-2">in/2</a></h3> +<div class="spec"> +<p><tt>in(Value::term(), Q::<a href="#type-pqueue3">pqueue3()</a>) -> <a href="#type-pqueue3">pqueue3()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="in-3">in/3</a></h3> +<div class="spec"> +<p><tt>in(Value::term(), P::integer(), X3::<a href="#type-pqueue3">pqueue3()</a>) -> <a href="#type-pqueue3">pqueue3()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="is_empty-1">is_empty/1</a></h3> +<div class="spec"> +<p><tt>is_empty(Q::<a href="#type-pqueue3">pqueue3()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4> + O(1)</p> + +<h3 class="function"><a name="is_queue-1">is_queue/1</a></h3> +<div class="spec"> +<p><tt>is_queue(X1::<a href="#type-pqueue3">pqueue3()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4> + O(1)</p> + +<h3 class="function"><a name="len-1">len/1</a></h3> +<div class="spec"> +<p><tt>len(Q::<a href="#type-pqueue3">pqueue3()</a>) -> non_neg_integer()</tt><br></p> +</div><p> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4> + O(N)</p> + +<h3 class="function"><a name="new-0">new/0</a></h3> +<div class="spec"> +<p><tt>new() -> <a href="#type-pqueue3_empty">pqueue3_empty()</a></tt><br></p> +</div><p> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="new-1">new/1</a></h3> +<div class="spec"> +<p><tt>new(Options::[{atom(), term()}]) -> <a href="#type-pqueue3">pqueue3()</a></tt><br></p> +</div><p> + <h4><a name="Create_a_new_priority_queue_with_customization_options.">Create a new priority queue with customization options.</a></h4> + O(1)</p> + +<h3 class="function"><a name="out-1">out/1</a></h3> +<div class="spec"> +<p><tt>out(Q::<a href="#type-pqueue3">pqueue3()</a>) -> {{value, term()}, <a href="#type-pqueue3">pqueue3()</a>} | {empty, <a href="#type-pqueue3">pqueue3()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="out-2">out/2</a></h3> +<div class="spec"> +<p><tt>out(P::integer(), Q::<a href="#type-pqueue3">pqueue3()</a>) -> {{value, term()}, <a href="#type-pqueue3">pqueue3()</a>} | {empty, <a href="#type-pqueue3">pqueue3()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4> + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="pout-1">pout/1</a></h3> +<div class="spec"> +<p><tt>pout(Q::<a href="#type-pqueue3">pqueue3()</a>) -> {{value, term(), integer()}, <a href="#type-pqueue3">pqueue3()</a>} | {empty, <a href="#type-pqueue3">pqueue3()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value. + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="to_list-1">to_list/1</a></h3> +<div class="spec"> +<p><tt>to_list(Q::<a href="#type-pqueue3">pqueue3()</a>) -> [term()]</tt><br></p> +</div><p> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4> + O(N)</p> +<hr> + +<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<p><i>Generated by EDoc</i></p> +</body> +</html> diff --git a/aoc2023/build/packages/pqueue/doc/pqueue4.html b/aoc2023/build/packages/pqueue/doc/pqueue4.html new file mode 100644 index 0000000..edcdb6e --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/pqueue4.html @@ -0,0 +1,205 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Module pqueue4</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc"> +</head> +<body bgcolor="white"> +<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<hr> + +<h1>Module pqueue4</h1> +<ul class="index"><li><a href="#description">Description</a></li><li><a href="#types">Data Types</a></li><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul> + <h3><a name="Static_Priority_Queue.">Static Priority Queue.</a></h3> + This priority queue implementation depends on a static number of priorities + (-128 (high) to 128 (low)) so that tuple access times can be exploited for + quick in/out priority queue operations. +<p>Copyright © 2011-2020 Michael Truog</p> + +<p><b>Version:</b> 2.0.1 Nov 26 2020 14:55:34 + ------------------------------------------------------------------------</p> +<p><b>Authors:</b> Michael Truog (<a href="mailto:mjtruog at protonmail dot com"><tt>mjtruog at protonmail dot com</tt></a>).</p> + +<h2><a name="description">Description</a></h2> + <h3><a name="Static_Priority_Queue.">Static Priority Queue.</a></h3> + This priority queue implementation depends on a static number of priorities + (-128 (high) to 128 (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). +<h2><a name="types">Data Types</a></h2> + +<h3 class="typedecl"><a name="type-pqueue4">pqueue4()</a></h3> +<p><tt>pqueue4() = <a href="#type-pqueue4">pqueue4</a>(any())</tt></p> + + +<h3 class="typedecl"><a name="type-pqueue4">pqueue4()</a></h3> +<p><tt>pqueue4(T) = {<a href="#type-priority">priority()</a> | empty, non_neg_integer(), {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, <a href="queue.html#type-queue">queue:queue</a>(T), {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}, {<a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T), <a href="queue.html#type-queue">queue:queue</a>(T)}}</tt></p> + + +<h3 class="typedecl"><a name="type-priority">priority()</a></h3> +<p><tt>priority() = -128..128</tt></p> + + +<h2><a name="index">Function Index</a></h2> +<table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#filter-2">filter/2</a></td><td> + <h4><a name="Filter_the_priority_queue.">Filter the priority queue.</a></h4> + O(N).</td></tr> +<tr><td valign="top"><a href="#filter-3">filter/3</a></td><td> + <h4><a name="Filter_a_specific_priority_within_the_priority_queue.">Filter a specific priority within the priority queue.</a></h4> + O(N).</td></tr> +<tr><td valign="top"><a href="#in-2">in/2</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#in-3">in/3</a></td><td> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#is_empty-1">is_empty/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#is_queue-1">is_queue/1</a></td><td> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#len-1">len/1</a></td><td> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#new-0">new/0</a></td><td> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4> + O(1).</td></tr> +<tr><td valign="top"><a href="#out-1">out/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + O(1) amortized, O(N) worst case.</td></tr> +<tr><td valign="top"><a href="#out-2">out/2</a></td><td> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4> + O(1) amortized, O(N) worst case.</td></tr> +<tr><td valign="top"><a href="#pout-1">pout/1</a></td><td> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value.</td></tr> +<tr><td valign="top"><a href="#remove_unique-2">remove_unique/2</a></td><td> + <h4><a name="Remove_a_unique_value_from_the_priority_queue_with_a_binary_predicate.">Remove a unique value from the priority queue with a binary predicate.</a></h4> + O(N) but smaller constant than filter/2.</td></tr> +<tr><td valign="top"><a href="#remove_unique-3">remove_unique/3</a></td><td> + <h4><a name="Remove_a_unique_value_in_a_specific_priority_within_the_priority_queue_with_a_binary_predicate.">Remove a unique value in a specific priority within the priority queue with a binary predicate.</a></h4> + O(N) but smaller constant than filter/3.</td></tr> +<tr><td valign="top"><a href="#to_list-1">to_list/1</a></td><td> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4> + O(N).</td></tr> +<tr><td valign="top"><a href="#to_plist-1">to_plist/1</a></td><td> + <h4><a name="Convert_the_priority_queue_to_a_list_with_priorities.">Convert the priority queue to a list with priorities.</a></h4> + O(N).</td></tr> +</table> + +<h2><a name="functions">Function Details</a></h2> + +<h3 class="function"><a name="filter-2">filter/2</a></h3> +<div class="spec"> +<p><tt>filter(F::fun((any()) -> boolean()), Q::<a href="#type-pqueue4">pqueue4()</a>) -> <a href="#type-pqueue4">pqueue4()</a></tt><br></p> +</div><p> + <h4><a name="Filter_the_priority_queue.">Filter the priority queue.</a></h4> + O(N)</p> + +<h3 class="function"><a name="filter-3">filter/3</a></h3> +<div class="spec"> +<p><tt>filter(F::fun((any()) -> boolean()), P::integer(), Q::<a href="#type-pqueue4">pqueue4()</a>) -> <a href="#type-pqueue4">pqueue4()</a></tt><br></p> +</div><p> + <h4><a name="Filter_a_specific_priority_within_the_priority_queue.">Filter a specific priority within the priority queue.</a></h4> + O(N)</p> + +<h3 class="function"><a name="in-2">in/2</a></h3> +<div class="spec"> +<p><tt>in(X::any(), Q::<a href="#type-pqueue4">pqueue4()</a>) -> <a href="#type-pqueue4">pqueue4()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_the_0_priority_queue.">Append an item to the tail of the 0 priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="in-3">in/3</a></h3> +<div class="spec"> +<p><tt>in(X::any(), P::integer(), Q::<a href="#type-pqueue4">pqueue4()</a>) -> <a href="#type-pqueue4">pqueue4()</a></tt><br></p> +</div><p> + <h4><a name="Append_an_item_to_the_tail_of_a_specific_priority_queue.">Append an item to the tail of a specific priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="is_empty-1">is_empty/1</a></h3> +<div class="spec"> +<p><tt>is_empty(X1::<a href="#type-pqueue4">pqueue4()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_is_empty.">Check if the priority queue is empty.</a></h4> + O(1)</p> + +<h3 class="function"><a name="is_queue-1">is_queue/1</a></h3> +<div class="spec"> +<p><tt>is_queue(X1::<a href="#type-pqueue4">pqueue4()</a>) -> true | false</tt><br></p> +</div><p> + <h4><a name="Check_if_the_priority_queue_type_is_as_expected.">Check if the priority queue type is as expected.</a></h4> + O(1)</p> + +<h3 class="function"><a name="len-1">len/1</a></h3> +<div class="spec"> +<p><tt>len(X1::<a href="#type-pqueue4">pqueue4()</a>) -> non_neg_integer()</tt><br></p> +</div><p> + <h4><a name="Determine_the_length_of_a_priority_queue.">Determine the length of a priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="new-0">new/0</a></h3> +<div class="spec"> +<p><tt>new() -> <a href="#type-pqueue4">pqueue4()</a></tt><br></p> +</div><p> + <h4><a name="Create_a_new_priority_queue.">Create a new priority queue.</a></h4> + O(1)</p> + +<h3 class="function"><a name="out-1">out/1</a></h3> +<div class="spec"> +<p><tt>out(Q::<a href="#type-pqueue4">pqueue4()</a>) -> {{value, any()}, <a href="#type-pqueue4">pqueue4()</a>} | {empty, <a href="#type-pqueue4">pqueue4()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="out-2">out/2</a></h3> +<div class="spec"> +<p><tt>out(P::integer(), Q::<a href="#type-pqueue4">pqueue4()</a>) -> {{value, any()}, <a href="#type-pqueue4">pqueue4()</a>} | {empty, <a href="#type-pqueue4">pqueue4()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_of_a_specific_priority_from_the_head_of_the_queue.">Take an item of a specific priority from the head of the queue.</a></h4> + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="pout-1">pout/1</a></h3> +<div class="spec"> +<p><tt>pout(Q::<a href="#type-pqueue4">pqueue4()</a>) -> {{value, any(), integer()}, <a href="#type-pqueue4">pqueue4()</a>} | {empty, <a href="#type-pqueue4">pqueue4()</a>}</tt><br></p> +</div><p> + <h4><a name="Take_an_item_from_the_head_of_the_priority_queue.">Take an item from the head of the priority queue.</a></h4> + Includes the priority in the return value. + O(1) amortized, O(N) worst case</p> + +<h3 class="function"><a name="remove_unique-2">remove_unique/2</a></h3> +<div class="spec"> +<p><tt>remove_unique(F::fun((any()) -> boolean()), Q::<a href="#type-pqueue4">pqueue4()</a>) -> {boolean(), <a href="#type-pqueue4">pqueue4()</a>}</tt><br></p> +</div><p> + <h4><a name="Remove_a_unique_value_from_the_priority_queue_with_a_binary_predicate.">Remove a unique value from the priority queue with a binary predicate.</a></h4> + O(N) but smaller constant than filter/2</p> + +<h3 class="function"><a name="remove_unique-3">remove_unique/3</a></h3> +<div class="spec"> +<p><tt>remove_unique(F::fun((any()) -> boolean()), P::integer(), Q::<a href="#type-pqueue4">pqueue4()</a>) -> {boolean(), <a href="#type-pqueue4">pqueue4()</a>}</tt><br></p> +</div><p> + <h4><a name="Remove_a_unique_value_in_a_specific_priority_within_the_priority_queue_with_a_binary_predicate.">Remove a unique value in a specific priority within the priority queue with a binary predicate.</a></h4> + O(N) but smaller constant than filter/3</p> + +<h3 class="function"><a name="to_list-1">to_list/1</a></h3> +<div class="spec"> +<p><tt>to_list(Q::<a href="#type-pqueue4">pqueue4()</a>) -> list()</tt><br></p> +</div><p> + <h4><a name="Convert_the_priority_queue_to_a_list.">Convert the priority queue to a list.</a></h4> + O(N)</p> + +<h3 class="function"><a name="to_plist-1">to_plist/1</a></h3> +<div class="spec"> +<p><tt>to_plist(Q::<a href="#type-pqueue4">pqueue4()</a>) -> [{<a href="#type-priority">priority()</a>, list()}]</tt><br></p> +</div><p> + <h4><a name="Convert_the_priority_queue_to_a_list_with_priorities.">Convert the priority queue to a list with priorities.</a></h4> + O(N)</p> +<hr> + +<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div> +<p><i>Generated by EDoc</i></p> +</body> +</html> diff --git a/aoc2023/build/packages/pqueue/doc/stylesheet.css b/aoc2023/build/packages/pqueue/doc/stylesheet.css new file mode 100644 index 0000000..ab170c0 --- /dev/null +++ b/aoc2023/build/packages/pqueue/doc/stylesheet.css @@ -0,0 +1,55 @@ +/* standard EDoc style sheet */ +body { + font-family: Verdana, Arial, Helvetica, sans-serif; + margin-left: .25in; + margin-right: .2in; + margin-top: 0.2in; + margin-bottom: 0.2in; + color: #000000; + background-color: #ffffff; +} +h1,h2 { + margin-left: -0.2in; +} +div.navbar { + background-color: #add8e6; + padding: 0.2em; +} +h2.indextitle { + padding: 0.4em; + background-color: #add8e6; +} +h3.function,h3.typedecl { + background-color: #add8e6; + padding-left: 1em; +} +div.spec { + margin-left: 2em; + background-color: #eeeeee; +} +a.module { + text-decoration:none +} +a.module:hover { + background-color: #eeeeee; +} +ul.definitions { + list-style-type: none; +} +ul.index { + list-style-type: none; + background-color: #eeeeee; +} + +/* + * Minor style tweaks + */ +ul { + list-style-type: square; +} +table { + border-collapse: collapse; +} +td { + padding: 3 +} |