Examples of DenseDynamicMagnitudeVector


Examples of edu.ucla.sspace.vector.DenseDynamicMagnitudeVector

            clusterSizes[assignment]++;
        }

        // Compute the cost of each centroid.
        for (int c = 0; c < numClusters; ++c)
            centroids[c] = new DenseDynamicMagnitudeVector(
                    centroids[c].toArray());

        subSetup(m);

        SparseDoubleVector empty = new CompactSparseVector(m.columns());
View Full Code Here

Examples of edu.ucla.sspace.vector.DenseDynamicMagnitudeVector

     * DenseDynamicMagnitudeVector} can be used to represent the difference.
     * This vector type is optimized for when many calls to magnitude are
     * interleaved with updates to a few dimensions in the vector.
     */
    protected static DoubleVector subtract(DoubleVector c, DoubleVector v) {
        DoubleVector newCentroid = new DenseDynamicMagnitudeVector(c.length());

        // Special case sparse double vectors so that we don't incure a possibly
        // log n get operation for each zero value, as that's the common case
        // for CompactSparseVector.
        if (v instanceof SparseDoubleVector) {
            SparseDoubleVector sv = (SparseDoubleVector) v;
            int[] nonZeros = sv.getNonZeroIndices();
            int sparseIndex = 0;
            for (int i = 0; i < c.length(); ++i) {
                double value = c.get(i);
                if (sparseIndex < nonZeros.length &&
                    i == nonZeros[sparseIndex])
                    value -= sv.get(nonZeros[sparseIndex++]);

                newCentroid.set(i, value);
            }
        } else
            for (int i = 0; i < c.length(); ++i)
                newCentroid.set(i, c.get(i) - v.get(i));
        return newCentroid;
    }
View Full Code Here

Examples of edu.ucla.sspace.vector.DenseDynamicMagnitudeVector

    /**
     * {@inheritDoc}
     */
    protected void subSetup(Matrix m) {
        completeCentroid = new DenseDynamicMagnitudeVector(m.columns());
        for (DoubleVector v : matrix)
            VectorMath.add(completeCentroid, v);

        simToComplete = new double[centroids.length];
        for (int c = 0; c < centroids.length; ++c)
View Full Code Here

Examples of edu.ucla.sspace.vector.DenseDynamicMagnitudeVector

    /**
     * {@inheritDoc}
     */
    protected void subSetup(Matrix m) {
        completeCentroid = new DenseDynamicMagnitudeVector(m.rows());
        for (DoubleVector v : matrix)
            VectorMath.add(completeCentroid, v);

        simToComplete = new double[centroids.length];
        for (int c = 0; c < centroids.length; ++c)
View Full Code Here

Examples of edu.ucla.sspace.vector.DenseDynamicMagnitudeVector

        e1Costs = new double[numClusters];
        i1Costs = new double[numClusters];

        // Initialize the clusters.
        for (int c = 0; c < numClusters; ++c)
            centroids[c] = new DenseDynamicMagnitudeVector(m.columns());

        // Form the cluster composite vectors, i.e. unscaled centroids.
        for (int i = 0; i < m.rows(); ++i) {
            int assignment = initialAssignments[i];
            VectorMath.add(centroids[assignment], matrix.get(i));
            clusterSizes[assignment]++;
        }

        // Compute the complete summation vector.
        completeCentroid = new DenseDynamicMagnitudeVector(m.columns());
        for (DoubleVector v : matrix)
            VectorMath.add(completeCentroid, v);

        // Compute the distance from each centroid to the summation vector.
        for (int c = 0; c < centroids.length; ++c)
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.