Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b23c49f

Browse files
updated docs
1 parent a52074e commit b23c49f

15 files changed

+26
-26
lines changed

docs/chapter1.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
<h1><a class="anchor" id="WhatIsATask"></a>
100100
What is a Task?</h1>
101101
<p>A task in Cpp-Taskflow is a callable object for which the operation <a href="https://en.cppreference.com/w/cpp/utility/functional/invoke">std::invoke</a> is applicable. It can be either a functor, a lambda expression, a bind expression, or a class objects with <code>operator()</code> overloaded.</p>
102-
<p>Cpp-Taskflow provides three methods, <a class="el" href="classtf_1_1FlowBuilder.html#ac22f244fb2ec58809192faafa266c58c" title="creates an empty task ">tf::Taskflow::placeholder</a>, <a class="el" href="classtf_1_1FlowBuilder.html#a7285613836c840e22b8511d447734c87" title="creates a task from a given callable object without access to the result ">tf::Taskflow::silent_emplace</a>, and <a class="el" href="classtf_1_1FlowBuilder.html#a468ddceae9c77728fbaef0f70d9fd11c" title="creates a task from a given callable object ">tf::Taskflow::emplace</a> to create a task.</p>
102+
<p>Cpp-Taskflow provides three methods, <a class="el" href="classtf_1_1FlowBuilder.html#acab0b4ac82260f47fdb36a3244ee3aaf" title="creates an empty task ">tf::Taskflow::placeholder</a>, <a class="el" href="classtf_1_1FlowBuilder.html#a7285613836c840e22b8511d447734c87" title="creates a task from a given callable object without access to the result ">tf::Taskflow::silent_emplace</a>, and <a class="el" href="classtf_1_1FlowBuilder.html#a468ddceae9c77728fbaef0f70d9fd11c" title="creates a task from a given callable object ">tf::Taskflow::emplace</a> to create a task.</p>
103103
<div class="fragment"><div class="line">1: <span class="keyword">auto</span> A = taskflow.placeholder();</div><div class="line">2: <span class="keyword">auto</span> B = taskflow.silent_emplace([] () {});</div><div class="line">3: <span class="keyword">auto</span> [C, FuC] = taskflow.emplace([] () { <span class="keywordflow">return</span> 1; });</div></div><!-- fragment --><p>Debrief: </p><ul>
104104
<li>Line 1 creates an empty task </li>
105105
<li>Line 2 creates a task from a given callable object and returns a task handle </li>
@@ -141,7 +141,7 @@ <h1><a class="anchor" id="C1Example1"></a>
141141
<h1><a class="anchor" id="C1Example2"></a>
142142
Example 2: Modify Task Attributes</h1>
143143
<p>This example demonstrates how to modify a task's attributes using methods defined in the task handler.</p>
144-
<div class="fragment"><div class="line"> 1: #include &lt;taskflow/taskflow.hpp&gt;</div><div class="line"> 2:</div><div class="line"> 3: <span class="keywordtype">int</span> main() {</div><div class="line"> 4:</div><div class="line"> 5: <a class="code" href="classtf_1_1BasicTaskflow.html">tf::Taskflow</a> taskflow;</div><div class="line"> 6:</div><div class="line"> 7: <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;tf::Task&gt;</a> tasks = { </div><div class="line"> 8: taskflow.<a class="code" href="classtf_1_1FlowBuilder.html#ac22f244fb2ec58809192faafa266c58c">placeholder</a>(), <span class="comment">// create a task with no work</span></div><div class="line"> 9: taskflow.<a class="code" href="classtf_1_1FlowBuilder.html#ac22f244fb2ec58809192faafa266c58c">placeholder</a>() <span class="comment">// create a task with no work</span></div><div class="line">10: };</div><div class="line">11:</div><div class="line">12: tasks[0].name(<span class="stringliteral">&quot;This is Task 0&quot;</span>);</div><div class="line">13: tasks[1].name(<span class="stringliteral">&quot;This is Task 1&quot;</span>);</div><div class="line">14: tasks[0].precede(tasks[1]);</div><div class="line">15:</div><div class="line">16: <span class="keywordflow">for</span>(<span class="keyword">auto</span> task : tasks) { <span class="comment">// print out each task&#39;s attributes</span></div><div class="line">17: <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; task.name() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span></div><div class="line">18: &lt;&lt; <span class="stringliteral">&quot;num_dependents=&quot;</span> &lt;&lt; task.num_dependents() &lt;&lt; <span class="stringliteral">&quot;, &quot;</span></div><div class="line">19: &lt;&lt; <span class="stringliteral">&quot;num_successors=&quot;</span> &lt;&lt; task.num_successors() &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line">20: }</div><div class="line">21:</div><div class="line">22: taskflow.<a class="code" href="classtf_1_1BasicTaskflow.html#adac448e1cc44307856b3116d7ed5490f">dump</a>(<a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>); <span class="comment">// dump the taskflow graph</span></div><div class="line">23:</div><div class="line">24: tasks[0].work([](){ <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;got a new work!\n&quot;</span>; });</div><div class="line">25: tasks[1].work([](){ <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;got a new work!\n&quot;</span>; });</div><div class="line">26:</div><div class="line">27: taskflow.<a class="code" href="classtf_1_1BasicTaskflow.html#a37ef86998f23ee7315be032c40fe815e">wait_for_all</a>();</div><div class="line">28:</div><div class="line">29: <span class="keywordflow">return</span> 0;</div><div class="line">30: }</div></div><!-- fragment --><p>The output of this program looks like the following:</p>
144+
<div class="fragment"><div class="line"> 1: #include &lt;taskflow/taskflow.hpp&gt;</div><div class="line"> 2:</div><div class="line"> 3: <span class="keywordtype">int</span> main() {</div><div class="line"> 4:</div><div class="line"> 5: <a class="code" href="classtf_1_1BasicTaskflow.html">tf::Taskflow</a> taskflow;</div><div class="line"> 6:</div><div class="line"> 7: <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;tf::Task&gt;</a> tasks = { </div><div class="line"> 8: taskflow.<a class="code" href="classtf_1_1FlowBuilder.html#acab0b4ac82260f47fdb36a3244ee3aaf">placeholder</a>(), <span class="comment">// create a task with no work</span></div><div class="line"> 9: taskflow.<a class="code" href="classtf_1_1FlowBuilder.html#acab0b4ac82260f47fdb36a3244ee3aaf">placeholder</a>() <span class="comment">// create a task with no work</span></div><div class="line">10: };</div><div class="line">11:</div><div class="line">12: tasks[0].name(<span class="stringliteral">&quot;This is Task 0&quot;</span>);</div><div class="line">13: tasks[1].name(<span class="stringliteral">&quot;This is Task 1&quot;</span>);</div><div class="line">14: tasks[0].precede(tasks[1]);</div><div class="line">15:</div><div class="line">16: <span class="keywordflow">for</span>(<span class="keyword">auto</span> task : tasks) { <span class="comment">// print out each task&#39;s attributes</span></div><div class="line">17: <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; task.name() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span></div><div class="line">18: &lt;&lt; <span class="stringliteral">&quot;num_dependents=&quot;</span> &lt;&lt; task.num_dependents() &lt;&lt; <span class="stringliteral">&quot;, &quot;</span></div><div class="line">19: &lt;&lt; <span class="stringliteral">&quot;num_successors=&quot;</span> &lt;&lt; task.num_successors() &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line">20: }</div><div class="line">21:</div><div class="line">22: taskflow.<a class="code" href="classtf_1_1BasicTaskflow.html#adac448e1cc44307856b3116d7ed5490f">dump</a>(<a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>); <span class="comment">// dump the taskflow graph</span></div><div class="line">23:</div><div class="line">24: tasks[0].work([](){ <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;got a new work!\n&quot;</span>; });</div><div class="line">25: tasks[1].work([](){ <a class="codeRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;got a new work!\n&quot;</span>; });</div><div class="line">26:</div><div class="line">27: taskflow.<a class="code" href="classtf_1_1BasicTaskflow.html#a37ef86998f23ee7315be032c40fe815e">wait_for_all</a>();</div><div class="line">28:</div><div class="line">29: <span class="keywordflow">return</span> 0;</div><div class="line">30: }</div></div><!-- fragment --><p>The output of this program looks like the following:</p>
145145
<div class="fragment"><div class="line">This is Task 0: num_dependents=0, num_successors=1</div><div class="line">This is Task 1: num_dependents=1, num_successors=0</div><div class="line">digraph Taskflow {</div><div class="line">&quot;This is Task 1&quot;;</div><div class="line">&quot;This is Task 0&quot;;</div><div class="line">&quot;This is Task 0&quot; -&gt; &quot;This is Task 1&quot;;</div><div class="line">}</div><div class="line">got a new work!</div><div class="line">got a new work!</div></div><!-- fragment --><p>Debrief: </p><ul>
146146
<li>Line 5 creates a taskflow object </li>
147147
<li>Line 7-10 creates two tasks with empty target and stores the corresponding task handles in a vector </li>

