def METHOD_NAME(self, layername, halflife, minimum=0):
    """
    Let the values in each cell decay, volatilize or evaporate over time.
    This method is optimized for numpy arrays, see playground for plain
    arrays.
    @param string layername name of the layer to work on
    @param long halflife or number of years when to reach half of the value
    @param long minimum value to keep on cell
    """
    if halflife > 0:
        self.layers[layername] = self.layers[layername] * 0.5 ** (1.0 / halflife)
        # TODO find out why 'filename' is lost - numpy vs. garray..
    # TODO think about moving 'minimum' to a predifined matrix in anthill
    if minimum > 0:
        mask = garray.numpy.ones_like(self.layers[layername]) - 1 + minimum
        self.layers[layername] = garray.numpy.maximum(self.layers[layername], mask)