<?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_1cudaBlockSort" kind="struct" language="C++" prot="private">
    <compoundname>tf::detail::cudaBlockSort</compoundname>
    <innerclass refid="uniontf_1_1detail_1_1cudaBlockSort_1_1Storage" prot="private">tf::detail::cudaBlockSort::Storage</innerclass>
    <templateparamlist>
      <param>
        <type>unsigned</type>
        <declname>nt</declname>
        <defname>nt</defname>
      </param>
      <param>
        <type>unsigned</type>
        <declname>vt</declname>
        <defname>vt</defname>
      </param>
      <param>
        <type>typename K</type>
      </param>
      <param>
        <type>typename V</type>
      </param>
    </templateparamlist>
      <sectiondef kind="public-static-attrib">
      <memberdef kind="variable" id="structtf_1_1detail_1_1cudaBlockSort_1ab08e7fc6dcfebd4c091bf742558a004e" prot="public" static="yes" constexpr="yes" mutable="no">
        <type>constexpr bool</type>
        <definition>constexpr bool tf::detail::cudaBlockSort&lt; nt, vt, K, V &gt;::has_values</definition>
        <argsstring></argsstring>
        <name>has_values</name>
        <qualifiedname>tf::detail::cudaBlockSort::has_values</qualifiedname>
        <initializer>= !<ref refid="cpp/types/is_same" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::is_same</ref>&lt;V, cudaEmpty&gt;::value</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" line="152" column="25" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" bodystart="152" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structtf_1_1detail_1_1cudaBlockSort_1a09986d68c8c99159902e9c2ab9182079" prot="public" static="yes" constexpr="yes" mutable="no">
        <type>constexpr unsigned</type>
        <definition>constexpr unsigned tf::detail::cudaBlockSort&lt; nt, vt, K, V &gt;::num_passes</definition>
        <argsstring></argsstring>
        <name>num_passes</name>
        <qualifiedname>tf::detail::cudaBlockSort::num_passes</qualifiedname>
        <initializer>= log2(nt)</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" line="153" column="29" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" bodystart="153" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="structtf_1_1detail_1_1cudaBlockSort_1a8a4821a2ba1e2412cfa78ae5f8fbfb5e" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename C</type>
          </param>
        </templateparamlist>
        <type>__device__ auto</type>
        <definition>__device__ auto tf::detail::cudaBlockSort&lt; nt, vt, K, V &gt;::merge_pass</definition>
        <argsstring>(cudaKVArray&lt; K, V, vt &gt; x, unsigned tid, unsigned count, unsigned pass, C comp, Storage &amp;storage) const</argsstring>
        <name>merge_pass</name>
        <qualifiedname>tf::detail::cudaBlockSort::merge_pass</qualifiedname>
        <param>
          <type>cudaKVArray&lt; K, V, vt &gt;</type>
          <declname>x</declname>
        </param>
        <param>
          <type>unsigned</type>
          <declname>tid</declname>
        </param>
        <param>
          <type>unsigned</type>
          <declname>count</declname>
        </param>
        <param>
          <type>unsigned</type>
          <declname>pass</declname>
        </param>
        <param>
          <type>C</type>
          <declname>comp</declname>
        </param>
        <param>
          <type>Storage &amp;</type>
          <declname>storage</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" line="164" column="19" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" bodystart="164" bodyend="196"/>
      </memberdef>
      <memberdef kind="function" id="structtf_1_1detail_1_1cudaBlockSort_1a79d7cd8115842d64e15b91bb7f6c31a7" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename C</type>
          </param>
        </templateparamlist>
        <type>__device__ auto</type>
        <definition>__device__ auto tf::detail::cudaBlockSort&lt; nt, vt, K, V &gt;::block_sort</definition>
        <argsstring>(cudaKVArray&lt; K, V, vt &gt; x, unsigned tid, unsigned count, C comp, Storage &amp;storage) const</argsstring>
        <name>block_sort</name>
        <qualifiedname>tf::detail::cudaBlockSort::block_sort</qualifiedname>
        <param>
          <type>cudaKVArray&lt; K, V, vt &gt;</type>
          <declname>x</declname>
        </param>
        <param>
          <type>unsigned</type>
          <declname>tid</declname>
        </param>
        <param>
          <type>unsigned</type>
          <declname>count</declname>
        </param>
        <param>
          <type>C</type>
          <declname>comp</declname>
        </param>
        <param>
          <type>Storage &amp;</type>
          <declname>storage</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" line="199" column="19" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" bodystart="199" bodyend="219"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" line="150" column="1" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/algorithm/sort.hpp" bodystart="150" bodyend="220"/>
    <listofallmembers>
      <member refid="structtf_1_1detail_1_1cudaBlockSort_1a79d7cd8115842d64e15b91bb7f6c31a7" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockSort</scope><name>block_sort</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockSort_1ab08e7fc6dcfebd4c091bf742558a004e" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockSort</scope><name>has_values</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockSort_1a8a4821a2ba1e2412cfa78ae5f8fbfb5e" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockSort</scope><name>merge_pass</name></member>
      <member refid="structtf_1_1detail_1_1cudaBlockSort_1a09986d68c8c99159902e9c2ab9182079" prot="public" virt="non-virtual"><scope>tf::detail::cudaBlockSort</scope><name>num_passes</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
