<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.adamcolton.net/index.php?action=history&amp;feed=atom&amp;title=FSM_to_Func</id>
	<title>FSM to Func - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.adamcolton.net/index.php?action=history&amp;feed=atom&amp;title=FSM_to_Func"/>
	<link rel="alternate" type="text/html" href="https://wiki.adamcolton.net/index.php?title=FSM_to_Func&amp;action=history"/>
	<updated>2026-10-28T23:57:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.adamcolton.net/index.php?title=FSM_to_Func&amp;diff=4866&amp;oldid=prev</id>
		<title>Adamcolton at 00:42, 9 October 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.adamcolton.net/index.php?title=FSM_to_Func&amp;diff=4866&amp;oldid=prev"/>
		<updated>2015-10-09T00:42:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:42, 9 October 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;Line 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I know this can work semi-efficiently from any list. Start with what ever number appears most. Look at bit affinity and slice affinity. Choose the operation that will change the most values to our target value.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I know this can work semi-efficiently from any list. Start with what ever number appears most. Look at bit affinity and slice affinity. Choose the operation that will change the most values to our target value.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I need to watch the cost. I is already 2 ops, each layer is going to be another 3 to 5 ops. I&#039;m not sure how many ops a map lookup is, but a table will beat this quickly if we&#039;re not careful.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There is room for a lot of improvement though. The states don&amp;#039;t need to be contiguous. And there can be multiple accept and reject values, particularly if they can be isolated to a few ranges.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There is room for a lot of improvement though. The states don&amp;#039;t need to be contiguous. And there can be multiple accept and reject values, particularly if they can be isolated to a few ranges.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adamcolton</name></author>
	</entry>
	<entry>
		<id>https://wiki.adamcolton.net/index.php?title=FSM_to_Func&amp;diff=4865&amp;oldid=prev</id>
		<title>Adamcolton: Created page with &quot;How to convert a finite state machine to an efficient func  The finite state machine can be written as a table, and that table can be flattened to a list. We apply successive ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.adamcolton.net/index.php?title=FSM_to_Func&amp;diff=4865&amp;oldid=prev"/>
		<updated>2015-10-09T00:40:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;How to convert a finite state machine to an efficient func  The finite state machine can be written as a table, and that table can be flattened to a list. We apply successive ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;How to convert a finite state machine to an efficient func&lt;br /&gt;
&lt;br /&gt;
The finite state machine can be written as a table, and that table can be flattened to a list. We apply successive additions of other lists until the entire list is a single value.&lt;br /&gt;
&lt;br /&gt;
Mutators&lt;br /&gt;
* (i&amp;amp;x)*y&lt;br /&gt;
* ( (i+x)&amp;gt;&amp;gt;y )*z&lt;br /&gt;
&lt;br /&gt;
  i = S&amp;lt;&amp;lt;8 + C&lt;br /&gt;
&lt;br /&gt;
I know this can work semi-efficiently from any list. Start with what ever number appears most. Look at bit affinity and slice affinity. Choose the operation that will change the most values to our target value.&lt;br /&gt;
&lt;br /&gt;
There is room for a lot of improvement though. The states don&amp;#039;t need to be contiguous. And there can be multiple accept and reject values, particularly if they can be isolated to a few ranges.&lt;/div&gt;</summary>
		<author><name>Adamcolton</name></author>
	</entry>
</feed>