Class SparseVector

    • Constructor Detail

      • SparseVector

        public SparseVector​(int size)
        Constructs a sparse vector.
        Parameters:
        size - the size of the vector
      • SparseVector

        public SparseVector​(int size,
                            int[] indices,
                            double[] values)
        Constructs a sparse vector.
        Parameters:
        size - the size of the vector
        indices - the indices of the non-zero values
        values - the non-zero values
      • SparseVector

        public SparseVector​(int size,
                            Collection<SparseVector.Entry> entries)
        Constructs a sparse vector.
        Parameters:
        size - the size of the vector
        entries - the sparse vector entries
      • SparseVector

        public SparseVector​(double... v)
        Constructs a sparse vector from a double[].
        Parameters:
        v - a vector
      • SparseVector

        public SparseVector​(Vector v)
        Constructs a sparse vector from a vector.
        Parameters:
        v - a vector
      • SparseVector

        public SparseVector​(SparseVector that)
        Copy constructor.
        Parameters:
        that - the vector to be copied
    • Method Detail

      • size

        public int size()
        Description copied from interface: Vector
        Get the length of this vector.
        Specified by:
        size in interface Vector
        Returns:
        the vector length
      • get

        public double get​(int index)
        Description copied from interface: Vector
        Get the value at position i.
        Specified by:
        get in interface Vector
        Parameters:
        index - the position of a vector entry
        Returns:
        v[i]
      • set

        public void set​(int index,
                        double value)
        Description copied from interface: Vector
        Change the value of an entry in this vector. This is the only method that may change the entries of a vector.
        Specified by:
        set in interface Vector
        Parameters:
        index - the index of the entry to change. The indices are counting from 1, NOT 0.
        value - the value to change to
      • add

        public Vector add​(Vector that)
        Description copied from interface: Vector
        \(this + that\)
        Specified by:
        add in interface AbelianGroup<Vector>
        Specified by:
        add in interface Vector
        Parameters:
        that - a vector
        Returns:
        \(this + that\)
      • multiply

        public SparseVector multiply​(Vector that)
        Description copied from interface: Vector
        Multiply this by that, entry-by-entry.
        Specified by:
        multiply in interface Vector
        Parameters:
        that - a vector
        Returns:
        \(this \cdot that\)
      • leftMultiply

        public Vector leftMultiply​(Matrix A)
        Left multiplies a matrix. That is, A * x, where A is the matrix and x is this sparse vector. This may speed up the operation as there are fewer multiplications.
        Parameters:
        A - the matrix on the left
        Returns:
        the multiplication product
      • divide

        public Vector divide​(Vector that)
        Description copied from interface: Vector
        Divide this by that, entry-by-entry.
        Specified by:
        divide in interface Vector
        Parameters:
        that - a vector
        Returns:
        \(this / that\)
      • add

        public Vector add​(double c)
        Description copied from interface: Vector
        Add a constant to all entries in this vector.
        Specified by:
        add in interface Vector
        Parameters:
        c - a constant
        Returns:
        \(v + c\)
      • minus

        public Vector minus​(double c)
        Description copied from interface: Vector
        Subtract a constant from all entries in this vector.
        Specified by:
        minus in interface Vector
        Parameters:
        c - a constant
        Returns:
        \(v - c\)
      • innerProduct

        public double innerProduct​(SparseVector that)
      • pow

        public Vector pow​(double c)
        Description copied from interface: Vector
        Take the exponentiation of all entries in this vector, entry-by-entry.
        Specified by:
        pow in interface Vector
        Parameters:
        c - a constant
        Returns:
        \(v ^ c\)
      • scaled

        public SparseVector scaled​(double c)
        Description copied from interface: Vector
        Scale this vector by a constant, entry-by-entry. Here is a way to get a unit version of the vector:
        vector.scaled(1. / vector.norm())
        Specified by:
        scaled in interface Vector
        Parameters:
        c - a constant
        Returns:
        \(c \times this\)
      • angle

        public double angle​(Vector that)
        Description copied from interface: Vector
        Measure the angle, \(\theta\), between this and that. That is, \[ this \cdot that = \|this\| \times \|that\| \times \cos \theta \]
        Specified by:
        angle in interface HilbertSpace<Vector,​Real>
        Specified by:
        angle in interface Vector
        Parameters:
        that - a vector
        Returns:
        the angle, \(\theta\), between this and that
      • ZERO

        public SparseVector ZERO()
        Description copied from interface: Vector
        Get a 0-vector that has the same length as this vector.
        Specified by:
        ZERO in interface AbelianGroup<Vector>
        Specified by:
        ZERO in interface Vector
        Returns:
        the 0-vector
      • toArray

        public double[] toArray()
        Description copied from interface: Vector
        Cast this vector into a 1D double[].
        Specified by:
        toArray in interface Vector
        Returns:
        a copy of all vector entries as a double[]
      • deepCopy

        public SparseVector deepCopy()
        Description copied from interface: DeepCopyable
        The implementation returns an instance created from this by the copy constructor of the class, or just this if the instance itself is immutable.
        Specified by:
        deepCopy in interface DeepCopyable
        Specified by:
        deepCopy in interface Vector
        Returns:
        an independent (deep) copy of the instance
      • nNonZeros

        public int nNonZeros()
        Description copied from interface: SparseStructure
        Get the number of non-zero entries in the structure.
        Specified by:
        nNonZeros in interface SparseStructure
        Returns:
        the number of non-zero entries in the structure
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object