docs/classtf_1_1BasicTaskflow-members.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122
<tr><td class="entry"><a class="el" href="classtf_1_1BasicTaskflow.html#a9cef9ee3d27ffc78bfa953c8ed25b559">num_workers</a>() const</td><td class="entry"><a class="el" href="classtf_1_1BasicTaskflow.html">tf::BasicTaskflow&lt; E &gt;</a></td><td class="entry"></td></tr>
123123
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#a84d411f16939bc158c5a90256e5d210e">parallel_for</a>(I beg, I end, C &amp;&amp;callable, size_t chunk=0)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>
124124
<tr><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#abe18f8824cba16cde03e0dea8fae14ac">parallel_for</a>(I beg, I end, I step, C &amp;&amp;callable, size_t chunk=0)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>
125-
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#ac22f244fb2ec58809192faafa266c58c">placeholder</a>()</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
125+
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#acab0b4ac82260f47fdb36a3244ee3aaf">placeholder</a>()</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
126126
<tr><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#af7c4a5d732d49bd63d554a92cd240f3f">precede</a>(Task A, Task B)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
127127
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#a06b06b57f8ec8bb060951fc71dd375fb">reduce</a>(I beg, I end, T &amp;result, B &amp;&amp;bop)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>
128128
<tr><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#a076fa5b55e0ef6eba3c962e85727f218">reduce_max</a>(I beg, I end, T &amp;result)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>

