Class ImmutableVector

    • Constructor Summary

      Constructors 
      Constructor Description
      ImmutableVector​(Vector v)
      Construct a read-only version of a vector.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Vector add​(double scalar)
      Add a constant to all entries in this vector.
      Vector add​(Vector that)
      \(this + that\)
      double angle​(Vector that)
      Measure the angle, \(\theta\), between this and that.
      ImmutableVector deepCopy()
      The implementation returns an instance created from this by the copy constructor of the class, or just this if the instance itself is immutable.
      Vector divide​(Vector that)
      Divide this by that, entry-by-entry.
      boolean equals​(Object obj)  
      double get​(int index)
      Get the value at position i.
      int hashCode()  
      double innerProduct​(Vector that)
      Inner product in the Euclidean space is the dot product.
      Vector minus​(double scalar)
      Subtract a constant from all entries in this vector.
      Vector minus​(Vector that)
      \(this - that\)
      Vector multiply​(Vector that)
      Multiply this by that, entry-by-entry.
      double norm()
      Compute the length or magnitude or Euclidean norm of a vector, namely, \(\|v\|\).
      double norm​(double p)
      Gets the \(L^p\)-norm \(\|v\|_p\) of this vector.
      Vector opposite()
      Get the opposite of this vector.
      Vector pow​(double scalar)
      Take the exponentiation of all entries in this vector, entry-by-entry.
      Vector scaled​(double scalar)
      Scale this vector by a constant, entry-by-entry.
      Vector scaled​(Real scalar)
      Scale this vector by a constant, entry-by-entry.
      void set​(int i, double value)
      This method is overridden to always throw VectorAccessException.
      int size()
      Get the length of this vector.
      double[] toArray()
      Cast this vector into a 1D double[].
      String toString()  
      Vector ZERO()
      Get a 0-vector that has the same length as this vector.
    • Constructor Detail

      • ImmutableVector

        public ImmutableVector​(Vector v)
        Construct a read-only version of a vector. Note that, however, changing the original vector changes the "immutable" version as well.
        Parameters:
        v - a vector
    • Method Detail

      • set

        public final void set​(int i,
                              double value)
        This method is overridden to always throw VectorAccessException.
        Specified by:
        set in interface Vector
        Parameters:
        i - the index of the entry to change. The indices are counting from 1, NOT 0.
        value - the value to change to
        Throws:
        VectorAccessException - always
      • 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]
      • 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 Vector 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\)
      • 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 scalar)
        Description copied from interface: Vector
        Add a constant to all entries in this vector.
        Specified by:
        add in interface Vector
        Parameters:
        scalar - a constant
        Returns:
        \(v + c\)
      • minus

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

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

        public Vector scaled​(double scalar)
        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:
        scalar - 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 Vector 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 ImmutableVector 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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object