code: def update(self, value):
      
      super(ExponentiallyDecayingReservoir, self).update(value)
  
      timestamp = self.clock.time()
  
      self.__rescaleIfNeeded()
      priority = self.__weight(timestamp - self.startTime) / random.random()
  
      self.count += 1
      if (self.count <= self.size):
        self.values[priority] = value
      else:
        first = min(self.values)
  
        if first < priority and priority not in self.values:
          self.values[priority] = value
          while first not in self.values:
            first = min(self.values)
  
          del self.values[first]
docs: Adds an old value with a fixed timestamp to the reservoir.
        @param value     the value to be added