docs/classtf_1_1BasicTaskflow.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,9 +246,9 @@
246246
<tr class="memitem:a9b81ad3b206a63adff8b8bc423f8c425 inherit pub_methods_classtf_1_1FlowBuilder"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/twhuang/PhD/Code/cpp-taskflow/docs/cppreference-doxygen-web.tag.xml:http://en.cppreference.com/w/" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="classtf_1_1Task.html">Task</a>, <a class="el" href="classtf_1_1Task.html">Task</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtf_1_1FlowBuilder.html#a9b81ad3b206a63adff8b8bc423f8c425">transform_reduce</a> (I beg, I end, T &amp;result, B &amp;&amp;bop1, P &amp;&amp;bop2, U &amp;&amp;uop)</td></tr>
247247
<tr class="memdesc:a9b81ad3b206a63adff8b8bc423f8c425 inherit pub_methods_classtf_1_1FlowBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructs a task dependency graph of parallel transformation and reduction <a href="classtf_1_1FlowBuilder.html#a9b81ad3b206a63adff8b8bc423f8c425">More...</a><br /></td></tr>
248248
<tr class="separator:a9b81ad3b206a63adff8b8bc423f8c425 inherit pub_methods_classtf_1_1FlowBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
249-
<tr class="memitem:ac22f244fb2ec58809192faafa266c58c inherit pub_methods_classtf_1_1FlowBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtf_1_1Task.html">Task</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtf_1_1FlowBuilder.html#ac22f244fb2ec58809192faafa266c58c">placeholder</a> ()</td></tr>
250-
<tr class="memdesc:ac22f244fb2ec58809192faafa266c58c inherit pub_methods_classtf_1_1FlowBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates an empty task <a href="classtf_1_1FlowBuilder.html#ac22f244fb2ec58809192faafa266c58c">More...</a><br /></td></tr>
251-
<tr class="separator:ac22f244fb2ec58809192faafa266c58c inherit pub_methods_classtf_1_1FlowBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
249+
<tr class="memitem:acab0b4ac82260f47fdb36a3244ee3aaf inherit pub_methods_classtf_1_1FlowBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtf_1_1Task.html">Task</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtf_1_1FlowBuilder.html#acab0b4ac82260f47fdb36a3244ee3aaf">placeholder</a> ()</td></tr>
250+
<tr class="memdesc:acab0b4ac82260f47fdb36a3244ee3aaf inherit pub_methods_classtf_1_1FlowBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates an empty task <a href="classtf_1_1FlowBuilder.html#acab0b4ac82260f47fdb36a3244ee3aaf">More...</a><br /></td></tr>
251+
<tr class="separator:acab0b4ac82260f47fdb36a3244ee3aaf inherit pub_methods_classtf_1_1FlowBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
252252
<tr class="memitem:af7c4a5d732d49bd63d554a92cd240f3f inherit pub_methods_classtf_1_1FlowBuilder"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtf_1_1FlowBuilder.html#af7c4a5d732d49bd63d554a92cd240f3f">precede</a> (<a class="el" href="classtf_1_1Task.html">Task</a> A, <a class="el" href="classtf_1_1Task.html">Task</a> B)</td></tr>
253253
<tr class="memdesc:af7c4a5d732d49bd63d554a92cd240f3f inherit pub_methods_classtf_1_1FlowBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a dependency link from task A to task B <a href="classtf_1_1FlowBuilder.html#af7c4a5d732d49bd63d554a92cd240f3f">More...</a><br /></td></tr>
254254
<tr class="separator:af7c4a5d732d49bd63d554a92cd240f3f inherit pub_methods_classtf_1_1FlowBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>

