public void UpdateSecondPass(ref VBuffer <Single> features, int[] indices)
                {
                    int assigned = indices[0];

                    var distance = VectorUtils.Distance(ref _clusterCentroids[assigned], ref features);

                    _distancesToCentroids[assigned] += distance;
                }
        private Float SimplexDiameter()
        {
            Float maxDistance = Float.MinValue;

            var simplexVertices = _simplexVertices.ToArray();

            for (int i = 0; i < simplexVertices.Length; i++)
            {
                var x = simplexVertices[i].Value;
                for (int j = i + 1; j < simplexVertices.Length; j++)
                {
                    var y    = simplexVertices[j].Value;
                    var dist = VectorUtils.Distance(x, y);
                    if (dist > maxDistance)
                    {
                        maxDistance = dist;
                    }
                }
            }
            return(maxDistance);
        }