diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-10-06 08:24:44 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-10-06 08:24:44 -0400 |
| commit | 0745f57691ea59f91155b2a014be80529b97701f (patch) | |
| tree | 4131092783b64057f14cc9b3a8893f4314a4b1d4 | |
| parent | b76ed91933e2e8d8c99fdf5a37c79471ed6adc7b (diff) | |
Don't say "scalar dyadics"
| -rw-r--r-- | docs/implementation/primitive/replicate.html | 2 | ||||
| -rw-r--r-- | implementation/primitive/replicate.md | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/docs/implementation/primitive/replicate.html b/docs/implementation/primitive/replicate.html index 9e07a754..64cf73a7 100644 --- a/docs/implementation/primitive/replicate.html +++ b/docs/implementation/primitive/replicate.html @@ -7,7 +7,7 @@ <h1 id="implementation-of-indices-and-replicate"><a class="header" href="#implementation-of-indices-and-replicate">Implementation of Indices and Replicate</a></h1> <p>The replicate family of functions contains not just primitives but powerful tools for implementing other functionality. The most important is converting <a href="#booleans-to-indices">bits to indices</a>: AVX-512 extensions implement this natively for various index sizes, and even with no SIMD support at all there are surprisingly fast table-based algorithms for it.</p> <p><a href="#replicate">General replication</a> is more complex. Branching will slow many useful cases down considerably when using the obvious solution. However, branch-free techniques introduce overhead for larger replication amounts. Hybridizing these seems to be the only way, but it's finicky.</p> -<p>Replicate by a <a href="#constant-replicate">constant amount</a> (so <code><span class='Value'>𝕨</span></code> is a single number) is not too common in itself, but it's notable because it can be the fastest way to implement outer products and scalar dyadics with prefix agreement.</p> +<p>Replicate by a <a href="#constant-replicate">constant amount</a> (so <code><span class='Value'>𝕨</span></code> is a single number) is not too common in itself, but it's notable because it can be the fastest way to implement outer products and arithmetic with prefix agreement.</p> <h2 id="indices"><a class="header" href="#indices">Indices</a></h2> <p>Branchless algorithms are fastest, but with unbounded values in <code><span class='Value'>𝕨</span></code> a fully branchless algorithm is impossible because you can't write an arbitrary amount of memory without branching. So the best algorithms depend on bounding <code><span class='Value'>𝕨</span></code>. Fortunately the most useful case is that <code><span class='Value'>𝕨</span></code> is boolean.</p> <h3 id="booleans-to-indices"><a class="header" href="#booleans-to-indices">Booleans to indices</a></h3> diff --git a/implementation/primitive/replicate.md b/implementation/primitive/replicate.md index 58203d8d..d6141096 100644 --- a/implementation/primitive/replicate.md +++ b/implementation/primitive/replicate.md @@ -6,7 +6,7 @@ The replicate family of functions contains not just primitives but powerful tool [General replication](#replicate) is more complex. Branching will slow many useful cases down considerably when using the obvious solution. However, branch-free techniques introduce overhead for larger replication amounts. Hybridizing these seems to be the only way, but it's finicky. -Replicate by a [constant amount](#constant-replicate) (so `𝕨` is a single number) is not too common in itself, but it's notable because it can be the fastest way to implement outer products and scalar dyadics with prefix agreement. +Replicate by a [constant amount](#constant-replicate) (so `𝕨` is a single number) is not too common in itself, but it's notable because it can be the fastest way to implement outer products and arithmetic with prefix agreement. ## Indices |
