<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
In building tile/block managers, I too have found it difficult to
use iterators or design algorithms without specifically considering
both tiles/blocks and cells. Without doing so, it is very easy to
write code which is (extremely) cache inefficient.<br>
<br>
I'm not sure if flow algebras have arisen in the discussion yet, but
they come to mind when I think of raster algebras. They permit
operations in which the values of "downstream" cells are functions
of upstream cells. In such a case, efficient calculations are then
driven both by blocking and by the data itself. In recent work, I've
found that a number of flow algebra functions can be written by
considering only one block at a time (<a
href="http://www.sciencedirect.com/science/article/pii/S0098300416301704">link</a>,
<a href="https://arxiv.org/abs/1608.04431">link</a>). I'm working on
generalizing the concept now and can imagine it forming an easy way
to quickly add general terrain analysis functionality.<br>
<br>
-Richard<br>
</body>
</html>