aboutsummaryrefslogtreecommitdiff
path: root/docs/spec
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2022-10-17 21:54:16 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2022-10-17 21:54:16 -0400
commit0a4f6d3d0de2b28cff34c8c2bea5e520e69c521b (patch)
tree53a27eaa89fa31819a83920a12e181f635bac8c8 /docs/spec
parent5bb8566a1916a7fcccaea3e57181966d7ec9f1bb (diff)
Remove •bit._mulu, as it's the same as _mul
Diffstat (limited to 'docs/spec')
-rw-r--r--docs/spec/system.html8
1 files changed, 1 insertions, 7 deletions
diff --git a/docs/spec/system.html b/docs/spec/system.html
index 22851df2..d889019d 100644
--- a/docs/spec/system.html
+++ b/docs/spec/system.html
@@ -692,12 +692,6 @@
<td>integer</td>
<td><code><span class='Function'>×</span></code></td>
</tr>
-<tr>
-<td><code><span class='Modifier'>_mulu</span></code></td>
-<td>2</td>
-<td>unsigned</td>
-<td><code><span class='Function'>×</span></code></td>
-</tr>
</tbody>
</table>
<p>An operation is exposed as a 1-modifier that takes up to four numbers for its operand.</p>
@@ -710,7 +704,7 @@
<p>The operand is extended to length 3 for monadic operations, and 4 for dyadic operations, by repeating the last element (like <code><span class='Function'>»</span><span class='Modifier2'>⟜</span><span class='Paren'>(</span><span class='Number'>4</span><span class='Function'>⥊⊢</span><span class='Modifier'>´</span><span class='Paren'>)</span></code>). It must be a number, or array of numbers with rank at most 1.</p>
<p>An example call is <code><span class='Value'>a</span> <span class='Number'>16</span><span class='Ligature'>‿</span><span class='Number'>1</span><span class='Value'>•bit.</span><span class='Modifier'>_add</span> <span class='Value'>b</span></code>, to perform 16-bit additions on two boolean arrays with a boolean result.</p>
<p>To apply a bitwise operation, each argument is represented as a stream of bits based on the width given for it, then split into units whose width is the operation width. The operation is applied to these units. The result is again treated as a stream of bits and split according to the result width, with each unit forming a result element.</p>
-<p>The operation width, along with the &quot;Type&quot; column above, determines what operation is performed. For bit operations it has no effect, except to constrain the argument sizes according to the shape rules below. Integer (meaning signed) and unsigned operations support widths of 8 and above, and should support higher values such as 128 if available.</p>
+<p>The operation width, along with the &quot;Type&quot; column above, determines what operation is performed. For bit operations it has no effect, except to constrain the argument sizes according to the shape rules below. Integer operations support widths of 8 and above, and should support higher values such as 128 if available. For all of them, there is no difference between wrapping signed and unsigned operations given that the argument and result widths are the same.</p>
<p>Argument and result widths correspond to little-endian binary representations according to the following table (operation widths don't—see the &quot;type&quot; field in the table above). Here &quot;boolean&quot; indicates value 0 or 1, &quot;signed integer&quot; indicates two's complement representation, and &quot;character&quot; is a code point in an unsigned representation. Either type may be used for an argument, but the result will always use a primary type.</p>
<table>
<thead>