docs: public void putData(double coord, T value) {
      // Store in cache
      if(cachefill >= 0 && cachefill < cacheposs.length) {
        cacheposs[cachefill] = coord;
        cachevals[cachefill++] = cloneForCache(value);
        return;
      }
      if(coord == Double.NEGATIVE_INFINITY) {
        aggregateSpecial(value, 0);
      }
      else if(coord == Double.POSITIVE_INFINITY) {
        aggregateSpecial(value, 1);
      }
      else if(Double.isNaN(coord)) {
        aggregateSpecial(value, 2);
      }
      else {
        // super class will handle histogram resizing / shifting
        T exist = get(coord);
        data[getBinNr(coord)] = aggregate(exist, value);
      }
    }