Skip to content

Commit

Permalink
build based on 32961e9
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed May 7, 2024
1 parent 70f47b8 commit b3f9f4b
Show file tree
Hide file tree
Showing 16 changed files with 117 additions and 117 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.10.0","generation_timestamp":"2024-02-06T13:26:59","documenter_version":"1.2.1"}}
{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-07T12:00:43","documenter_version":"1.2.1"}}
2 changes: 1 addition & 1 deletion dev/explanation/comparison_to_iterators/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,4 @@
return acc
end

@assert foldl(*, xf, 1:10) == map_filter_cat_transducers(1:10, 1)</code></pre><p>It is not straightforward to implement an iterator like <code>Cat</code> that can output more than one items at a time. Such an iterator has to track the state of the inner (<code>y1</code> in above) and outer (<code>xs</code> in above) iterators and conditionally invoke the outer iterator once the inner iterator terminates. This generates a complicated code and the compiler would have hard time optimizing it.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../parallelism/">« Parallelism</a><a class="docs-footer-nextpage" href="../glossary/">Glossary »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Tuesday 6 February 2024 13:26">Tuesday 6 February 2024</span>. Using Julia version 1.10.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
@assert foldl(*, xf, 1:10) == map_filter_cat_transducers(1:10, 1)</code></pre><p>It is not straightforward to implement an iterator like <code>Cat</code> that can output more than one items at a time. Such an iterator has to track the state of the inner (<code>y1</code> in above) and outer (<code>xs</code> in above) iterators and conditionally invoke the outer iterator once the inner iterator terminates. This generates a complicated code and the compiler would have hard time optimizing it.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../parallelism/">« Parallelism</a><a class="docs-footer-nextpage" href="../glossary/">Glossary »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Tuesday 7 May 2024 12:00">Tuesday 7 May 2024</span>. Using Julia version 1.10.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/explanation/glossary/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
\mathrm{xf}_1(\mathrm{xf}_2(...(\mathrm{xf}_{n}(\mathrm{rf}_0))))\]</p><p>which is equivalent to the following forms in Transducers.jl</p><pre><code class="language-julia hljs">rf = xf₁&#39;(xf₂&#39;(...(xfₙ&#39;(rf₀))))
rf = (xf₁&#39; ∘ xf₂&#39; ∘ ... ∘ xfₙ&#39;)(rf₀)
rf = (xfₙ ∘ ... ∘ xf₂ ∘ xf₁)&#39;(rf₀)
rf = (xf₁ ⨟ xf₂ ⨟ ... ⨟ xfₙ)(rf₀)</code></pre><h3 id="Inner-transducer"><a class="docs-heading-anchor" href="#Inner-transducer">Inner transducer</a><a id="Inner-transducer-1"></a><a class="docs-heading-anchor-permalink" href="#Inner-transducer" title="Permalink"></a></h3><p>Given a composition <code>xf₁&#39; ∘ xf₂&#39;</code>, transducer <code>xf₂</code> is said to be the <em>inner transducer</em> of <code>xf₁&#39; ∘ xf₂&#39;</code>. Likewise, <code>xf₂&#39;(rf₀)</code> is an <em>inner reducing function</em> of <code>xf₁&#39;(xf₂&#39;(rf₀))</code>.</p><h2 id="Reducible-collection"><a class="docs-heading-anchor" href="#Reducible-collection">Reducible collection</a><a id="Reducible-collection-1"></a><a class="docs-heading-anchor-permalink" href="#Reducible-collection" title="Permalink"></a></h2><p><strong>Reducible collection</strong> (or just <strong>Reducible</strong>): Any object that can be passed to <a href="../../reference/manual/#Base.foldl"><code>foldl</code></a> and alike is reducible. A reducible collection knows how to apply reducing function to its elements. Iterators are automatically reducible as this is the canonical fallback implementation.</p><h2 id="Transducible-process"><a class="docs-heading-anchor" href="#Transducible-process">Transducible process</a><a id="Transducible-process-1"></a><a class="docs-heading-anchor-permalink" href="#Transducible-process" title="Permalink"></a></h2><p>A function that can foldxt reducible collections using transducers is a transducible process. Examples are <a href="../../reference/manual/#Base.foldl"><code>foldl</code></a> and <a href="../../reference/manual/#Transducers.foldxt"><code>foldxt</code></a>. Find more in <a href="../../reference/manual/#Transducible-processes">Transducible processes</a>.</p><h2 id="glossary-executor"><a class="docs-heading-anchor" href="#glossary-executor">Executor</a><a id="glossary-executor-1"></a><a class="docs-heading-anchor-permalink" href="#glossary-executor" title="Permalink"></a></h2><p>An executor such as <a href="../../reference/manual/#Transducers.SequentialEx"><code>SequentialEx</code></a>, <a href="../../reference/manual/#Transducers.ThreadedEx"><code>ThreadedEx</code></a> and <a href="../../reference/manual/#Transducers.DistributedEx"><code>DistributedEx</code></a> specifies the execution mechanism of a fold. These executors provide a unified mechanism for choosing underlying execution mechanism for Transducers.jl and its related packages such as <a href="https://github.com/JuliaFolds/Folds.jl">Folds.jl</a> and <a href="https://github.com/JuliaFolds/FLoops.jl">FLoops.jl</a>. Typically, the API functions take an executor as the last optional argument. In addition to the executors provided by Transducers.jl (see <a href="../../reference/manual/#man-executor">Executors</a> section in the manual), additional executors are provided from external packages such as <a href="https://github.com/JuliaFolds/FoldsThreads.jl">FoldsThreads.jl</a> (various thread-based executors) and <a href="https://github.com/JuliaFolds/FoldsCUDA.jl">FoldsCUDA.jl</a> (a CUDA-based executor).</p><p>Transducers.jl&#39;s executor is a concept similar to <a href="https://github.com/JuliaGPU/KernelAbstractions.jl">KernelAbstractions.jl</a>&#39; <em>device</em>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../comparison_to_iterators/">« Comparison to iterators</a><a class="docs-footer-nextpage" href="../state_machines/">State machines »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Tuesday 6 February 2024 13:26">Tuesday 6 February 2024</span>. Using Julia version 1.10.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
rf = (xf₁ ⨟ xf₂ ⨟ ... ⨟ xfₙ)(rf₀)</code></pre><h3 id="Inner-transducer"><a class="docs-heading-anchor" href="#Inner-transducer">Inner transducer</a><a id="Inner-transducer-1"></a><a class="docs-heading-anchor-permalink" href="#Inner-transducer" title="Permalink"></a></h3><p>Given a composition <code>xf₁&#39; ∘ xf₂&#39;</code>, transducer <code>xf₂</code> is said to be the <em>inner transducer</em> of <code>xf₁&#39; ∘ xf₂&#39;</code>. Likewise, <code>xf₂&#39;(rf₀)</code> is an <em>inner reducing function</em> of <code>xf₁&#39;(xf₂&#39;(rf₀))</code>.</p><h2 id="Reducible-collection"><a class="docs-heading-anchor" href="#Reducible-collection">Reducible collection</a><a id="Reducible-collection-1"></a><a class="docs-heading-anchor-permalink" href="#Reducible-collection" title="Permalink"></a></h2><p><strong>Reducible collection</strong> (or just <strong>Reducible</strong>): Any object that can be passed to <a href="../../reference/manual/#Base.foldl"><code>foldl</code></a> and alike is reducible. A reducible collection knows how to apply reducing function to its elements. Iterators are automatically reducible as this is the canonical fallback implementation.</p><h2 id="Transducible-process"><a class="docs-heading-anchor" href="#Transducible-process">Transducible process</a><a id="Transducible-process-1"></a><a class="docs-heading-anchor-permalink" href="#Transducible-process" title="Permalink"></a></h2><p>A function that can foldxt reducible collections using transducers is a transducible process. Examples are <a href="../../reference/manual/#Base.foldl"><code>foldl</code></a> and <a href="../../reference/manual/#Transducers.foldxt"><code>foldxt</code></a>. Find more in <a href="../../reference/manual/#Transducible-processes">Transducible processes</a>.</p><h2 id="glossary-executor"><a class="docs-heading-anchor" href="#glossary-executor">Executor</a><a id="glossary-executor-1"></a><a class="docs-heading-anchor-permalink" href="#glossary-executor" title="Permalink"></a></h2><p>An executor such as <a href="../../reference/manual/#Transducers.SequentialEx"><code>SequentialEx</code></a>, <a href="../../reference/manual/#Transducers.ThreadedEx"><code>ThreadedEx</code></a> and <a href="../../reference/manual/#Transducers.DistributedEx"><code>DistributedEx</code></a> specifies the execution mechanism of a fold. These executors provide a unified mechanism for choosing underlying execution mechanism for Transducers.jl and its related packages such as <a href="https://github.com/JuliaFolds/Folds.jl">Folds.jl</a> and <a href="https://github.com/JuliaFolds/FLoops.jl">FLoops.jl</a>. Typically, the API functions take an executor as the last optional argument. In addition to the executors provided by Transducers.jl (see <a href="../../reference/manual/#man-executor">Executors</a> section in the manual), additional executors are provided from external packages such as <a href="https://github.com/JuliaFolds/FoldsThreads.jl">FoldsThreads.jl</a> (various thread-based executors) and <a href="https://github.com/JuliaFolds/FoldsCUDA.jl">FoldsCUDA.jl</a> (a CUDA-based executor).</p><p>Transducers.jl&#39;s executor is a concept similar to <a href="https://github.com/JuliaGPU/KernelAbstractions.jl">KernelAbstractions.jl</a>&#39; <em>device</em>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../comparison_to_iterators/">« Comparison to iterators</a><a class="docs-footer-nextpage" href="../state_machines/">State machines »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Tuesday 7 May 2024 12:00">Tuesday 7 May 2024</span>. Using Julia version 1.10.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit b3f9f4b

Please sign in to comment.