<?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="classtf_1_1cudaFlowLinearOptimizer" kind="class" language="C++" prot="public">
    <compoundname>tf::cudaFlowLinearOptimizer</compoundname>
    <basecompoundref prot="public" virt="non-virtual">tf::cudaFlowOptimizerBase</basecompoundref>
    <includes refid="cuda__optimizer_8hpp" local="no">taskflow/cuda/cuda_optimizer.hpp</includes>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classtf_1_1cudaFlowLinearOptimizer_1a672b45d300c57d726c203c62f950efbd" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class cudaFlowCapturer</definition>
        <argsstring></argsstring>
        <name>cudaFlowCapturer</name>
        <param>
          <type><ref refid="classtf_1_1cudaFlowCapturer" kindref="compound">cudaFlowCapturer</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/cuda/cuda_optimizer.hpp" line="184" column="3" bodyfile="taskflow/cuda/cuda_optimizer.hpp" bodystart="184" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classtf_1_1cudaFlowLinearOptimizer_1a58e1021e702e553834c6696637b736f1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tf::cudaFlowLinearOptimizer::cudaFlowLinearOptimizer</definition>
        <argsstring>()=default</argsstring>
        <name>cudaFlowLinearOptimizer</name>
        <briefdescription>
<para>constructs a linear optimizer </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/cuda/cuda_optimizer.hpp" line="191" column="5"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classtf_1_1cudaFlowLinearOptimizer_1a272177ccabb376ad862f4afd0c87d2b2" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>cudaGraph_t</type>
        <definition>cudaGraph_t tf::cudaFlowLinearOptimizer::_optimize</definition>
        <argsstring>(cudaFlowGraph &amp;graph)</argsstring>
        <name>_optimize</name>
        <param>
          <type>cudaFlowGraph &amp;</type>
          <declname>graph</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/cuda/cuda_optimizer.hpp" line="195" column="17" bodyfile="taskflow/cuda/cuda_optimizer.hpp" bodystart="198" bodyend="221"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>class to capture a linear CUDA graph using a sequential stream </para>
    </briefdescription>
    <detaileddescription>
<para>A linear capturing algorithm is a special case of <ref refid="classtf_1_1cudaFlowSequentialOptimizer" kindref="compound">tf::cudaFlowSequentialOptimizer</ref> and assumes the input task graph to be a single linear chain of tasks (i.e., a straight line). This assumption allows faster optimization during the capturing process. If the input task graph is not a linear chain, the behavior is undefined. </para>
    </detaileddescription>
    <inheritancegraph>
      <node id="2">
        <label>tf::cudaFlowOptimizerBase</label>
      </node>
      <node id="1">
        <label>tf::cudaFlowLinearOptimizer</label>
        <link refid="classtf_1_1cudaFlowLinearOptimizer"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="2">
        <label>tf::cudaFlowOptimizerBase</label>
      </node>
      <node id="1">
        <label>tf::cudaFlowLinearOptimizer</label>
        <link refid="classtf_1_1cudaFlowLinearOptimizer"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
    </collaborationgraph>
    <location file="taskflow/cuda/cuda_optimizer.hpp" line="182" column="1" bodyfile="taskflow/cuda/cuda_optimizer.hpp" bodystart="182" bodyend="196"/>
    <listofallmembers>
      <member refid="classtf_1_1cudaFlowOptimizerBase_1ae20d9b88a98439f8d8ee5f6280b15744" prot="protected" virt="non-virtual"><scope>tf::cudaFlowLinearOptimizer</scope><name>_levelize</name></member>
      <member refid="classtf_1_1cudaFlowLinearOptimizer_1a272177ccabb376ad862f4afd0c87d2b2" prot="private" virt="non-virtual"><scope>tf::cudaFlowLinearOptimizer</scope><name>_optimize</name></member>
      <member refid="classtf_1_1cudaFlowOptimizerBase_1a25bb1274b6ab2279e261690a5fe46007" prot="protected" virt="non-virtual"><scope>tf::cudaFlowLinearOptimizer</scope><name>_toposort</name></member>
      <member refid="classtf_1_1cudaFlowLinearOptimizer_1a672b45d300c57d726c203c62f950efbd" prot="private" virt="non-virtual"><scope>tf::cudaFlowLinearOptimizer</scope><name>cudaFlowCapturer</name></member>
      <member refid="classtf_1_1cudaFlowLinearOptimizer_1a58e1021e702e553834c6696637b736f1" prot="public" virt="non-virtual"><scope>tf::cudaFlowLinearOptimizer</scope><name>cudaFlowLinearOptimizer</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