docs/classtf_1_1FlowBuilder-members.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#a4ec89b554d15ad5fb96f4fdb10dbbb16">linearize</a>(std::initializer_list&lt; Task &gt; tasks)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
110110
<tr><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#a84d411f16939bc158c5a90256e5d210e">parallel_for</a>(I beg, I end, C &amp;&amp;callable, size_t chunk=0)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>
111111
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#abe18f8824cba16cde03e0dea8fae14ac">parallel_for</a>(I beg, I end, I step, C &amp;&amp;callable, size_t chunk=0)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>
112-
<tr><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#ac22f244fb2ec58809192faafa266c58c">placeholder</a>()</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
112+
<tr><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#acab0b4ac82260f47fdb36a3244ee3aaf">placeholder</a>()</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
113113
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#af7c4a5d732d49bd63d554a92cd240f3f">precede</a>(Task A, Task B)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
114114
<tr><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#a06b06b57f8ec8bb060951fc71dd375fb">reduce</a>(I beg, I end, T &amp;result, B &amp;&amp;bop)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>
115115
<tr class="even"><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html#a076fa5b55e0ef6eba3c962e85727f218">reduce_max</a>(I beg, I end, T &amp;result)</td><td class="entry"><a class="el" href="classtf_1_1FlowBuilder.html">tf::FlowBuilder</a></td><td class="entry"></td></tr>

0 commit comments

Comments
 (0)