docs: Point[] getCoresetFromManager(int d){
  		Point[] coreset = new Point[d];
  		int i = 0;
  		//if(this.buckets[this.numberOfBuckets-1].cursize == this.maxBucketsize){
  			//coreset = this.buckets[this.numberOfBuckets-1].points;
  
  		//} else {
  			//find the first nonempty bucket
  			for(i=0; i < this.numberOfBuckets; i++){
  				if(this.buckets[i].cursize != 0){
  					coreset = this.buckets[i].points;
  					break;
  				}
  			}		
  			//as long as there is a nonempty bucket compute a coreset
  			int j;
  			for(j=i+1; j < this.numberOfBuckets; j++){
  				if(this.buckets[j].cursize != 0){
  					//output the coreset into the spillover of bucket j
  					this.treeCoreset.unionTreeCoreset(this.maxBucketsize,this.maxBucketsize,
  						this.maxBucketsize,d, 
  						this.buckets[j].points,coreset,
  						this.buckets[j].spillover, this.clustererRandom); 
  					coreset = this.buckets[j].spillover;			
  				}
  			}
  		//}
  		return coreset;
  	}