aboutsummaryrefslogtreecommitdiff
path: root/docs/spec
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-11 15:19:25 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-11 15:31:24 -0500
commitf4d45e6721784c23419045b0ec496d8460efc871 (patch)
tree3e1eeddabbd352c6f4fb2be88db5badfd6a081e2 /docs/spec
parentae8d0791777e9ff3e43569089ddd446b666ac626 (diff)
Dyadic scan inverse
Diffstat (limited to 'docs/spec')
-rw-r--r--docs/spec/inferred.html19
1 files changed, 14 insertions, 5 deletions
diff --git a/docs/spec/inferred.html b/docs/spec/inferred.html
index 79d6e00d..dd7de0f7 100644
--- a/docs/spec/inferred.html
+++ b/docs/spec/inferred.html
@@ -389,11 +389,6 @@
<td></td>
</tr>
<tr>
-<td><code><span class='Modifier'>`</span></code></td>
-<td><code><span class='Brace'>{</span><span class='Function'>!</span><span class='Number'>0</span><span class='Function'>&lt;=</span><span class='Value'>๐•ฉ</span><span class='Separator'>โ‹„</span><span class='Paren'>(</span><span class='Function'>โŠโˆพ</span><span class='Number'>ยฏ1</span><span class='Modifier2'>โŠธ</span><span class='Function'>โ†“๐”ฝ</span><span class='Modifier'>โผยจ</span><span class='Number'>1</span><span class='Modifier2'>โŠธ</span><span class='Function'>โ†“</span><span class='Paren'>)</span><span class='Modifier2'>โŸ</span><span class='Paren'>(</span><span class='Number'>1</span><span class='Function'>&lt;โ‰ </span><span class='Paren'>)</span><span class='Value'>๐•ฉ</span><span class='Brace'>}</span></code></td>
-<td></td>
-</tr>
-<tr>
<td><code><span class='Function'>F</span><span class='Modifier2'>โˆ˜</span><span class='Function'>G</span></code></td>
<td><code><span class='Brace'>{</span><span class='Value'>๐•จ</span><span class='Function'>G</span><span class='Modifier'>โผ</span><span class='Function'>F</span><span class='Modifier'>โผ</span><span class='Value'>๐•ฉ</span><span class='Brace'>}</span></code></td>
<td></td>
@@ -460,6 +455,20 @@
</tr>
</tbody>
</table>
+<table>
+<thead>
+<tr>
+<th>Mod</th>
+<th>Inverse</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code><span class='Modifier'>`</span></code></td>
+<td><code><span class='Brace'>{</span><span class='Function'>!</span><span class='Number'>0</span><span class='Function'>&lt;=</span><span class='Value'>๐•ฉ</span> <span class='Separator'>โ‹„</span> <span class='Value'>๐•จ</span> <span class='Paren'>(</span><span class='Function'>ยป๐”ฝ</span><span class='Modifier'>โผยจ</span><span class='Function'>โŠข</span><span class='Paren'>)</span><span class='Brace'>{</span><span class='Paren'>(</span><span class='Function'>โŠโˆพโŠ๐”ฝ</span><span class='Number'>1</span><span class='Modifier2'>โŠธ</span><span class='Function'>โ†“</span><span class='Paren'>)</span><span class='Modifier2'>โŸ</span><span class='Paren'>(</span><span class='Number'>1</span><span class='Function'>&lt;โ‰ </span><span class='Paren'>)</span><span class='Modifier2'>โŠ˜</span><span class='Function'>๐”ฝ</span><span class='Brace'>}</span> <span class='Value'>๐•ฉ</span><span class='Brace'>}</span></code></td>
+</tr>
+</tbody>
+</table>
<h2 id="under">Under</h2>
<p>The Under 2-modifier <code><span class='Modifier2'>โŒพ</span></code> conceptually applies its left operand under the action of its right operand. Setting <code><span class='Value'>z</span><span class='Gets'>โ†</span><span class='Value'>๐•จ</span><span class='Function'>๐”ฝ</span><span class='Modifier2'>โŒพ</span><span class='Function'>๐”พ</span><span class='Value'>๐•ฉ</span></code>, it satisfies <code><span class='Paren'>(</span><span class='Value'>๐•จ</span><span class='Function'>๐”ฝ</span><span class='Modifier2'>โ—‹</span><span class='Function'>๐”พ</span><span class='Value'>๐•ฉ</span><span class='Paren'>)</span> <span class='Function'>โ‰ก</span> <span class='Function'>๐”พ</span><span class='Value'>z</span></code>. We might say that <code><span class='Function'>๐”พ</span></code> transforms values to a new domain, and <code><span class='Modifier2'>โŒพ</span><span class='Function'>๐”พ</span></code> lifts actions <code><span class='Function'>๐”ฝ</span></code> performed in this domain to the original domain of values. For example, addition in the logarithmic domain corresponds to multiplication in the linear domain: <code><span class='Function'>+</span><span class='Modifier2'>โŒพ</span><span class='Paren'>(</span><span class='Function'>โ‹†</span><span class='Modifier'>โผ</span><span class='Paren'>)</span></code> is <code><span class='Function'>ร—</span></code> (but less precise if computed in floating point).</p>
<p>Let <code><span class='Value'>v</span><span class='Gets'>โ†</span><span class='Value'>๐•จ</span><span class='Function'>๐”ฝ</span><span class='Modifier2'>โ—‹</span><span class='Function'>๐”พ</span><span class='Value'>๐•ฉ</span></code>, so that <code><span class='Value'>v</span><span class='Function'>โ‰ก๐”พ</span><span class='Value'>z</span></code>. <code><span class='Value'>v</span></code> is of course well-defined, so the inference step is to find <code><span class='Value'>z</span></code> based on <code><span class='Value'>v</span></code> and possibly the original inputs. We distinguish three cases for Under:</p>