flt_dbl calc_euclidian_distance( sparse_flt_dbl_vec & datapoint, flt_dbl_vec &cluster, flt_dbl sqr_sum, flt_dbl sqr_sum0){ flt_dbl dist = sqr_sum + sqr_sum0; //for (int i=0; i< datapoint.nnz(); i++){ FOR_ITERATOR_(i, datapoint){ flt_dbl val = get_nz_data(datapoint, i); int pos = get_nz_index(datapoint, i); dist -= 2*val*cluster[pos]; }
flt_dbl calc_chebychev_distance( sparse_flt_dbl_vec & datapoint, sparse_flt_dbl_vec &cluster){ sparse_flt_dbl_vec diff = minus(datapoint , cluster); flt_dbl ret = 0; FOR_ITERATOR(i, diff){ ret = std::max(ret, (flt_dbl)fabs(get_nz_data(diff, i))); }