1. A network of nodes organized in stages according to dimensions of a G×H 2-dimensional (2D) matrix of nearest neighbor connected elements having connectivity within the stages according to nearest neighbor connectivity between adjacent elements in corresponding dimensions of the 2D matrix which includes wrap around adjacent elements and the connectivity within the stages includes connections between nodes in the same position, the network comprising: groups of A g,h nodes, each group having a different g that is the same for each A g,h node in that group, gε{0, 1,. .. , G−1} and for each group, hε{0, 1,. .. , H−1}, and each A g,h node operable to output a data value; groups of R g,h nodes, each group having a different g that is the same for each R g,h node in that group, gε{0, 1,. .. , G−1} and for each group, hε{0, 1,. .. , H−1}, each group of R g,h nodes directly coupled to a corresponding group of A g,h nodes according to an adjacency of nodes in a first dimension, wherein each R g,h node in a group of R g,h nodes is operable to select a data value solely from a directly coupled A g,h node, a directly coupled A g,h+1 node, and a directly coupled A g,h−1 node selected data value; and groups of S g,h nodes, each group having a different g that is the same for each S g,h node in that group, gε{0, 1,. .. , G−1} and for each group, hε{0, 1,. .. , H−1}, each group of S g,h nodes directly coupled to three groups of R g,h nodes according to an adjacency of nodes in a second dimension, wherein each S g,h node is operable to select a data value solely from a directly coupled R g,h node, a directly coupled R g+1,h node, and a directly coupled R g−1,h node and to output the S g,h node selected data value.