<?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="structtf_1_1detail_1_1cudaBlockScan" kind="struct" language="C++" prot="private">
    <compoundname>tf::detail::cudaBlockScan</compoundname>
    <innerclass refid="uniontf_1_1detail_1_1cudaBlockScan_1_1storage__t" prot="private">tf::detail::cudaBlockScan::storage_t</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_1cudaBlockScan_1ade947dae7ff7d1a8d33cb937f0c9d93a" prot="public" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned tf::detail::cudaBlockScan&lt; nt, T &gt;::num_warps</definition>
        <argsstring></argsstring>
        <name>num_warps</name>
        <qualifiedname>tf::detail::cudaBlockScan::num_warps</qualifiedname>
        <initializer>= nt / CUDA_WARP_SIZE</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" line="45" column="25" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" bodystart="45" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structtf_1_1detail_1_1cudaBlockScan_1a341cac68448f65a06e10c1327bfe06a5" prot="public" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned tf::detail::cudaBlockScan&lt; nt, T &gt;::num_passes</definition>
        <argsstring></argsstring>
        <name>num_passes</name>
        <qualifiedname>tf::detail::cudaBlockScan::num_passes</qualifiedname>
        <initializer>= log2(nt)</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" line="46" column="25" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" bodystart="46" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structtf_1_1detail_1_1cudaBlockScan_1a232b3e951d2a0b68b98e3ced6964b223" prot="public" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned tf::detail::cudaBlockScan&lt; nt, T &gt;::capacity</definition>
        <argsstring></argsstring>
        <name>capacity</name>
        <qualifiedname>tf::detail::cudaBlockScan::capacity</qualifiedname>
        <initializer>= nt + num_warps</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" line="47" column="25" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" bodystart="47" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="structtf_1_1detail_1_1cudaBlockScan_1a5ac5687ea52d5b6378bd22f4e0bf3b2d" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename op_t</type>
          </param>
        </templateparamlist>
        <type>__device__ cudaScanResult&lt; T &gt;</type>
        <definition>__device__ cudaScanResult&lt; T &gt; tf::detail::cudaBlockScan&lt; nt, T &gt;::operator()</definition>
        <argsstring>(unsigned tid, T x, storage_t &amp;storage, unsigned count=nt, op_t op=op_t(), T init=T(), cudaScanType type=cudaScanType::EXCLUSIVE) const</argsstring>
        <name>operator()</name>
        <qualifiedname>tf::detail::cudaBlockScan::operator()</qualifiedname>
        <param>
          <type>unsigned</type>
          <declname>tid</declname>
        </param>
        <param>
          <type>T</type>
          <declname>x</declname>
        </param>
        <param>
          <type>storage_t &amp;</type>
          <declname>storage</declname>
        </param>
        <param>
          <type>unsigned</type>
          <declname>count</declname>
          <defval>nt</defval>
        </param>
        <param>
          <type>op_t</type>
          <declname>op</declname>
          <defval>op_t()</defval>
        </param>
        <param>
          <type>T</type>
          <declname>init</declname>
          <defval>T()</defval>
        </param>
        <param>
          <type>cudaScanType</type>
          <declname>type</declname>
          <defval>cudaScanType::EXCLUSIVE</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" line="57" column="29" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" bodystart="86" bodyend="113"/>
      </memberdef>
      <memberdef kind="function" id="structtf_1_1detail_1_1cudaBlockScan_1aeab231ca5acb3afa6be1f82c95397aad" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>unsigned</type>
            <declname>vt</declname>
            <defname>vt</defname>
          </param>
          <param>
            <type>typename op_t</type>
          </param>
        </templateparamlist>
        <type>__device__ cudaScanResult&lt; T, vt &gt;</type>
        <definition>__device__ cudaScanResult&lt; T, vt &gt; tf::detail::cudaBlockScan&lt; nt, T &gt;::operator()</definition>
        <argsstring>(unsigned tid, cudaArray&lt; T, vt &gt; x, storage_t &amp;storage, T carry_in=T(), bool use_carry_in=false, unsigned count=nt, op_t op=op_t(), T init=T(), cudaScanType type=cudaScanType::EXCLUSIVE) const</argsstring>
        <name>operator()</name>
        <qualifiedname>tf::detail::cudaBlockScan::operator()</qualifiedname>
        <param>
          <type>unsigned</type>
          <declname>tid</declname>
        </param>
        <param>
          <type>cudaArray&lt; T, vt &gt;</type>
          <declname>x</declname>
        </param>
        <param>
          <type>storage_t &amp;</type>
          <declname>storage</declname>
        </param>
        <param>
          <type>T</type>
          <declname>carry_in</declname>
          <defval>T()</defval>
        </param>
        <param>
          <type>bool</type>
          <declname>use_carry_in</declname>
          <defval>false</defval>
        </param>
        <param>
          <type>unsigned</type>
          <declname>count</declname>
          <defval>nt</defval>
        </param>
        <param>
          <type>op_t</type>
          <declname>op</declname>
          <defval>op_t()</defval>
        </param>
        <param>
          <type>T</type>
          <declname>init</declname>
          <defval>T()</defval>
        </param>
        <param>
          <type>cudaScanType</type>
          <declname>type</declname>
          <defval>cudaScanType::EXCLUSIVE</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" line="70" column="29" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" bodystart="118" bodyend="169"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" line="43" column="1" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/scan.hpp" bodystart="43" bodyend="81"/>
    <listofallmembers>
      <member refid="structtf_1_1detail_1_1cudaBlockScan_1a232b3e951d2a0b68b98e3ced6964b223" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockScan</scope><name>capacity</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockScan_1a341cac68448f65a06e10c1327bfe06a5" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockScan</scope><name>num_passes</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockScan_1ade947dae7ff7d1a8d33cb937f0c9d93a" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockScan</scope><name>num_warps</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockScan_1a5ac5687ea52d5b6378bd22f4e0bf3b2d" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockScan</scope><name>operator()</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockScan_1aeab231ca5acb3afa6be1f82c95397aad" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockScan</scope><name>operator()</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
