<div dir="auto">How sparse is the 35x35 matrix? For comprehensibility would it be the best way to do it?</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 13, 2023 at 9:59 PM Douglas McIlroy <<a href="mailto:douglas.mcilroy@dartmouth.edu">douglas.mcilroy@dartmouth.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">There may be a simple generic way to correct pic's habit of accepting<br>
any set of object modifiers on any object, but obeying only a<br>
compatible subset.<br>
<br>
Pic already collects a bit vector of modifier types attached to the<br>
current object. If that were extended with a few more bits that<br>
designate the object types, the size, B, of the bit vector would be<br>
about 35--an easy fit in one 64-bit word. Then a BxB bit matrix could<br>
record both modifier/modifier incompatibilities and object/modifier<br>
incompatibilities. The collected bit vector needs to be tested against<br>
the matrix once per object definition.<br>
<br>
It seems to be harder to catch duplication of modifiers, requiring<br>
extra code at all points where bits are set. Nevertheless, this kind<br>
of error also merits detection.<br>
<br>
Some questions<br>
<br>
Does anybody think the issue is not worth addressing?<br>
<br>
Is there a better scheme than that suggested above?<br>
<br>
Is the scheme adequate? It would not, for example, catch a three-way<br>
incompatibility that does not entail any pairwise incompatibility,<br>
should such an incompatibility exist.<br>
<br>
Any other thoughts?<br>
<br>
Doug<br>
</blockquote></div></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>=====<br><a href="http://nygeek.net" target="_blank">nygeek.net</a></div><div><a href="https://www.mindthegapdialogs.com/home" target="_blank">mindthegapdialogs.com/home</a><br></div></div></div>