<?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.1" xml:lang="en-US">
  <compounddef id="structtf_1_1detail_1_1cudaBlockReduce" kind="struct" language="C++" prot="private">
    <compoundname>tf::detail::cudaBlockReduce</compoundname>
    <innerclass refid="structtf_1_1detail_1_1cudaBlockReduce_1_1Storage" prot="private">tf::detail::cudaBlockReduce::Storage</innerclass>
    <templateparamlist>
      <param>
        <type>unsigned</type>
        <declname>nt</declname>
        <defname>nt</defname>
      </param>
      <param>
        <type>typename T</type>
      </param>
    </templateparamlist>
      <sectiondef kind="public-static-attrib">
      <memberdef kind="variable" id="structtf_1_1detail_1_1cudaBlockReduce_1a090793ae40eaea9ae4cfec2960777c7e" prot="public" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned tf::detail::cudaBlockReduce&lt; nt, T &gt;::group_size</definition>
        <argsstring></argsstring>
        <name>group_size</name>
        <initializer>= std::min(nt, CUDA_WARP_SIZE)</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/cuda/algorithm/reduce.hpp" line="20" column="25" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="20" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structtf_1_1detail_1_1cudaBlockReduce_1a83b5862bde412c439b25d17e6b85f176" prot="public" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned tf::detail::cudaBlockReduce&lt; nt, T &gt;::num_passes</definition>
        <argsstring></argsstring>
        <name>num_passes</name>
        <initializer>= <ref refid="namespacetf_1a2bf015a9ef27c0efd2d3c73234317a06" kindref="member">log2</ref>(group_size)</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/cuda/algorithm/reduce.hpp" line="21" column="25" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="21" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structtf_1_1detail_1_1cudaBlockReduce_1af4f00b1e05f942cf0eaf448ca37baf83" prot="public" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned tf::detail::cudaBlockReduce&lt; nt, T &gt;::num_items</definition>
        <argsstring></argsstring>
        <name>num_items</name>
        <initializer>= nt / group_size</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/cuda/algorithm/reduce.hpp" line="22" column="25" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="22" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="structtf_1_1detail_1_1cudaBlockReduce_1a6487595da01b3fb5666f41c52b93f5a0" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename op_t</type>
          </param>
        </templateparamlist>
        <type>__device__ T</type>
        <definition>__device__ T tf::detail::cudaBlockReduce&lt; nt, T &gt;::operator()</definition>
        <argsstring>(unsigned, T, Storage &amp;, unsigned, op_t, bool=true) const</argsstring>
        <name>operator()</name>
        <param>
          <type>unsigned</type>
          <defname>tid</defname>
        </param>
        <param>
          <type>T</type>
          <defname>x</defname>
        </param>
        <param>
          <type>Storage &amp;</type>
          <defname>storage</defname>
        </param>
        <param>
          <type>unsigned</type>
          <defname>count</defname>
        </param>
        <param>
          <type>op_t</type>
          <defname>op</defname>
        </param>
        <param>
          <type>bool</type>
          <defname>ret</defname>
          <defval>true</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/cuda/algorithm/reduce.hpp" line="35" column="16" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="41" bodyend="83"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="taskflow/cuda/algorithm/reduce.hpp" line="18" column="1" bodyfile="taskflow/cuda/algorithm/reduce.hpp" bodystart="18" bodyend="36"/>
    <listofallmembers>
      <member refid="structtf_1_1detail_1_1cudaBlockReduce_1a090793ae40eaea9ae4cfec2960777c7e" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockReduce</scope><name>group_size</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockReduce_1af4f00b1e05f942cf0eaf448ca37baf83" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockReduce</scope><name>num_items</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockReduce_1a83b5862bde412c439b25d17e6b85f176" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockReduce</scope><name>num_passes</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockReduce_1a6487595da01b3fb5666f41c52b93f5a0" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockReduce</scope><name>operator()</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
