<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.6" xml:lang="en-US">
  <compounddef id="classtf_1_1DynamicPartitioner" kind="class" language="C++" prot="public">
    <compoundname>tf::DynamicPartitioner</compoundname>
    <basecompoundref refid="classtf_1_1PartitionerBase" prot="public" virt="non-virtual">tf::PartitionerBase</basecompoundref>
    <includes refid="partitioner_8hpp" local="no">partitioner.hpp</includes>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classtf_1_1DynamicPartitioner_1aa12a7f9c4b7cde960b63c9a2916428ac" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>tf::DynamicPartitioner::DynamicPartitioner</definition>
        <argsstring>()</argsstring>
        <name>DynamicPartitioner</name>
        <qualifiedname>tf::DynamicPartitioner::DynamicPartitioner</qualifiedname>
        <briefdescription>
<para>default constructor </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" line="236" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" bodystart="236" bodyend="236"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1DynamicPartitioner_1afec1c557cfa1b2b5b9c5c47f40bc1697" prot="public" static="no" const="no" explicit="yes" inline="yes" virt="non-virtual">
        <type></type>
        <definition>tf::DynamicPartitioner::DynamicPartitioner</definition>
        <argsstring>(size_t sz)</argsstring>
        <name>DynamicPartitioner</name>
        <qualifiedname>tf::DynamicPartitioner::DynamicPartitioner</qualifiedname>
        <param>
          <type>size_t</type>
          <declname>sz</declname>
        </param>
        <briefdescription>
<para>construct a dynamic partitioner with the given chunk size </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" line="241" column="12" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" bodystart="241" bodyend="241"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classtf_1_1DynamicPartitioner_1aead57f8cb15119905845ae72843b86a3" prot="private" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename F</type>
          </param>
          <param>
            <type>std::enable_if_t&lt; std::is_invocable_r_v&lt; void, F, size_t, size_t &gt;, void &gt; *</type>
            <defval>nullptr</defval>
          </param>
        </templateparamlist>
        <type>void</type>
        <definition>void tf::DynamicPartitioner::loop</definition>
        <argsstring>(size_t N, size_t, std::atomic&lt; size_t &gt; &amp;next, F &amp;&amp;func) const</argsstring>
        <name>loop</name>
        <qualifiedname>tf::DynamicPartitioner::loop</qualifiedname>
        <param>
          <type>size_t</type>
          <declname>N</declname>
        </param>
        <param>
          <type>size_t</type>
        </param>
        <param>
          <type><ref refid="cpp/atomic/atomic" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::atomic</ref>&lt; size_t &gt; &amp;</type>
          <declname>next</declname>
        </param>
        <param>
          <type>F &amp;&amp;</type>
          <declname>func</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" line="253" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" bodystart="253" bodyend="267"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1DynamicPartitioner_1a1cb42e80e153127db83cc0833e6f65cb" prot="private" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename F</type>
          </param>
          <param>
            <type>std::enable_if_t&lt; std::is_invocable_r_v&lt; bool, F, size_t, size_t &gt;, void &gt; *</type>
            <defval>nullptr</defval>
          </param>
        </templateparamlist>
        <type>void</type>
        <definition>void tf::DynamicPartitioner::loop_until</definition>
        <argsstring>(size_t N, size_t, std::atomic&lt; size_t &gt; &amp;next, F &amp;&amp;func) const</argsstring>
        <name>loop_until</name>
        <qualifiedname>tf::DynamicPartitioner::loop_until</qualifiedname>
        <param>
          <type>size_t</type>
          <declname>N</declname>
        </param>
        <param>
          <type>size_t</type>
        </param>
        <param>
          <type><ref refid="cpp/atomic/atomic" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::atomic</ref>&lt; size_t &gt; &amp;</type>
          <declname>next</declname>
        </param>
        <param>
          <type>F &amp;&amp;</type>
          <declname>func</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" line="275" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" bodystart="275" bodyend="291"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>class to construct a dynamic partitioner for scheduling parallel algorithms </para>
    </briefdescription>
    <detaileddescription>
<para>The partitioner splits iterations into many partitions each of size equal to the given chunk size. Different partitions are distributed dynamically to workers without any specific order. </para>
    </detaileddescription>
    <inheritancegraph>
      <node id="1">
        <label>tf::DynamicPartitioner</label>
        <link refid="classtf_1_1DynamicPartitioner"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
      <node id="2">
        <label>tf::PartitionerBase</label>
        <link refid="classtf_1_1PartitionerBase"/>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="1">
        <label>tf::DynamicPartitioner</label>
        <link refid="classtf_1_1DynamicPartitioner"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
      <node id="2">
        <label>tf::PartitionerBase</label>
        <link refid="classtf_1_1PartitionerBase"/>
      </node>
    </collaborationgraph>
    <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" line="229" column="1" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/partitioner.hpp" bodystart="229" bodyend="292"/>
    <listofallmembers>
      <member refid="classtf_1_1PartitionerBase_1a98a744284cfc726b1a597dae90e766f0" prot="protected" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>_chunk_size</name></member>
      <member refid="classtf_1_1PartitionerBase_1a8445b917fca6384861898d46b81ec471" prot="public" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>chunk_size</name></member>
      <member refid="classtf_1_1PartitionerBase_1ad3aadb6b50b86eb0a679f714f07079cf" prot="public" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>chunk_size</name></member>
      <member refid="classtf_1_1DynamicPartitioner_1aa12a7f9c4b7cde960b63c9a2916428ac" prot="public" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>DynamicPartitioner</name></member>
      <member refid="classtf_1_1DynamicPartitioner_1afec1c557cfa1b2b5b9c5c47f40bc1697" prot="public" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>DynamicPartitioner</name></member>
      <member refid="classtf_1_1DynamicPartitioner_1aead57f8cb15119905845ae72843b86a3" prot="private" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>loop</name></member>
      <member refid="classtf_1_1DynamicPartitioner_1a1cb42e80e153127db83cc0833e6f65cb" prot="private" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>loop_until</name></member>
      <member refid="classtf_1_1PartitionerBase_1a9dae31a2e61d1d64a913bd1d12cfcb20" prot="public" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>PartitionerBase</name></member>
      <member refid="classtf_1_1PartitionerBase_1a75ad9b40415d767ef368c20650958be0" prot="public" virt="non-virtual"><scope>tf::DynamicPartitioner</scope><name>PartitionerBase</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
