@Override public void putData(double coord,T value){
  if (cachefill >= 0 && cachefill < cacheposs.length) {
    cacheposs[cachefill]=coord;
    cachevals[cachefill]=cloneForCache(value);
    ++cachefill;
    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 {
    T exist=get(coord);
    data[getBinNr(coord)]=aggregate(exist,value);
  }
}

@ Override public void putData ( double coord , T value ) { if ( cachefill >= 0 && cachefill < cacheposs . length ) { cacheposs [ cachefill ] = coord ; cachevals [ cachefill ] = cloneForCache ( value ) ; ++ cachefill ; 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 { T exist = get ( coord ) ; data [ getBinNr ( coord ) ] = aggregate ( exist , value ) ; } }
put fresh data into the histogram ( or into the cache )
