<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Computer Science Life</title>
	<atom:link href="http://acszone.xhost.ro/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://acszone.xhost.ro</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 05 Mar 2010 21:13:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Steganography</title>
		<link>http://acszone.xhost.ro/?p=37</link>
		<comments>http://acszone.xhost.ro/?p=37#comments</comments>
		<pubDate>Fri, 05 Mar 2010 21:13:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://acszone.xhost.ro/?p=37</guid>
		<description><![CDATA[Today, reading all kind off things after hours, I've found an interesting subject : Steganography. What this term really means : well, it represents a technique of hiding something by changing it's form or by encapsulated it in something else. This way of covering something is used since long ago, from the times of ancient [...]]]></description>
			<content:encoded><![CDATA[<p>Today, reading all kind off things after hours, I've found an interesting subject : <a href="http://en.wikipedia.org/wiki/Steganography">Steganography</a>. What this term really means : well, it represents a technique of hiding something by changing it's form or by encapsulated it in something else. This way of covering something is used since long ago, from the times of ancient Greeks ( where they used head tattooed slaves to send messages ).But ,steganography have become more known with the introduction of digital photos. Why, because photos permit hiding information very well without any suspicion. So called <em>Digital steganography</em> can be used where cryptography isn't possible or legal. We can easily send coded messages into photos to our Chinese fellows, without any problem. Sadly , digital steganography has a bad part. I can be ( and it was ) used by <a href="http://en.wikipedia.org/wiki/Terrorist">terrorist</a> to send key instructions. Anyway, here is a site where you can play with this thing : <a href="http://mozaiq.org/ ">http://mozaiq.org/ </a></p>
]]></content:encoded>
			<wfw:commentRss>http://acszone.xhost.ro/?feed=rss2&amp;p=37</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First post</title>
		<link>http://acszone.xhost.ro/?p=1</link>
		<comments>http://acszone.xhost.ro/?p=1#comments</comments>
		<pubDate>Thu, 04 Mar 2010 17:08:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Faculty]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://acszone.xhost.ro/?p=1</guid>
		<description><![CDATA[Welcome to my blog. In my first post I will talk have a programing topic, more exactly a Divide and conquer problem : Matrix multiplication using this programming technique. We will show the simplest way, using  a particular case of matrices, square matrices with dimension being an even number (in order to keep the thing [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to my blog. In my first post I will talk have a programing topic, more exactly a <a href="http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm">Divide and conquer</a> problem : Matrix multiplication using this programming technique. We will show the simplest way, using  a particular case of matrices, square matrices with dimension being an even number (in order to keep the thing clear and concise ).</p>
<p>The idea is the follow : split each matrix in 4 square matrices till the dimension of this matrices is 2 . In this case, we will apply the known matrix multiplication.  Our function will have as arguments the input matrices, their dimension , the left upper corner coordinates ( line and column ) and the current dimension.</p>
<p>When the algorithm reaches matrices with dimension equal to 2 , proper elements in the matrix result are computed.</p>
<p>Here is the algorithm, written in C :</p>
<pre>
<div class="geshi c">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co2">#include &nbsp;&lt;stdio.h&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co2">#include &lt;stdlib.h&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> <span class="sy0">**</span>d <span class="sy0">=</span> <span class="kw2">NULL</span> ; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// global result matrix</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* &nbsp;reading &nbsp;function</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* file_name file input name</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* n &nbsp; dimension of the matrix</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* a, b &nbsp; operand matrices</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">void</span> read<span class="br0">&#40;</span><span class="kw4">char</span><span class="sy0">*</span> file_name, <span class="kw4">int</span> <span class="sy0">*</span>n, <span class="kw4">int</span> <span class="sy0">***</span>a, <span class="kw4">int</span> <span class="sy0">***</span>b<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">int</span> i, j;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;FILE <span class="sy0">*</span>fd <span class="sy0">=</span> fopen<span class="br0">&#40;</span>file_name, <span class="st0">&quot;r&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// dimension of the matrix</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;fscanf<span class="br0">&#40;</span>fd, <span class="st0">&quot;%i&quot;</span>, n<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// elements of &nbsp;A</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">*</span>a <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">**</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="sy0">*</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span>; i &lt; <span class="sy0">*</span>n; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#40;</span><span class="sy0">*</span>a<span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="sy0">*</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span>j <span class="sy0">=</span> <span class="nu0">0</span>; j &lt; <span class="sy0">*</span>n; j<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;fscanf<span class="br0">&#40;</span>fd, <span class="st0">&quot;%i&quot;</span>, <span class="sy0">&amp;</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="sy0">*</span>a<span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// elements of B</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">*</span>b <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">**</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="sy0">*</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span>; i &lt; <span class="sy0">*</span>n; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#40;</span><span class="sy0">*</span>b<span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="sy0">*</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span>j <span class="sy0">=</span> <span class="nu0">0</span>; j &lt; <span class="sy0">*</span>n; j<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;fscanf<span class="br0">&#40;</span>fd, <span class="st0">&quot;%i&quot;</span>, <span class="sy0">&amp;</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="sy0">*</span>b<span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fclose<span class="br0">&#40;</span>fd<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* iterative algorithm for multiplication</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* n &nbsp;dimension</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* a, b &nbsp;operands</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* c result &nbsp;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">void</span> matrix_multiply<span class="br0">&#40;</span><span class="kw4">int</span> n, <span class="kw4">int</span> <span class="sy0">**</span>a, <span class="kw4">int</span> <span class="sy0">**</span>b, <span class="kw4">int</span> <span class="sy0">***</span>c<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">int</span> i, j, k;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">*</span>c <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">**</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// inmultire matrice </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span>; i &lt; n; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#40;</span><span class="sy0">*</span>c<span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span>j <span class="sy0">=</span> <span class="nu0">0</span>; j &lt; n; j<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#40;</span><span class="sy0">*</span>c<span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span>k <span class="sy0">=</span> <span class="nu0">0</span>; k &lt; n; k<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#40;</span><span class="sy0">*</span>c<span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span> <span class="sy0">+=</span> a<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>k<span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>k<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* compare matrices</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* n dimension</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* a,b matrices</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* return 1/0 &nbsp;different/equal</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> matrix_cmp<span class="br0">&#40;</span><span class="kw4">int</span> n, <span class="kw4">int</span> <span class="sy0">**</span>a, <span class="kw4">int</span> <span class="sy0">**</span>b<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">int</span> i, j;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span> <span class="br0">&#40;</span>a <span class="sy0">==</span> <span class="kw2">NULL</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span>b <span class="sy0">==</span> <span class="kw2">NULL</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span> <span class="nu0">1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span>; i &lt; n; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span>j <span class="sy0">=</span> <span class="nu0">0</span>; j &lt; n; j<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>a<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span> <span class="sy0">!=</span> b<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">return</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* free memory</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* n dimension</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* a matrix</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;*/</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">void</span> free_matrix<span class="br0">&#40;</span><span class="kw4">int</span> n, <span class="kw4">int</span> <span class="sy0">**</span>a<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">int</span> i;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span>; i &lt; n; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; free<span class="br0">&#40;</span>a<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;free<span class="br0">&#40;</span>a<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">void</span> print_matrix<span class="br0">&#40;</span><span class="kw4">int</span> n, <span class="kw4">int</span> <span class="sy0">**</span>a<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span><span class="br0">&#40;</span><span class="kw4">int</span> i<span class="sy0">=</span><span class="nu0">0</span>; i&lt;n; i<span class="sy0">++</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> j<span class="sy0">=</span><span class="nu0">0</span>; j&lt;n; j<span class="sy0">++</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;%i &quot;</span>,a<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">void</span> DI_mm<span class="br0">&#40;</span><span class="kw4">int</span> n, <span class="kw4">int</span> <span class="sy0">**</span>a, <span class="kw4">int</span> <span class="sy0">**</span>b, <span class="kw4">int</span> lia, <span class="kw4">int</span> cia, <span class="kw4">int</span> lib, <span class="kw4">int</span> cib, <span class="kw4">int</span> dim<span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">int</span> i;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span> dim <span class="sy0">==</span> <span class="nu0">2</span> <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; d<span class="br0">&#91;</span>lia<span class="br0">&#93;</span><span class="br0">&#91;</span>cib<span class="br0">&#93;</span> <span class="sy0">+=</span> a<span class="br0">&#91;</span>lia<span class="br0">&#93;</span><span class="br0">&#91;</span>cia<span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib<span class="br0">&#93;</span><span class="br0">&#91;</span>cib<span class="br0">&#93;</span> <span class="sy0">+</span> a<span class="br0">&#91;</span>lia<span class="br0">&#93;</span><span class="br0">&#91;</span>cia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cib<span class="br0">&#93;</span> ;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; d<span class="br0">&#91;</span>lia<span class="br0">&#93;</span><span class="br0">&#91;</span>cib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">+=</span> a<span class="br0">&#91;</span>lia<span class="br0">&#93;</span><span class="br0">&#91;</span>cia<span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib<span class="br0">&#93;</span><span class="br0">&#91;</span>cib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">+</span> a<span class="br0">&#91;</span>lia<span class="br0">&#93;</span><span class="br0">&#91;</span>cia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> ;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; d<span class="br0">&#91;</span>lia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cib<span class="br0">&#93;</span> <span class="sy0">+=</span> a<span class="br0">&#91;</span>lia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cia<span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib<span class="br0">&#93;</span><span class="br0">&#91;</span>cib<span class="br0">&#93;</span> <span class="sy0">+</span> a<span class="br0">&#91;</span>lia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cib<span class="br0">&#93;</span> ;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; d<span class="br0">&#91;</span>lia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">+=</span> a<span class="br0">&#91;</span>lia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cia<span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib<span class="br0">&#93;</span><span class="br0">&#91;</span>cib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">+</span> a<span class="br0">&#91;</span>lia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cia <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">*</span> b<span class="br0">&#91;</span>lib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>cib <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#93;</span> ;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; dim <span class="sy0">=</span> dim <span class="sy0">/</span> <span class="nu0">2</span> ;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia,cia,lib,cib,dim<span class="br0">&#41;</span>; <span class="co1">// 1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia,cia <span class="sy0">+</span> dim,lib <span class="sy0">+</span> dim,cib,dim<span class="br0">&#41;</span>; <span class="co1">// 2</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia,cia,lib,cib <span class="sy0">+</span> dim,dim<span class="br0">&#41;</span>; <span class="co1">// 3</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia,cia <span class="sy0">+</span> dim,lib <span class="sy0">+</span> dim,cib <span class="sy0">+</span> dim,dim<span class="br0">&#41;</span>; &nbsp;<span class="co1">// 4</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia <span class="sy0">+</span> dim,cia,lib,cib,dim<span class="br0">&#41;</span>; &nbsp;<span class="co1">// 5</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia <span class="sy0">+</span> dim,cia <span class="sy0">+</span> dim,lib <span class="sy0">+</span> dim,cib,dim<span class="br0">&#41;</span>; <span class="co1">// 6</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia <span class="sy0">+</span> dim,cia,lib,cib <span class="sy0">+</span> dim,dim<span class="br0">&#41;</span>; <span class="co1">// 7</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; DI_mm<span class="br0">&#40;</span>n,a,b,lia <span class="sy0">+</span> dim,cia <span class="sy0">+</span> dim,lib <span class="sy0">+</span> dim,cib <span class="sy0">+</span> dim,dim<span class="br0">&#41;</span>; &nbsp;<span class="co1">// 8</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> main<span class="br0">&#40;</span><span class="kw4">int</span> argc, <span class="kw4">char</span><span class="sy0">**</span> argv<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">int</span> n; <span class="co1">// dimensiune matrice</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">int</span> <span class="sy0">**</span>a, <span class="sy0">**</span>b, <span class="sy0">**</span>c; <span class="co1">// matrices</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw4">char</span> <span class="sy0">*</span>in_file; <span class="co1">// in file</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>argc &lt; <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; fprintf<span class="br0">&#40;</span>stderr,<span class="st0">&quot;Usage %s in_file<span class="es0">\n</span>&quot;</span>, argv<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; exit<span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;in_file <span class="sy0">=</span> argv<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// read matrices and their dimension</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;read<span class="br0">&#40;</span>in_file, <span class="sy0">&amp;</span>n, <span class="sy0">&amp;</span>a, <span class="sy0">&amp;</span>b<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// iterative matrix multiply (c = a * b)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;matrix_multiply<span class="br0">&#40;</span>n, a, b, <span class="sy0">&amp;</span>c<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// matrix multiplication using DivideAndConquer (d = a * b)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;d <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">**</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span>; i &lt; n; i<span class="sy0">++</span><span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;d<span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">*</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span> <span class="sy0">*</span> <span class="kw4">sizeof</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span>; i &lt; n ;i<span class="sy0">++</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span>; j &lt; n ;j<span class="sy0">++</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;d<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#91;</span>j<span class="br0">&#93;</span> &nbsp;<span class="sy0">=</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;a = <span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;print_matrix<span class="br0">&#40;</span>n,a<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>b = <span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; print_matrix<span class="br0">&#40;</span>n,b<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>c = <span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;print_matrix<span class="br0">&#40;</span>n,c<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;DI_mm<span class="br0">&#40;</span>n,a,b,<span class="nu0">0</span>,<span class="nu0">0</span>,<span class="nu0">0</span>,<span class="nu0">0</span>,n<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>d = <span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;print_matrix<span class="br0">&#40;</span>n,d<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// verificare rezultat</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>matrix_cmp<span class="br0">&#40;</span>n, c, d<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Wrong answer<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Corect<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// free memory</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;free_matrix<span class="br0">&#40;</span>n, a<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;free_matrix<span class="br0">&#40;</span>n, b<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;free_matrix<span class="br0">&#40;</span>n, c<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// TODO free_matrix(n, d);</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">return</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://acszone.xhost.ro/?feed=rss2&amp;p=1</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
