Difference between revisions of "Template:Size"

From QBWiki
Jump to navigation Jump to search
m
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly>{{#vardefine:page|{{{1}}}}}{{#vardefine:minindex|1}}{{#vardefine:maxindex|2}}
+
<includeonly>{{#vardefine:page|{{{1}}}}}{{#vardefine:minindex|0}}{{#vardefine:maxindex|1}}<!--
{{#while:
+
Find the upper bound of the size in steps of 2^n
 +
-->{{#while:
 
|{{{{#var:page}}|{{#var:maxindex}}}}
 
|{{{{#var:page}}|{{#var:maxindex}}}}
 
|{{#vardefine:minindex|{{#var:maxindex}}}}{{Multiply|maxindex|2}}
 
|{{#vardefine:minindex|{{#var:maxindex}}}}{{Multiply|maxindex|2}}
}}{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}{{#dowhile:
+
}}{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}<!--
|{{#ifexpr:{{#var:maxindex}}+1<{{#var:minindex}}|continue}}
+
Perform a binary search between [2^n-1, 2^n] to find the last element of the list
|{{#if:{{{{#var:page}}|{{#var:index}}}}
+
-->{{#while:
<!--undershoot-->|{{#ifexpr:{{#var:index}}>{{#var:maxindex}}|{{#vardefine:maxindex|{{#var:index}}}}}}
+
|{{#ifexpr:{{#var:minindex}}+1<{{#var:maxindex}}|true}}
<!-- overshoot-->|{{#ifexpr:{{#var:index}}<{{#var:minindex}}|{{#vardefine:minindex|{{#var:index}}}}}}
+
|
 +
{{#if:{{{{#var:page}}|{{#var:index}}}}
 +
<!--undershoot-->|{{#vardefine:minindex|{{#var:index}}}}
 +
<!-- overshoot-->|{{#vardefine:maxindex|{{#var:index}}}}
 
}}
 
}}
}}{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}{{#expr:{{#var:index}}-1}}</includeonly><noinclude>
+
{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}
Get size of list
+
}}{{#var:index}}</includeonly><noinclude>
 +
{{Template doc|
 +
Get size of a list given a template that maps index -> entry.
  
{| class="wikitable"
+
Largely deprecated by [[Template:List lookup helper|List lookup helper]].
! list
+
 
! size
+
<pre>
|-
+
{{Size|Quick links lingo}}
|[[QBWiki:Quick links/lingo|Quick links lingo]]
+
 
|{{Size|Quick links lingo}}
+
{{Size|Anecdote}}
|-
+
</pre>
|Anecdote
+
 
|{{Size|Anecdote}}
+
{{Size|Quick links lingo}}
|}
+
 
</noinclude>
+
{{Size|Anecdote}}
 +
}}</noinclude>

Latest revision as of 18:28, 14 December 2025

Template documentation

Get size of a list given a template that maps index -> entry.

Largely deprecated by List lookup helper.

{{Size|Quick links lingo}}

{{Size|Anecdote}}

5

0