<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174</link>
    <title>MATLAB Central Newsreader - MATLAB hangs with MEX code</title>
    <description>Feed for thread: MATLAB hangs with MEX code</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Mon, 10 Aug 2009 20:12:18 -0400</pubDate>
      <title>MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672038</link>
      <author>Jose Antonio</author>
      <description>Hi everybody&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I am trying to make a MEX function to split a double class grey scale image into 2^N areas, which I had already done successfully in MATLAB.&lt;br&gt;
&lt;br&gt;
The thing is that the compiled function works properly for N up to 8, and then MATLAB simply hangs, and I have to stop the process.&lt;br&gt;
&lt;br&gt;
I guess I might be again messing up with memory management, but I find no clue how to get things to work. Any help will be very welcome!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Thanks in advance, and here it's the code:&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
#include &quot;mex.h&quot;&lt;br&gt;
#include &amp;lt;math.h&amp;gt;&lt;br&gt;
&lt;br&gt;
/*&lt;br&gt;
* Median_Cut.c&lt;br&gt;
* Used to speed up the Energy Split calculations&lt;br&gt;
* &lt;br&gt;
* [cVList, cHList] = Median_Cut(imageIn, N)&lt;br&gt;
* imageIn is double, N is int&lt;br&gt;
*&lt;br&gt;
* This is a MEX-file for MATLAB.&lt;br&gt;
*/&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
/* The gateway function */&lt;br&gt;
void mexFunction( int nlhs, mxArray *plhs[],&lt;br&gt;
int nrhs, const mxArray *prhs[])&lt;br&gt;
{&lt;br&gt;
/* variable declarations here */&lt;br&gt;
int N, iRows, iCols, index, numTiles, sizeList, filledVals, row, col;&lt;br&gt;
int *cVList, *cHList, *cVListTemp, *cHListTemp;&lt;br&gt;
double energyT, energy;&lt;br&gt;
double *imageIn, *energyP, *energyPtemp;&lt;br&gt;
int n, k, i, j;&lt;br&gt;
&lt;br&gt;
imageIn = mxGetPr(prhs[0]); &lt;br&gt;
iRows = mxGetM(prhs[0]);&lt;br&gt;
iCols = mxGetN(prhs[0]);&lt;br&gt;
&lt;br&gt;
N = *(mxGetPr(prhs[1]));&lt;br&gt;
&lt;br&gt;
numTiles = pow(2,N);&lt;br&gt;
sizeList = 2*numTiles;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
/* Allocate intermediate &amp; output memory */&lt;br&gt;
plhs[0] = mxCreateNumericMatrix(1, sizeList, mxINT16_CLASS, mxREAL);&lt;br&gt;
cVList = (int *)mxGetData(plhs[0]);&lt;br&gt;
plhs[1] = mxCreateNumericMatrix(1, sizeList, mxINT16_CLASS, mxREAL);&lt;br&gt;
cHList = (int *)mxGetData(plhs[1]);&lt;br&gt;
&lt;br&gt;
cVListTemp = mxCalloc(sizeList, sizeof(int));&lt;br&gt;
cHListTemp = mxCalloc(sizeList, sizeof(int));&lt;br&gt;
energyP = mxCalloc(numTiles, sizeof(int));&lt;br&gt;
energyPtemp = mxCalloc(numTiles, sizeof(int)); &lt;br&gt;
&lt;br&gt;
cVList[0] = cHList[0] = 1;&lt;br&gt;
cVList[1] = iRows;&lt;br&gt;
cHList[1] = iCols;&lt;br&gt;
&lt;br&gt;
filledVals = 2;&lt;br&gt;
energyT = 0;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
/* code here */&lt;br&gt;
for (i = 0; i &amp;lt; iRows; i++)&lt;br&gt;
{&lt;br&gt;
for (j = 0; j &amp;lt; iCols; j++)&lt;br&gt;
{&lt;br&gt;
index = i * iCols + j;&lt;br&gt;
energyT += imageIn[index];&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
energyP[0] = energyT;&lt;br&gt;
&lt;br&gt;
for (n = 0; n &amp;lt; N; n++)&lt;br&gt;
{&lt;br&gt;
for (k = 0; k &amp;lt; filledVals; k+=2)&lt;br&gt;
energyPtemp[k] = energyP[k];&lt;br&gt;
&lt;br&gt;
for (k = 0; k &amp;lt; filledVals; k+=2)&lt;br&gt;
{&lt;br&gt;
energy = 0;&lt;br&gt;
row = col = 0;&lt;br&gt;
if ((cVList[k+1] - cVList[k]) &amp;gt; (cHList[k+1] - cHList[k]))&lt;br&gt;
{&lt;br&gt;
while (energy &amp;lt; energyP[k/2]/2)&lt;br&gt;
{&lt;br&gt;
for (j = cHList[k]-1; j &amp;lt; cHList[k+1]; j++)&lt;br&gt;
{&lt;br&gt;
index = (cVList[k] + row - 1) * iCols + j;&lt;br&gt;
energy += imageIn[index];&lt;br&gt;
}&lt;br&gt;
row++;&lt;br&gt;
}&lt;br&gt;
cVListTemp[0 + 2*k] = cVList[k];&lt;br&gt;
cVListTemp[1 + 2*k] = cVList[k] + row;&lt;br&gt;
cVListTemp[2 + 2*k] = cVList[k] + row + 1;&lt;br&gt;
cVListTemp[3 + 2*k] = cVList[k+1];&lt;br&gt;
cHListTemp[0 + 2*k] = cHList[k];&lt;br&gt;
cHListTemp[1 + 2*k] = cHList[k+1];&lt;br&gt;
cHListTemp[2 + 2*k] = cHList[k];&lt;br&gt;
cHListTemp[3 + 2*k] = cHList[k+1];&lt;br&gt;
}&lt;br&gt;
else&lt;br&gt;
{&lt;br&gt;
while (energy &amp;lt; energyP[k/2]/2)&lt;br&gt;
{&lt;br&gt;
for (i = cVList[k]-1; i &amp;lt; cVList[k+1]; i++)&lt;br&gt;
{&lt;br&gt;
index = i * iCols + (cHList[k] + col - 1);&lt;br&gt;
energy += imageIn[index];&lt;br&gt;
}&lt;br&gt;
col++;&lt;br&gt;
}&lt;br&gt;
cHListTemp[0 + 2*k] = cHList[k];&lt;br&gt;
cHListTemp[1 + 2*k] = cHList[k] + col;&lt;br&gt;
cHListTemp[2 + 2*k] = cHList[k] + col + 1;&lt;br&gt;
cHListTemp[3 + 2*k] = cHList[k+1];&lt;br&gt;
cVListTemp[0 + 2*k] = cVList[k];&lt;br&gt;
cVListTemp[1 + 2*k] = cVList[k+1];&lt;br&gt;
cVListTemp[2 + 2*k] = cVList[k];&lt;br&gt;
cVListTemp[3 + 2*k] = cVList[k+1];&lt;br&gt;
}&lt;br&gt;
energyPtemp[k+1] = energyP[k/2] - energy;&lt;br&gt;
energyPtemp[k] = energy;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
for (k = 0; k &amp;lt; filledVals; k++)&lt;br&gt;
energyP[k] = energyPtemp[k];&lt;br&gt;
&lt;br&gt;
filledVals *= 2;&lt;br&gt;
&lt;br&gt;
for (k = 0; k &amp;lt; filledVals; k++)&lt;br&gt;
{&lt;br&gt;
cVList[k] = cVListTemp[k];&lt;br&gt;
cHList[k] = cHListTemp[k];&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
mxFree(cVListTemp);&lt;br&gt;
mxFree(cHListTemp);&lt;br&gt;
mxFree(energyP);&lt;br&gt;
mxFree(energyPtemp);&lt;br&gt;
}</description>
    </item>
    <item>
      <pubDate>Mon, 10 Aug 2009 20:36:19 -0400</pubDate>
      <title>Re: MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672043</link>
      <author>Bruno Luong</author>
      <description>&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; /* Allocate intermediate &amp; output memory */&lt;br&gt;
&amp;gt; plhs[0] = mxCreateNumericMatrix(1, sizeList, mxINT16_CLASS, mxREAL);&lt;br&gt;
&amp;gt; cVList = (int *)mxGetData(plhs[0]);&lt;br&gt;
&amp;gt; plhs[1] = mxCreateNumericMatrix(1, sizeList, mxINT16_CLASS, mxREAL);&lt;br&gt;
&amp;gt; cHList = (int *)mxGetData(plhs[1]);&lt;br&gt;
&lt;br&gt;
Are you sure INT corresponds to mxINT16_CLASS? To me:&lt;br&gt;
&lt;br&gt;
INT &amp;lt;-&amp;gt; mxINT32_CLASS&lt;br&gt;
SHORT INT &amp;lt;-&amp;gt; CLASS&lt;br&gt;
&lt;br&gt;
% Bruno</description>
    </item>
    <item>
      <pubDate>Mon, 10 Aug 2009 20:44:19 -0400</pubDate>
      <title>Re: MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672045</link>
      <author>Bruno Luong</author>
      <description>Sorry for the typo&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; INT &amp;lt;-&amp;gt; mxINT32_CLASS&lt;br&gt;
&amp;gt; SHORT INT &amp;lt;-&amp;gt; mxINT16 CLASS&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; % Bruno</description>
    </item>
    <item>
      <pubDate>Mon, 10 Aug 2009 21:09:35 -0400</pubDate>
      <title>Re: MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672048</link>
      <author>Rune Allnor</author>
      <description>On 10 Aug, 22:12, &quot;Jose Antonio &quot; &amp;lt;jurig...@gmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi everybody&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I am trying to make a MEX function to split a double class grey scale image into 2^N areas, which I had already done successfully in MATLAB.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; The thing is that the compiled function works properly for N up to 8, and then MATLAB simply hangs, and I have to stop the process.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I guess I might be again messing up with memory management, but I find no clue how to get things to work. Any help will be very welcome!&lt;br&gt;
&lt;br&gt;
Memory managment is almost certainly not the main&lt;br&gt;
problem.&lt;br&gt;
&lt;br&gt;
When a program 'hangs' it is usally because some&lt;br&gt;
control loop does not terminate; you forget to&lt;br&gt;
increase a counter, you compare to the wrong number,&lt;br&gt;
or something like that.&lt;br&gt;
&lt;br&gt;
The way to handle these things is to work in a C&lt;br&gt;
development environment, either on the command line&lt;br&gt;
or an IDE. You develop and debug the C business code&lt;br&gt;
in this environment, and then only use the MEX&lt;br&gt;
routine as an interface to the C code.&lt;br&gt;
&lt;br&gt;
You organize the C code as a number of small functions&lt;br&gt;
with clear responsibilities. Test each function&lt;br&gt;
independently, then assemble all of them to the&lt;br&gt;
main working program.&lt;br&gt;
&lt;br&gt;
The general principle is to divide and conquer.&lt;br&gt;
&lt;br&gt;
Rune</description>
    </item>
    <item>
      <pubDate>Mon, 10 Aug 2009 22:34:04 -0400</pubDate>
      <title>Re: MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672056</link>
      <author>Jose Antonio</author>
      <description>&quot;Bruno Luong&quot; &amp;lt;b.luong@fogale.findmycountry&amp;gt; wrote in message &amp;lt;h5q0r3$qcr$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Sorry for the typo&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; INT &amp;lt;-&amp;gt; mxINT32_CLASS&lt;br&gt;
&amp;gt; &amp;gt; SHORT INT &amp;lt;-&amp;gt; mxINT16 CLASS&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; % Bruno&lt;br&gt;
&lt;br&gt;
Bruno, you're absolutely right. I had changed that already, but didn't post the change, since the code was doing weird stuff... However it still hangs!</description>
    </item>
    <item>
      <pubDate>Mon, 10 Aug 2009 22:36:18 -0400</pubDate>
      <title>Re: MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672057</link>
      <author>Jose Antonio</author>
      <description>Rune Allnor &amp;lt;allnor@tele.ntnu.no&amp;gt; wrote in message &amp;lt;342d4053-e7a6-443e-9ed9-a00f427ce172@c34g2000yqi.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; On 10 Aug, 22:12, &quot;Jose Antonio &quot; &amp;lt;jurig...@gmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; &amp;gt; Hi everybody&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; I am trying to make a MEX function to split a double class grey scale image into 2^N areas, which I had already done successfully in MATLAB.&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; The thing is that the compiled function works properly for N up to 8, and then MATLAB simply hangs, and I have to stop the process.&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; I guess I might be again messing up with memory management, but I find no clue how to get things to work. Any help will be very welcome!&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Memory managment is almost certainly not the main&lt;br&gt;
&amp;gt; problem.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; When a program 'hangs' it is usally because some&lt;br&gt;
&amp;gt; control loop does not terminate; you forget to&lt;br&gt;
&amp;gt; increase a counter, you compare to the wrong number,&lt;br&gt;
&amp;gt; or something like that.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The way to handle these things is to work in a C&lt;br&gt;
&amp;gt; development environment, either on the command line&lt;br&gt;
&amp;gt; or an IDE. You develop and debug the C business code&lt;br&gt;
&amp;gt; in this environment, and then only use the MEX&lt;br&gt;
&amp;gt; routine as an interface to the C code.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; You organize the C code as a number of small functions&lt;br&gt;
&amp;gt; with clear responsibilities. Test each function&lt;br&gt;
&amp;gt; independently, then assemble all of them to the&lt;br&gt;
&amp;gt; main working program.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The general principle is to divide and conquer.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Rune&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Hi Rune&lt;br&gt;
&lt;br&gt;
Nice suggestion! I had not though about improper loop behavior or similar, since the code works fine for N up to 8... But I will check it again :)&lt;br&gt;
&lt;br&gt;
Any way that I can make this work with a proper C environment? I mean, my real goal is to get better with Matlab and C as well, so any recommended software or similar would be great!&lt;br&gt;
&lt;br&gt;
Jose</description>
    </item>
    <item>
      <pubDate>Mon, 10 Aug 2009 22:56:03 -0400</pubDate>
      <title>Re: MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672061</link>
      <author>James Tursa</author>
      <description>&quot;Jose Antonio &quot; &amp;lt;juriguen@gmail.com&amp;gt; wrote in message &amp;lt;h5q78s$ns2$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &quot;Bruno Luong&quot; &amp;lt;b.luong@fogale.findmycountry&amp;gt; wrote in message &amp;lt;h5q0r3$qcr$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; Sorry for the typo&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; INT &amp;lt;-&amp;gt; mxINT32_CLASS&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; SHORT INT &amp;lt;-&amp;gt; mxINT16 CLASS&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; % Bruno&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Bruno, you're absolutely right. I had changed that already, but didn't post the change, since the code was doing weird stuff... However it still hangs!&lt;br&gt;
&lt;br&gt;
Please post your current code.&lt;br&gt;
&lt;br&gt;
James Tursa</description>
    </item>
    <item>
      <pubDate>Mon, 10 Aug 2009 23:11:03 -0400</pubDate>
      <title>Re: MATLAB hangs with MEX code</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/258174#672064</link>
      <author>Jose Antonio</author>
      <description>&quot;James Tursa&quot; &amp;lt;aclassyguy_with_a_k_not_a_c@hotmail.com&amp;gt; wrote in message &amp;lt;h5q8i3$ffa$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &quot;Jose Antonio &quot; &amp;lt;juriguen@gmail.com&amp;gt; wrote in message &amp;lt;h5q78s$ns2$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &quot;Bruno Luong&quot; &amp;lt;b.luong@fogale.findmycountry&amp;gt; wrote in message &amp;lt;h5q0r3$qcr$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; Sorry for the typo&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; INT &amp;lt;-&amp;gt; mxINT32_CLASS&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; SHORT INT &amp;lt;-&amp;gt; mxINT16 CLASS&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; % Bruno&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Bruno, you're absolutely right. I had changed that already, but didn't post the change, since the code was doing weird stuff... However it still hangs!&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Please post your current code.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; James Tursa&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Sure! But I must say time is London is late now, so I'm going to sleep now :) No rush then for answers!&lt;br&gt;
&lt;br&gt;
Anyway, here we go&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
#include &quot;mex.h&quot;&lt;br&gt;
#include &amp;lt;math.h&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
/*&lt;br&gt;
&amp;nbsp;* Median_Cut.c&lt;br&gt;
&amp;nbsp;* Used to speed up the Energy Split calculations&lt;br&gt;
&amp;nbsp;* &lt;br&gt;
&amp;nbsp;* [cVList, cHList] = Median_Cut(imageIn, N)&lt;br&gt;
&amp;nbsp;* imageIn is double, N is int&lt;br&gt;
&amp;nbsp;*&lt;br&gt;
&amp;nbsp;* This is a MEX-file for MATLAB.&lt;br&gt;
*/&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
/* The gateway function */&lt;br&gt;
void mexFunction( int nlhs, mxArray *plhs[],&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int nrhs, const mxArray *prhs[] )&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* variable declarations here */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int N, iRows, iCols, index, numTiles, sizeList, filledVals, row, col;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INT32_T *cVList, *cHList;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int *cVListTemp, *cHListTemp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;double energyT, energy;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;double *imageIn, *energyP, *energyPtemp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int n, k, i, j;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imageIn = mxGetPr(prhs[0]);  &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iRows = mxGetM(prhs[0]);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iCols = mxGetN(prhs[0]);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;N = *(mxGetPr(prhs[1]));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;numTiles = pow(2,N);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sizeList = 2*numTiles;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Allocate intermediate &amp; output memory */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plhs[0] = mxCreateNumericMatrix(1, sizeList, mxINT32_CLASS, mxREAL);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVList = (INT32_T *) mxGetData(plhs[0]);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plhs[1] = mxCreateNumericMatrix(1, sizeList, mxINT32_CLASS, mxREAL);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHList = (INT32_T *) mxGetData(plhs[1]);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp = mxCalloc(sizeList, sizeof(int));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp = mxCalloc(sizeList, sizeof(int));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyP = mxCalloc(numTiles, sizeof(int));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyPtemp = mxCalloc(numTiles, sizeof(int));    &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVList[0] = cHList[0] = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVList[1] = iRows;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHList[1] = iCols;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filledVals = 2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyT = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* code here */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = 0; i &amp;lt; iRows; i++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (j = 0; j &amp;lt; iCols; j++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;index = i * iCols + j;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyT += imageIn[index];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyP[0] = energyT;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (n = 0; n &amp;lt; N; n++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (k = 0; k &amp;lt; filledVals; k++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyPtemp[k] = energyP[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (k = 0; k &amp;lt; filledVals; k+=2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energy = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;row = col = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((cVList[k+1] - cVList[k]) &amp;gt; (cHList[k+1] - cHList[k]))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (energy &amp;lt; energyP[k/2]/2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (j = cHList[k]-1; j &amp;lt; cHList[k+1]; j++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;index = (cVList[k] + row - 1) * iCols + j;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energy += imageIn[index];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;row++;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[0 + 2*k] = cVList[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[1 + 2*k] = cVList[k] + row;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[2 + 2*k] = cVList[k] + row + 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[3 + 2*k] = cVList[k+1];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[0 + 2*k] = cHList[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[1 + 2*k] = cHList[k+1];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[2 + 2*k] = cHList[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[3 + 2*k] = cHList[k+1];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (energy &amp;lt; energyP[k/2]/2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = cVList[k]-1; i &amp;lt; cVList[k+1]; i++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;index = i * iCols + (cHList[k] + col - 1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energy += imageIn[index];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;col++;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[0 + 2*k] = cHList[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[1 + 2*k] = cHList[k] + col;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[2 + 2*k] = cHList[k] + col + 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHListTemp[3 + 2*k] = cHList[k+1];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[0 + 2*k] = cVList[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[1 + 2*k] = cVList[k+1];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[2 + 2*k] = cVList[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVListTemp[3 + 2*k] = cVList[k+1];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyPtemp[k+1] = energyP[k/2] - energy;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyPtemp[k] = energy;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (k = 0; k &amp;lt; filledVals; k++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyP[k] = energyPtemp[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filledVals *= 2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (k = 0; k &amp;lt; filledVals; k++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cVList[k] = cVListTemp[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cHList[k] = cHListTemp[k];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mxFree(cVListTemp);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mxFree(cHListTemp);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mxFree(energyP);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mxFree(energyPtemp);&lt;br&gt;
}</description>
    </item>
  </channel>
</rss>

