Cellular neural networks: a review