DenseVector compute_mean(RandomAccessIterator begin, RandomAccessIterator end, FeatureVectorCallback callback, IndexType dimension) { DenseVector mean = DenseVector::Zero(dimension); DenseVector current_vector(dimension); for (RandomAccessIterator iter=begin; iter!=end; ++iter) { callback(*iter,current_vector); mean += current_vector; } mean.array() /= (end-begin); return mean; }