(no commit message)
authorlkcl <lkcl@web>
Wed, 25 Sep 2019 05:54:16 +0000 (06:54 +0100)
committerIkiWiki <ikiwiki.info>
Wed, 25 Sep 2019 05:54:16 +0000 (06:54 +0100)
simple_v_extension/appendix.mdwn

index 24ae6ca71d826d609c7666ae56e0e11170a0dd84..aabe557be3eaaed68d1b5ebe50e2755c064e129c 100644 (file)
@@ -208,18 +208,22 @@ The second is utilised to indicate where the results of each comparison
 are to be stored, as a bitmask.  Additionally, the behaviour of the branch
 - when it occurs - may also be modified depending on whether the predicate
 "invert" and "zeroing" bits are set.
+These four combinations result in "consensual branches", cbranch.ifnone (NOR), cbranch.ifany (OR), cbranch.ifall (AND), cbranch.ifnotall (NAND).
 
 * If "invert" is zero, and "zeroing" is zero, the branch will occur if and only
-  all tests pass
+  all tests pass (AND, ifall)
 * If "invert" is set and "zeroing" is zero, the branch will occur if all
-  tests *fail* (opposite of inv=0,zero=0)
-* If "invert" is zero, and "zeroing" is set, the branch will occur if
-  even *one* test passes
+  tests *fail* (NAND, ifnotall)
+* If "invert" is set and "zeroing" is
+zero, the branch will occur if
+  even *one* test passes (OR, ifany)
 * If "invert" is set and "zeroing" is set, the branch will occur if
-  even *one* test fails.
+  even *one* test fails (NOR, ifnone)
 
 This inversion capability covers AND, OR, NAND and NOR branching based
-on multiple element comparisons.  Note that unlike normal computer
+on multiple element comparisons. Without the full set of four, it is necessary to have two-sequence branches: one conditional, one unconditional.
+
+Note that unlike normal computer
 programming early-termination of chains of AND or OR conditional tests,
 the chain does *not* terminate early except if fail-on-first is set,
 and even then ffirst ends on the first data-dependent zero.  When ffirst