<?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>Persistent notes &#187; algorithms</title>
	<atom:link href="http://alexkr.com/tag/algorithms/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexkr.com</link>
	<description>Alexander Krivutsenko&#039;s online journal</description>
	<lastBuildDate>Sat, 07 Apr 2012 20:46:40 +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>Matrix multiplication explained</title>
		<link>http://alexkr.com/memos/143/matrix-multiplication-explained/</link>
		<comments>http://alexkr.com/memos/143/matrix-multiplication-explained/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 10:03:24 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[big]]></category>
		<category><![CDATA[algorithms]]></category>

		<guid isPermaLink="false">http://alexkr.com/memos/143/matrix-multiplication-explained/</guid>
		<description><![CDATA[Finally after a big pause I am continuing to update my blog.
Several months ago I have written a short example of cache efficient matrix multiplication.
However, in the world of high performance computers such implementation would suffer in several ways.
Those who implement linear algebra applications on supercomputers are using highly optimized libraries like LaPACK, IntelMKL and [...]]]></description>
		<wfw:commentRss>http://alexkr.com/memos/143/matrix-multiplication-explained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cache efficient matrix multiplication</title>
		<link>http://alexkr.com/source-code/140/cache-efficient-matrix-multiplication/</link>
		<comments>http://alexkr.com/source-code/140/cache-efficient-matrix-multiplication/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 15:24:35 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[big]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[c]]></category>

		<guid isPermaLink="false">http://alexkr.com/source-code/140/cache-efficient-matrix-multiplication/</guid>
		<description><![CDATA[Regardless of cache coherency problem in multithreaded environment one must think about cache efficiency when operating on various memory locations.

It is amazing how good cache efficient code performs.
As a classical example there is matrix multiplication problem.
When values are stored in memory in row major form you have good sequential access to the elements inside one [...]]]></description>
		<wfw:commentRss>http://alexkr.com/source-code/140/cache-efficient-matrix-multiplication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding Gauss Seidel solver</title>
		<link>http://alexkr.com/notes/133/understanding-gauss-seidel-solver/</link>
		<comments>http://alexkr.com/notes/133/understanding-gauss-seidel-solver/#comments</comments>
		<pubDate>Sun, 20 Jan 2008 09:31:29 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[blah-blah]]></category>
		<category><![CDATA[algorithms]]></category>

		<guid isPermaLink="false">http://alexkr.com/math/133/understanding-guass-seidel-solver-intuitively/</guid>
		<description><![CDATA[Stephen Pizer in &#8220;Numerical Computing and Mathematical Analysis&#8221; wrote amazingliny easy description of Gauss-Seidel solver.
The most exciting thing for me was pictures which help to understand  Guass Seidel iterations on intuitive level.
Pictures show several iterations for 2D system of linear equations.
Two transitions are equal to one iteration of the algorithm.
On the following picture, process [...]]]></description>
		<wfw:commentRss>http://alexkr.com/notes/133/understanding-gauss-seidel-solver/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Implementing Gauss Seidel iterative solver</title>
		<link>http://alexkr.com/source-code/132/implementing-gauss-seidel-iterative-solver/</link>
		<comments>http://alexkr.com/source-code/132/implementing-gauss-seidel-iterative-solver/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 13:58:09 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[blah-blah]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[matlab]]></category>

		<guid isPermaLink="false">http://alexkr.com/source-code/132/implementing-gauss-seidel-iterative-solver/</guid>
		<description><![CDATA[Here I would use notation Ax=b for system of linear equations, where A is a square matrix, x is vector of unknowns and b is vector of right hand side values.
Gaussian elimination as direct method for solving large system of linear equations would take 2*(n^3/3) + O(n^2) time, so it has roughly O(n^3) complexity.
Cholesky decomposition [...]]]></description>
		<wfw:commentRss>http://alexkr.com/source-code/132/implementing-gauss-seidel-iterative-solver/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fibonacci rabits are back</title>
		<link>http://alexkr.com/posts/128/fibonacci-rabits-and-overthinking/</link>
		<comments>http://alexkr.com/posts/128/fibonacci-rabits-and-overthinking/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 16:38:34 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[short]]></category>
		<category><![CDATA[algorithms]]></category>

		<guid isPermaLink="false">http://alexkr.com/posts/128/fibonacci-rabits-and-overthinking/</guid>
		<description><![CDATA[In almost any algorithmic course there is a complexity analysis of the recursive implementation of
Fibonacci numbers.

This is a theory which is used to understand how recursive algorithms are analysed.
However, in real life to produce one more rabbit we only need to have two parent rabbits because
this is how most rabbits are born on earth.

This principle [...]]]></description>
		<wfw:commentRss>http://alexkr.com/posts/128/fibonacci-rabits-and-overthinking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intuitive understanding of ODE solvers</title>
		<link>http://alexkr.com/source-code/127/intuitive-understanding-of-ode-solvers/</link>
		<comments>http://alexkr.com/source-code/127/intuitive-understanding-of-ode-solvers/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 17:35:28 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[big]]></category>
		<category><![CDATA[blah-blah]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[algorithms]]></category>

		<guid isPermaLink="false">http://alexkr.com/source-code/127/intuitive-understanding-of-ode-solvers/</guid>
		<description><![CDATA[There are explicit and implicit numerical solvers for ODE initial value problem.
When one solves initial value problem (or Cauchy problem) for ordinary differential equations (ODE) numerically that means we get a sequence of approximated function values y(n) starting with fist given value y(0) for a given interval and with a given discretization rate (timestep).


 dy/dx [...]]]></description>
		<wfw:commentRss>http://alexkr.com/source-code/127/intuitive-understanding-of-ode-solvers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Drawing Koch curve</title>
		<link>http://alexkr.com/source-code/122/drawing-koch-curve/</link>
		<comments>http://alexkr.com/source-code/122/drawing-koch-curve/#comments</comments>
		<pubDate>Sat, 27 Oct 2007 03:01:44 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[big]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[algorithms]]></category>

		<guid isPermaLink="false">http://alexkr.com/source-code/122/drawing-koch-curve/</guid>
		<description><![CDATA[What is so special about Koch curve or Koch snowflake?
This is one of the oldest fractals which was found as an example of a continuous functions which is not differentiable.
The difference between Koch curve and Koch snowflake is that snowflake implies that curve is built among the lines of a equilateral triangle.
Further description here is [...]]]></description>
		<wfw:commentRss>http://alexkr.com/source-code/122/drawing-koch-curve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Non blocking stack</title>
		<link>http://alexkr.com/source-code/119/non-blocking-stack/</link>
		<comments>http://alexkr.com/source-code/119/non-blocking-stack/#comments</comments>
		<pubDate>Tue, 04 Sep 2007 12:27:28 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[big]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[multithreading]]></category>

		<guid isPermaLink="false">http://alexkr.com/source-code/119/non-blocking-stack/</guid>
		<description><![CDATA[Non blocking algorithms are based on the idea that processor hardware can provide a way to implement some thread unsafe operations in an atomic way. Usually only few such operations are needed to implement non blocking data container.
On Intel platform Windows API provides implementation of interlocked functions which perform thread unsafe operations in an atomic [...]]]></description>
		<wfw:commentRss>http://alexkr.com/source-code/119/non-blocking-stack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

