<?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/"
		>
<channel>
	<title>Comments for Manuel&#039;s Coding Blog</title>
	<atom:link href="http://manuel.bit-fire.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://manuel.bit-fire.com</link>
	<description></description>
	<lastBuildDate>Mon, 22 Aug 2011 01:37:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comment on The Magic Carpet by lee</title>
		<link>http://manuel.bit-fire.com/2007/08/10/the-magic-carpet/comment-page-2/#comment-22827</link>
		<dc:creator>lee</dc:creator>
		<pubDate>Mon, 22 Aug 2011 01:37:37 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/2007/08/10/the-magic-carpet/#comment-22827</guid>
		<description>Hello.
You made it a very good magic carpet.
I strive to do this operation, but failed.
We got a problem in the following.

ex1) error
curr = new Vector (x, y);
prev = new Vector (x, y);

ex2) pass
curr = new Vector ();
prev = new Vector ();

My development environment is as follows.
flash builder 4, flex sdk 4,1 or 4.5

As shown by testing the development environment to my email please.

 Thank you.</description>
		<content:encoded><![CDATA[<p>Hello.<br />
You made it a very good magic carpet.<br />
I strive to do this operation, but failed.<br />
We got a problem in the following.</p>
<p>ex1) error<br />
curr = new Vector (x, y);<br />
prev = new Vector (x, y);</p>
<p>ex2) pass<br />
curr = new Vector ();<br />
prev = new Vector ();</p>
<p>My development environment is as follows.<br />
flash builder 4, flex sdk 4,1 or 4.5</p>
<p>As shown by testing the development environment to my email please.</p>
<p> Thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Magic Carpet by Manuel</title>
		<link>http://manuel.bit-fire.com/2007/08/10/the-magic-carpet/comment-page-2/#comment-22814</link>
		<dc:creator>Manuel</dc:creator>
		<pubDate>Sun, 21 Aug 2011 10:14:52 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/2007/08/10/the-magic-carpet/#comment-22814</guid>
		<description>@lee, i don&#039;t know if this code still compiles fine with the latest version, it looks like the parameterized constructor isn&#039;t there for the Vector type..</description>
		<content:encoded><![CDATA[<p>@lee, i don&#8217;t know if this code still compiles fine with the latest version, it looks like the parameterized constructor isn&#8217;t there for the Vector type..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Magic Carpet by lee</title>
		<link>http://manuel.bit-fire.com/2007/08/10/the-magic-carpet/comment-page-2/#comment-22812</link>
		<dc:creator>lee</dc:creator>
		<pubDate>Sun, 21 Aug 2011 05:31:37 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/2007/08/10/the-magic-carpet/#comment-22812</guid>
		<description>Description Resource Path Location Type 1137: Incorrect number of arguments.  Expected no more than 0.
AbstractParticle.as	/MagicCarpet2/org/cove/ape line 88 Flex Problem
.
.
.

---
curr = new Vector(x, y);
prev = new Vector(x, y);
code error.?

Using... flash builder 4, flex sdk 4.5.1</description>
		<content:encoded><![CDATA[<p>Description Resource Path Location Type 1137: Incorrect number of arguments.  Expected no more than 0.<br />
AbstractParticle.as	/MagicCarpet2/org/cove/ape line 88 Flex Problem<br />
.<br />
.<br />
.</p>
<p>&#8212;<br />
curr = new Vector(x, y);<br />
prev = new Vector(x, y);<br />
code error.?</p>
<p>Using&#8230; flash builder 4, flex sdk 4.5.1</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Compiz-like wobbling windows in AS3 by flashmad</title>
		<link>http://manuel.bit-fire.com/2008/09/04/compiz-like-wobbling-windows-in-as3/comment-page-1/#comment-21786</link>
		<dc:creator>flashmad</dc:creator>
		<pubDate>Mon, 27 Jun 2011 17:20:29 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/?p=128#comment-21786</guid>
		<description>Hi theanks. When i saw this site (http://www.panoplie.fr/) i searched wobble as3 and got your code. Thanks for the nice code lib.</description>
		<content:encoded><![CDATA[<p>Hi theanks. When i saw this site (<a href="http://www.panoplie.fr/" rel="nofollow">http://www.panoplie.fr/</a>) i searched wobble as3 and got your code. Thanks for the nice code lib.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An AS3 profiler by How to make Angry Birds &#8211; part 2 &#124; Paul&#039;s blog@Wildbunny</title>
		<link>http://manuel.bit-fire.com/2007/10/17/an-as3-profiler/comment-page-1/#comment-21297</link>
		<dc:creator>How to make Angry Birds &#8211; part 2 &#124; Paul&#039;s blog@Wildbunny</dc:creator>
		<pubDate>Tue, 07 Jun 2011 17:12:40 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/?p=72#comment-21297</guid>
		<description>[...] I used the following profiler (which I highly recommend) to identify the slow parts of the engine: http://manuel.bit-fire.com/2007/10/17/an-as3-profiler/ [...]</description>
		<content:encoded><![CDATA[<p>[...] I used the following profiler (which I highly recommend) to identify the slow parts of the engine: <a href="http://manuel.bit-fire.com/2007/10/17/an-as3-profiler/" rel="nofollow">http://manuel.bit-fire.com/2007/10/17/an-as3-profiler/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Compiz-like wobbling windows in AS3 by dopin</title>
		<link>http://manuel.bit-fire.com/2008/09/04/compiz-like-wobbling-windows-in-as3/comment-page-1/#comment-17757</link>
		<dc:creator>dopin</dc:creator>
		<pubDate>Sat, 18 Sep 2010 09:55:04 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/?p=128#comment-17757</guid>
		<description>an similar one: &lt;a href=&quot;http://activeden.net/item/genie-effector-10/123642&quot; rel=&quot;nofollow&quot;&gt;http://activeden.net/item/genie-effector-10/123642&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>an similar one: <a href="http://activeden.net/item/genie-effector-10/123642" rel="nofollow">http://activeden.net/item/genie-effector-10/123642</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on pocketSand v0.8.3 by Vincent</title>
		<link>http://manuel.bit-fire.com/2006/11/15/pocketsand-v083/comment-page-2/#comment-16436</link>
		<dc:creator>Vincent</dc:creator>
		<pubDate>Fri, 19 Mar 2010 20:31:25 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/2006/11/15/pocketsand-v083/#comment-16436</guid>
		<description>Hello!

Great game!  Are you planning to rescale the game to moder terminals like HTC HD2 800x480 screens?

More colors of sand or editable quantity of falling sand would be nice!

thanks!</description>
		<content:encoded><![CDATA[<p>Hello!</p>
<p>Great game!  Are you planning to rescale the game to moder terminals like HTC HD2 800&#215;480 screens?</p>
<p>More colors of sand or editable quantity of falling sand would be nice!</p>
<p>thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing WonderSharper by Manuel</title>
		<link>http://manuel.bit-fire.com/2009/07/26/introducing-wondersharper/comment-page-1/#comment-14946</link>
		<dc:creator>Manuel</dc:creator>
		<pubDate>Sun, 22 Nov 2009 19:59:32 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/?p=239#comment-14946</guid>
		<description>I just tested it now and it take 38 seconds on the i7 to compute all three maps on a 50%-scaled input, making use of the above optimizations, thus with an accuracy of 5e-02 on the first map and 1e-02 on the subsequent two maps.
Keep in mind that i&#039;m not able at this time to push all the 4+4 cores at work, it stays at 50/60%, so there is still room for improvement: too bad i can&#039;t remember the exact settings for having the i7 do the same results in 28s, but i remeber i got it by adjusting lambda/alpha coefficients, as you already noticed the processing time roughly doubles as doubling the smoothing scale.
The factory settings of my application are Sm(oothing)/Sh(arpness)/Err(or) this way:

	fine map:   0.1&#124;1.2&#124;5e-02
	mid map:    0.4&#124;1.4&#124;1e-02
	coarse map: 0.5&#124;1.8&#124;1e-02

I also noticed the fine/mid map params are good to be kept the same for most of the images i tried, the coarse params, instead, it seems a lot of different and good-looking variations can be achieved just manipulating its lambda/alpha between the nominal 0.5&#124;1.8 and 0.7&#124;1.7; the time spent on the coarse map will vary a lot between choosing a lambda=0.5&#124;0.7.

I never tried the multigrid approach and unfortunately i don&#039;t think i&#039;ll have the time to work it out soon but given the genericity of the math engine you are working on, you may be very well interested into &quot;edge-avoiding wavelets&quot;, that some sort of second-generation wavelets.
I recall that recently there was a work in the MRA field that depicted how WLS filtering can be done and implemented with wavelets, basically it can be achieved multiscale edge-preserving filtering at computation times which are linear to the number of pixels, avoiding the need for solving large systems of equations: i&#039;ve still not studied the paper [1] yet (there is a lot of stuff going on here!) but Fattal himself states and demonstrates it&#039;s robust enough.


------------
[1] Raanan Fattal, &quot;Edge-Avoiding Wavelets and their Applications&quot; (&lt;a href=&quot;http://www.cs.huji.ac.il/~raananf/projects/eaw/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.huji.ac.il/~raananf/projects/eaw/index.html&lt;/a&gt;)</description>
		<content:encoded><![CDATA[<p>I just tested it now and it take 38 seconds on the i7 to compute all three maps on a 50%-scaled input, making use of the above optimizations, thus with an accuracy of 5e-02 on the first map and 1e-02 on the subsequent two maps.<br />
Keep in mind that i&#8217;m not able at this time to push all the 4+4 cores at work, it stays at 50/60%, so there is still room for improvement: too bad i can&#8217;t remember the exact settings for having the i7 do the same results in 28s, but i remeber i got it by adjusting lambda/alpha coefficients, as you already noticed the processing time roughly doubles as doubling the smoothing scale.<br />
The factory settings of my application are Sm(oothing)/Sh(arpness)/Err(or) this way:</p>
<p>	fine map:   0.1|1.2|5e-02<br />
	mid map:    0.4|1.4|1e-02<br />
	coarse map: 0.5|1.8|1e-02</p>
<p>I also noticed the fine/mid map params are good to be kept the same for most of the images i tried, the coarse params, instead, it seems a lot of different and good-looking variations can be achieved just manipulating its lambda/alpha between the nominal 0.5|1.8 and 0.7|1.7; the time spent on the coarse map will vary a lot between choosing a lambda=0.5|0.7.</p>
<p>I never tried the multigrid approach and unfortunately i don&#8217;t think i&#8217;ll have the time to work it out soon but given the genericity of the math engine you are working on, you may be very well interested into &#8220;edge-avoiding wavelets&#8221;, that some sort of second-generation wavelets.<br />
I recall that recently there was a work in the MRA field that depicted how WLS filtering can be done and implemented with wavelets, basically it can be achieved multiscale edge-preserving filtering at computation times which are linear to the number of pixels, avoiding the need for solving large systems of equations: i&#8217;ve still not studied the paper [1] yet (there is a lot of stuff going on here!) but Fattal himself states and demonstrates it&#8217;s robust enough.</p>
<p>&#8212;&#8212;&#8212;&#8212;<br />
[1] Raanan Fattal, &#8220;Edge-Avoiding Wavelets and their Applications&#8221; (<a href="http://www.cs.huji.ac.il/~raananf/projects/eaw/index.html" rel="nofollow">http://www.cs.huji.ac.il/~raananf/projects/eaw/index.html</a>)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing WonderSharper by algorithm_implementer</title>
		<link>http://manuel.bit-fire.com/2009/07/26/introducing-wondersharper/comment-page-1/#comment-14945</link>
		<dc:creator>algorithm_implementer</dc:creator>
		<pubDate>Sun, 22 Nov 2009 19:10:21 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/?p=239#comment-14945</guid>
		<description>Hi Manuel,

thanks for the detailed and open sharing of your ideas. This is very well appreciated !

I too have been in the process of developing something similar in the context of an image segmentation engine which essentially boils down to the same system of equations to solve.
Your results for 21 Megapixels:
 
&gt; 28 seconds on the i7

are impressive (I assume that this is the time needed to compute all three maps to an solver accuracy of 1e-02).

How much of smoothing (lamnda parameter) do you use for the &quot;coarsest&quot; grained level ?  
The main problem seems to be the fact that processing time increases not only with image resolution alone but also (and even more rapidly) with increasing smoothness factor.

However, in order to achive a complete scale space decomposition, it is desirable to have a very strongly smoothed version at the coarsest level (i.e. nearly as smooth as the completely smoothed, i.e. constant image )
In my experience the processing time roughly doubles with a doubling of the smoothing scale ... 

The typical approach to solve such problems with the slowly converging low-frequency errors would be to use some multigrid variant of the linear solver.
However, after having experiemented a lot with multigrid solvers (adapting the restriction/prolongation operators, algebraic multigrid etc.) there seems to be no significant speed up compared with a well tuned single-grid conjugate gradient solver....

So did you too experiment with the multigrid approach and if so, how did the results turn out ?</description>
		<content:encoded><![CDATA[<p>Hi Manuel,</p>
<p>thanks for the detailed and open sharing of your ideas. This is very well appreciated !</p>
<p>I too have been in the process of developing something similar in the context of an image segmentation engine which essentially boils down to the same system of equations to solve.<br />
Your results for 21 Megapixels:</p>
<p>&gt; 28 seconds on the i7</p>
<p>are impressive (I assume that this is the time needed to compute all three maps to an solver accuracy of 1e-02).</p>
<p>How much of smoothing (lamnda parameter) do you use for the &#8220;coarsest&#8221; grained level ?<br />
The main problem seems to be the fact that processing time increases not only with image resolution alone but also (and even more rapidly) with increasing smoothness factor.</p>
<p>However, in order to achive a complete scale space decomposition, it is desirable to have a very strongly smoothed version at the coarsest level (i.e. nearly as smooth as the completely smoothed, i.e. constant image )<br />
In my experience the processing time roughly doubles with a doubling of the smoothing scale &#8230; </p>
<p>The typical approach to solve such problems with the slowly converging low-frequency errors would be to use some multigrid variant of the linear solver.<br />
However, after having experiemented a lot with multigrid solvers (adapting the restriction/prolongation operators, algebraic multigrid etc.) there seems to be no significant speed up compared with a well tuned single-grid conjugate gradient solver&#8230;.</p>
<p>So did you too experiment with the multigrid approach and if so, how did the results turn out ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing WonderSharper by Manuel</title>
		<link>http://manuel.bit-fire.com/2009/07/26/introducing-wondersharper/comment-page-1/#comment-14941</link>
		<dc:creator>Manuel</dc:creator>
		<pubDate>Sun, 22 Nov 2009 15:21:15 +0000</pubDate>
		<guid isPermaLink="false">http://manuel.bit-fire.com/?p=239#comment-14941</guid>
		<description>Hi,

    thank you for your interest and for writing me: indeed, finding a fast AND reliable solver has been a lot of work since that paper, as you noticed, just remarks something about a &quot;Fast approximate solution&quot; [1], however, i  remember that computing a Cholesky factorization and using that as a preconditioner it was taking more processing time and memory resources than a slightly modified version of a conjugate gradient solver.
I rewrote the CG solver on the lines of OpenTissue&#039;s one in order to be able to 1) parallelize as much computions as possible on multiple cores (i&#039;m still working on it) and 2) to maximize vector/sparse_matrix elements access efficiency, rewriting the &quot;axpy_prod&quot; Boost::ublas [2] helper to address non-zero diagonal elements via an ad-hoc lookup table exploiting the symmetric nature of A, saving a whole lot of memory.

Another interesting &quot;experimental&quot; optimization trick i found out while experimenting, but that has to be used carefully since it directly affect the resulting WLS maps, is built around the fact we need to generate three maps, from the most to the least detailed: the constraint here is to compute the maps in a least-to-most coarse direction, that is, the first map you compute is the &quot;fine&quot;, then the &quot;mid&quot; and then the &quot;coarse&quot;: once the &quot;fine&quot; has been computed we can use the resulting map as a &quot;preconditioning vector&quot; for the subsequent map by converting the &quot;fine&quot; matrix to a vector and using it as the &quot;x&quot; vector for the subsequent &quot;mid&quot; calculation; then repeat the process by using the resulting &quot;mid&quot; wls map as the &quot;preconditioning vector&quot; for the subsequent &quot;coarse&quot; map.
Since this approach accumulate some error terms, i modified the exit condition of the CG to be bound to the error term itself, so that the solver has no more n-iterations to perform but instead has to reach a decent error threshold before exiting: this ensure every generated map has no more than a well-defined error threshold not differing much from other maps.
Although this technique works well in most cases, it still can produce some artifacts if error threshold values are taken to the extreme or the previous maps have been generated with a larger error threshold: usually, computing the &quot;fine&quot; map with a target error threshold of 5e-02 and the subsequent maps with a target error threshold of 1e-02 gives good results without sacrifying much of the details.
The pros: faster on single/dual core processors with as much as 1/1.5gig ram available (4 mins on a p4 2.2ghz for a 21Mpixels, 28 seconds on the i7, Linux 32 and 64 respectively)
The cons: maps need to be generated in series, thus no parallel map generation can be performed (but detecting a powerful machine isn&#039;t difficult so switching between these methods at runtime can be done and proposed to the user).

The last optimization trick that can speed up things *a lot* is to compute the WLS on a scaled resolution input image, and use that concept coupled with a UI slider (ie, &quot;Overall quality&quot;): the idea is to have a min/max going from 50-to-100% of the original resolution and use the scaled resolution image for computing the WLS; the important thing here is to always &quot;linearly interpolate&quot; to compute the scaled resolution image otherwise interpolation artifact (avg, grid, bicubic) may appear strongly in the final tonemapped result (*not* in the wls map).

As a sidenote, i think Intel Math Kernel libraries [4] could be able to solve the linear system (eq. 5) [3] without having to resort to the tricks i&#039;ve mentioned, as well as saturating all cores and minimizing the overhead: however i&#039;ve really never tried the MKL so you may want to give it a try.
My goal wasn&#039;t at all to compete with their or other existing implementations, but instead just to have a look to the beauty of computational photography, it&#039;s intricacies and it&#039;s implications in the photography retouching process.

Hope it helps,
Regards,
Manuel

------------
[1] Dani Lischinski et. al, &quot;Interactive Local Adjustment of Tonal Values&quot;
[2] Boost&#039;s Basic Linear Algebra can be found at http://www.boost.org/doc/libs/1_41_0/libs/numeric/ublas/doc/index.htm
[3] Dani Lischinski et. al, &quot;Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation&quot;
[4] Intel Math Kernel libraries can be found at http://software.intel.com/en-us/intel-mkl/</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>    thank you for your interest and for writing me: indeed, finding a fast AND reliable solver has been a lot of work since that paper, as you noticed, just remarks something about a &#8220;Fast approximate solution&#8221; [1], however, i  remember that computing a Cholesky factorization and using that as a preconditioner it was taking more processing time and memory resources than a slightly modified version of a conjugate gradient solver.<br />
I rewrote the CG solver on the lines of OpenTissue&#8217;s one in order to be able to 1) parallelize as much computions as possible on multiple cores (i&#8217;m still working on it) and 2) to maximize vector/sparse_matrix elements access efficiency, rewriting the &#8220;axpy_prod&#8221; Boost::ublas [2] helper to address non-zero diagonal elements via an ad-hoc lookup table exploiting the symmetric nature of A, saving a whole lot of memory.</p>
<p>Another interesting &#8220;experimental&#8221; optimization trick i found out while experimenting, but that has to be used carefully since it directly affect the resulting WLS maps, is built around the fact we need to generate three maps, from the most to the least detailed: the constraint here is to compute the maps in a least-to-most coarse direction, that is, the first map you compute is the &#8220;fine&#8221;, then the &#8220;mid&#8221; and then the &#8220;coarse&#8221;: once the &#8220;fine&#8221; has been computed we can use the resulting map as a &#8220;preconditioning vector&#8221; for the subsequent map by converting the &#8220;fine&#8221; matrix to a vector and using it as the &#8220;x&#8221; vector for the subsequent &#8220;mid&#8221; calculation; then repeat the process by using the resulting &#8220;mid&#8221; wls map as the &#8220;preconditioning vector&#8221; for the subsequent &#8220;coarse&#8221; map.<br />
Since this approach accumulate some error terms, i modified the exit condition of the CG to be bound to the error term itself, so that the solver has no more n-iterations to perform but instead has to reach a decent error threshold before exiting: this ensure every generated map has no more than a well-defined error threshold not differing much from other maps.<br />
Although this technique works well in most cases, it still can produce some artifacts if error threshold values are taken to the extreme or the previous maps have been generated with a larger error threshold: usually, computing the &#8220;fine&#8221; map with a target error threshold of 5e-02 and the subsequent maps with a target error threshold of 1e-02 gives good results without sacrifying much of the details.<br />
The pros: faster on single/dual core processors with as much as 1/1.5gig ram available (4 mins on a p4 2.2ghz for a 21Mpixels, 28 seconds on the i7, Linux 32 and 64 respectively)<br />
The cons: maps need to be generated in series, thus no parallel map generation can be performed (but detecting a powerful machine isn&#8217;t difficult so switching between these methods at runtime can be done and proposed to the user).</p>
<p>The last optimization trick that can speed up things *a lot* is to compute the WLS on a scaled resolution input image, and use that concept coupled with a UI slider (ie, &#8220;Overall quality&#8221;): the idea is to have a min/max going from 50-to-100% of the original resolution and use the scaled resolution image for computing the WLS; the important thing here is to always &#8220;linearly interpolate&#8221; to compute the scaled resolution image otherwise interpolation artifact (avg, grid, bicubic) may appear strongly in the final tonemapped result (*not* in the wls map).</p>
<p>As a sidenote, i think Intel Math Kernel libraries [4] could be able to solve the linear system (eq. 5) [3] without having to resort to the tricks i&#8217;ve mentioned, as well as saturating all cores and minimizing the overhead: however i&#8217;ve really never tried the MKL so you may want to give it a try.<br />
My goal wasn&#8217;t at all to compete with their or other existing implementations, but instead just to have a look to the beauty of computational photography, it&#8217;s intricacies and it&#8217;s implications in the photography retouching process.</p>
<p>Hope it helps,<br />
Regards,<br />
Manuel</p>
<p>&#8212;&#8212;&#8212;&#8212;<br />
[1] Dani Lischinski et. al, &#8220;Interactive Local Adjustment of Tonal Values&#8221;<br />
[2] Boost&#8217;s Basic Linear Algebra can be found at <a href="http://www.boost.org/doc/libs/1_41_0/libs/numeric/ublas/doc/index.htm" rel="nofollow">http://www.boost.org/doc/libs/1_41_0/libs/numeric/ublas/doc/index.htm</a><br />
[3] Dani Lischinski et. al, &#8220;Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation&#8221;<br />
[4] Intel Math Kernel libraries can be found at <a href="http://software.intel.com/en-us/intel-mkl/" rel="nofollow">http://software.intel.com/en-us/intel-mkl/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

