<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Optimizing away II</title>
	<atom:link href="http://danbystrom.se/2008/12/22/optimizing-away-ii/feed/" rel="self" type="application/rss+xml" />
	<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/</link>
	<description>Blog without an interesting name</description>
	<lastBuildDate>Fri, 06 Jan 2012 17:43:21 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: John</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-120</link>
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Sun, 31 May 2009 17:56:00 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-120</guid>
		<description><![CDATA[P.S. I&#039;ll post the implementation of this code within a week or two.]]></description>
		<content:encoded><![CDATA[<p>P.S. I&#8217;ll post the implementation of this code within a week or two.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-119</link>
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Sun, 31 May 2009 17:54:59 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-119</guid>
		<description><![CDATA[How about this MSIL code?

ldloc.s    error
ldloc.s    p1
ldfld      uint8 GenArt.Core.Classes.Pixel::R
ldloc.s    p2
ldfld      uint8 GenArt.Core.Classes.Pixel::R
sub
dup
mul
ldloc.s    p1
ldfld      uint8 GenArt.Core.Classes.Pixel::G
ldloc.s    p2
ldfld      uint8 GenArt.Core.Classes.Pixel::G
sub
dup
mul
ldloc.s    p1
ldfld      uint8 GenArt.Core.Classes.Pixel::B
ldloc.s    p2
ldfld      uint8 GenArt.Core.Classes.Pixel::B
sub
dup
mul
ldloc.s    p1
ldfld      uint8 GenArt.Core.Classes.Pixel::A
ldloc.s    p2
ldfld      uint8 GenArt.Core.Classes.Pixel::A
sub
dup
mul
add
add
add
add
ldloc.s    p1
sizeof     GenArt.Core.Classes.Pixel
add
stloc.s    p1
ldloc.s    p2
sizeof     GenArt.Core.Classes.Pixel
add
stloc.s    p2
stloc.s    error]]></description>
		<content:encoded><![CDATA[<p>How about this MSIL code?</p>
<p>ldloc.s    error<br />
ldloc.s    p1<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::R<br />
ldloc.s    p2<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::R<br />
sub<br />
dup<br />
mul<br />
ldloc.s    p1<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::G<br />
ldloc.s    p2<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::G<br />
sub<br />
dup<br />
mul<br />
ldloc.s    p1<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::B<br />
ldloc.s    p2<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::B<br />
sub<br />
dup<br />
mul<br />
ldloc.s    p1<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::A<br />
ldloc.s    p2<br />
ldfld      uint8 GenArt.Core.Classes.Pixel::A<br />
sub<br />
dup<br />
mul<br />
add<br />
add<br />
add<br />
add<br />
ldloc.s    p1<br />
sizeof     GenArt.Core.Classes.Pixel<br />
add<br />
stloc.s    p1<br />
ldloc.s    p2<br />
sizeof     GenArt.Core.Classes.Pixel<br />
add<br />
stloc.s    p2<br />
stloc.s    error</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yannickm</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-94</link>
		<dc:creator><![CDATA[Yannickm]]></dc:creator>
		<pubDate>Tue, 24 Feb 2009 15:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-94</guid>
		<description><![CDATA[I am unsure how fast imul is nowadays, but wouldn&#039;t using a lookup table be faster?

int sqrtLookup[256];

for( int i=0; i 0 ; i--, p1++, p2++ )  
{  
  int r = p1-&gt;R - p2-&gt;R;  
  int g = p1-&gt;G - p2-&gt;G;  
  int b = p1-&gt;B - p2-&gt;B;  
  error += sqrtLookup[r] + sqrtLookup[g] + sqrtLookup[b];
}]]></description>
		<content:encoded><![CDATA[<p>I am unsure how fast imul is nowadays, but wouldn&#8217;t using a lookup table be faster?</p>
<p>int sqrtLookup[256];</p>
<p>for( int i=0; i 0 ; i&#8211;, p1++, p2++ )<br />
{<br />
  int r = p1-&gt;R &#8211; p2-&gt;R;<br />
  int g = p1-&gt;G &#8211; p2-&gt;G;<br />
  int b = p1-&gt;B &#8211; p2-&gt;B;<br />
  error += sqrtLookup[r] + sqrtLookup[g] + sqrtLookup[b];<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Low &#187; EvoLisa Video</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-82</link>
		<dc:creator><![CDATA[Brian Low &#187; EvoLisa Video]]></dc:creator>
		<pubDate>Tue, 27 Jan 2009 03:35:48 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-82</guid>
		<description><![CDATA[[...] video was made using Roger&#8217;s source code modified with Dan Bystrom&#8217;s FitnessCalculator written in assembler. The program was changed to output a frame whenever the image improves by 5%. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] video was made using Roger&#8217;s source code modified with Dan Bystrom&#8217;s FitnessCalculator written in assembler. The program was changed to output a frame whenever the image improves by 5%. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: danbystrom</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-75</link>
		<dc:creator><![CDATA[danbystrom]]></dc:creator>
		<pubDate>Thu, 01 Jan 2009 19:44:54 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-75</guid>
		<description><![CDATA[Problem solved: http://danbystrom.se/2009/01/01/optimizing-away-ii3/
The reason it worked for the default image I guess, is that it is rather dark and EvoLisa starts out with a black image. You probably used a much lighter image, which caused some significant bits to be truncated. Sorry for the inconvenience.]]></description>
		<content:encoded><![CDATA[<p>Problem solved: <a href="http://danbystrom.se/2009/01/01/optimizing-away-ii3/" rel="nofollow">http://danbystrom.se/2009/01/01/optimizing-away-ii3/</a><br />
The reason it worked for the default image I guess, is that it is rather dark and EvoLisa starts out with a black image. You probably used a much lighter image, which caused some significant bits to be truncated. Sorry for the inconvenience.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Optimizing away II.3 &#171; Dan Byström&#8217;s Bwain</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-73</link>
		<dc:creator><![CDATA[Optimizing away II.3 &#171; Dan Byström&#8217;s Bwain]]></dc:creator>
		<pubDate>Thu, 01 Jan 2009 19:30:22 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-73</guid>
		<description><![CDATA[[...] Optimizing away&#160;II [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Optimizing away&nbsp;II [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Otimizing away II.3 &#171; Dan Byström&#8217;s Bwain</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-72</link>
		<dc:creator><![CDATA[Otimizing away II.3 &#171; Dan Byström&#8217;s Bwain]]></dc:creator>
		<pubDate>Thu, 01 Jan 2009 19:29:00 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-72</guid>
		<description><![CDATA[[...] Optimizing away&#160;II [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Optimizing away&nbsp;II [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: danbystrom</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-71</link>
		<dc:creator><![CDATA[danbystrom]]></dc:creator>
		<pubDate>Wed, 31 Dec 2008 09:14:55 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-71</guid>
		<description><![CDATA[Since I haven&#039;t even tried it on the default image I cannot decide if this is good or bad news... :-)

How &#039;bout you zipping the thing and mail it to me and I&#039;ll take a peek?]]></description>
		<content:encoded><![CDATA[<p>Since I haven&#8217;t even tried it on the default image I cannot decide if this is good or bad news&#8230; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>How &#8217;bout you zipping the thing and mail it to me and I&#8217;ll take a peek?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Huddleson</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-70</link>
		<dc:creator><![CDATA[Nate Huddleson]]></dc:creator>
		<pubDate>Tue, 30 Dec 2008 23:00:45 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-70</guid>
		<description><![CDATA[I tried to apply all of your optimizations (on an Intel box) and it works fine for the default image.  However I am having trouble when I open my own image (a 300x300 jpg).  In the end, I pulled out the NativeCode tweak, and it works fine now (for both).  Strange...]]></description>
		<content:encoded><![CDATA[<p>I tried to apply all of your optimizations (on an Intel box) and it works fine for the default image.  However I am having trouble when I open my own image (a 300&#215;300 jpg).  In the end, I pulled out the NativeCode tweak, and it works fine now (for both).  Strange&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Optimizing away II.2 &#171; Dan Byström&#8217;s Bwain</title>
		<link>http://danbystrom.se/2008/12/22/optimizing-away-ii/#comment-66</link>
		<dc:creator><![CDATA[Optimizing away II.2 &#171; Dan Byström&#8217;s Bwain]]></dc:creator>
		<pubDate>Tue, 30 Dec 2008 13:21:39 +0000</pubDate>
		<guid isPermaLink="false">http://danbystrom.se/?p=172#comment-66</guid>
		<description><![CDATA[[...] Optimizing away&#160;II [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Optimizing away&nbsp;II [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

