<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>